版权声明:请勿商业化使用 https://blog.csdn.net/qq_40991687/article/details/89527451
问题描述:
使用迭代法求解方程组初始值为0,0,0
问题分析:
将方程组的各个未知数分别移到等式左边,并且未知数前面的所有参数化为1,再改成迭代式得:
然后将初始值代入迭代方程组,通过多次运行解出答案
注意:
求解时方程组必须收敛,收敛条件判断详见:
https://wk.baidu.com/view/767df21e2f60ddccda38a06f
迭代法解方程组
输入:
输入题目参数
#include<cstdio>
double x=0,y=0,z=0;
void fact(double x1,double x2,double x3) {
x=0.2*x2+0.1*x3+0.3;
y=0.2*x1+0.1*x3+1.5;
z=0.2*x1+0.4*x2+2;
}
int main() {
int count =20;
while(count--) {
printf("x1=%lf\nx2=%lf\nx3=%lf\n",x,y,z);
fact(x,y,z);
}
return 0;
}
输出:
x1=1.000000
x2=2.000000
x3=3.000000