解多元一次方程组
本帖最后由 村里小黑 于 2021-12-15 21:51 编辑再进行解多元一次方程组的时候,采用转换成矩阵的方法,得出的结果与实际有偏差
参考数据
18526.000000 17234.000000 18016.000000 5206.000000 19384.000000 86170.000000
19864.000000 14435.000000 19001.000000 7128.000000 19386.000000 90530.000000
13065.000000 13652.000000 18162.000000 5872.000000 18088.000000 77650.000000
11366.000000 14517.000000 12878.000000 7636.000000 19333.000000 77190.000000
17521.000000 19798.000000 16263.000000 5871.000000 18069.000000 86330.000000
11883.000000 13295.000000 10642.000000 6524.000000 16062.000000 68190.000000
本人实现方法
int i, j, m, t; //i,j,m,k,t 作为循环计数变量;n表示有n个未知数,即n元;r表示有r个方程组成方程组。
float b = 0;
float temp = {0};
if(r<n)
sh_printf("方程有无穷解\n");
if(r==n)
{
sh_printf("方程有唯一解\n");
for(t=0; t<n-1; t++) //循环次数:当t=0时,仅将a,a,a的值转换为0;t=1时,才将其转换成最简型阶梯矩阵。
for(m=0; m<n; m++){ //m表示第m列
while(1){
if(buf != 0)
break;
if((m + 1) >= n)
break;
for(i = 0; i < n + 1; i++){
temp = buf;
buf = buf;
buf = temp;
}
}
for(j=0; j<n; j++) //j表示第j行
if(j!=m)
{
b= buf/buf;
for(i=0; i<n+1; i++) //因为一行的每个元素均要进行运算等式两边才会相等。
buf -= buf*b;
b = 0;
}
}
for(j=0; j<n; j++) //为了将其转换成单位矩阵,见《线性代数》
{
buf /=buf;
buf /=buf;
}
}
for(j=0; j<r; j++)
result = buf;
求大佬帮助,给出一个更优的可以直接测试的算法 {:10_254:} {:5_103:} {:10_254:} 所得额 {:10_257:} {:10_277:}不会,帮顶 你的参数哪个是常量? 不会,帮顶 傻眼貓咪 发表于 2021-12-16 13:35
你的参数哪个是常量?
每一行,前五项分别是方程式的系数,最后一个是方程式的结果 {:10_254:} {:5_95:} 要不你用matlab试试?
{:10_254:} {:10_254:} {:10_254:} {:10_297:} nb
{:10_249:} {:5_103:}
页:
[1]
2