实验报告
专业班级: 学号: 姓名:
实验名称:用不动点迭代法解非线性方程
1.实验目的:
(1)掌握不动点迭代法求根的方法 (2 )学会运用C语言编写出相应的循环程序,得出方程的解。
2?实验内容:
问题:求方程f(x)=x3-x-1=0 在xo=1.5附近的根x*。
算法描述:
1)把方程改写成 X = 3;厂7的形式
2) 代入xo=1.5,并反复利用迭代公式 Xk dXk 1计算
3)对上式得到的序列{xk}求极限lim Xk=x*,所求得的X*即为非线性方程的根
实验方案(程序设计说明)
算法设计思路:
将X0代入迭代公式,作为第一次迭代结果X1。
随着不断的迭代,迭代数值会越来越接近不动点值X。。程序中变量的类型小数点后的位
数是一定的,所以,随着不断的迭代,会出现相等的两数,那么,此时的Xk可以近似看
做方程根X*。
程序流程图
F
开始
Xk=1.5 ,k=0
N?
X k=X k+1
Y1
PAGE
PAGE #
结束
实验步骤或程序(经调试后正确的源程序)
主要步骤与程序代码,见附件A
附件A实验报告
(适用计算机程序设计类)
专业班级:学号:姓名:
实验步骤或程序:
程序代码:
PAGE
PAGE #
H/iuHiHiHiHnnunnuiHiHnn
"不动点迭代法求根的实现代码
Kinclude ttinclude void nain()
"为" 〃点〃 //动// "不" / * / / 0 /
"为" 〃点〃 //动// "不" / * / / 0 / / X / "为" "值< 〃初< /^/ i / /= 〃给〃XO / ? /日疋/ k 〃原"“ "设"le
"1// / / / / "定od程〃 〃一=x方// 〃是xk求较〃 "数甯毗〃 〃位出做X0" 〃的△MW" "后就B% 〃点必近的// 〃数,必〃 〃小后可得〃 ./集xk代〃 "餐"3)〃回迭的迭〃 5;"函迭〃0/〃返筈枕" 1-"的用"1,//的鲁-// 0="梟"型过时第〃 X//所,“0+〃来K 爵对〃 k / 页一弋 / X / e U / X /巳疋弓/ c / 1 -帀 1 / 2吩律〃ub叹,此7 bl"強〃 p〃do所况因"
迭
/由X / "应出〃 / rmdK/ /朮一才/ "立// "建代〃 "琴" "式次" "形一" "X)第" "]!(行"
〃x=进〃 "成式〃 "写公"?力 / / ) /
〃面〃 〃上 〃 〃复〃 / && / / 3 /
〃等" / RD /
/ "不" )/0 / O / X / =x"与匕〃 //;点 S //巩〃鬲"
XB=Xk;
xl<= powCxO+1,1.0/3}:
“输岀迭代值^收敛所得到的根泸 / cout? *非线性方程的根为-?endl ; cout?*,x*="<
hiljtT^
程序运行结果
P:\C++程序\数值分析\gbug儼值分析心『?? = I回I—
|非线性方程的根为;
x*=l-32472
Press any kwy to continue