C语言编写,用超松弛迭代法(SOR)求解方程组的程序算法!

2024-12-21 16:09:18
推荐回答(1个)
回答1:

牛顿迭代法求方程的根
2*x*x*x-4*x*x+3*x-6=0
程序流程分析:
① 赋值x0=1.5,即迭代初值;② 用初值x0代入方程中计算此时的f(x0)及f’(x0),程序中用变量f描述方程的值,用fd描述方程求导之后的值;
③ 计算增量d=f/fd;
④ 计算下一个x,x=x0-d;
⑤ 把新产生的x替换x0,为下一次迭代做好准备;
⑥ 若d绝对值大于1e-3,则重复②③④⑤步。
源程序代码:
#include
main()
{float x,x0,d,f,fd;
x0=0;
do
{f=2*x0*x0*x0-4*x0*x0+3*x0-6;
fd=6*x0*x0-8*x0+3;
d=f/fd;x=x0-d;x0=x;}
while(fabs(d)>1e-3);
printf("x=%f\n",x);}
非原创