天天看点

c语言不动点迭代法法求方程解,不动点迭代法求方程的根.docx

实验报告

专业班级: 学号: 姓名:

实验名称:用不动点迭代法解非线性方程

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