高斯消元
过程:
将系数矩阵和方程右值矩阵合并成增广矩阵.
将增广矩阵不断递归变成阶梯型矩阵.
最后逐步回溯得到每个未知数的值.
int judge,n;//n个未知数
double mp[110][110],ans[110];
void dfs(int x)//judge=0表示唯一解,=1表示多组解,=2表示无解
{
if (x == n)
{
if (fabs(mp[n][n]) < 1e-5)
{
if (fabs(mp[n][n + 1]) < 1e-5)
judge = 1;
else
judge = 2;
return;
}
ans[x] = mp[n][n + 1] / mp[n][n];
return;
}
for (int i = x + 1; i <= n; i++)
{
if (fabs(mp[x][x]) < 1e-5)//交换第x行和第i行
{
for (int j = x; j <= n + 1; j++)
swap(mp[i][j], mp[x][j]);
continue;
}
double p = mp[i][x] / mp[x][x];
mp[i][x] = 0;
for (int j = x + 1; j <= n + 1; j++)
{
mp[i][j] -= p * mp[x][j];
}
}
dfs(x + 1);
if (judge != 0)
return;
ans[x] = mp[x][n + 1];
for (int i = x + 1; i <= n; i++)
ans[x] -= ans[i] * mp[x][i];
if (fabs(mp[x][x]) < 1e-5)
{
if (fabs(ans[x]) < 1e-5)
judge = 1;
else
judge = 2;
return;
}
ans[x] = ans[x] / mp[x][x];
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话