实验三四种解方程组的方法Word文档格式.docx
- 文档编号:15952186
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:10
- 大小:16.87KB
实验三四种解方程组的方法Word文档格式.docx
《实验三四种解方程组的方法Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验三四种解方程组的方法Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
若f((a+b)/2)≈0,则停止计算。
否则,若f((a+b)/2)与发f(a)异号,则根位于(a,(a+b)/2)中,以(a+b)/2代替b;
若f((a+b)/2)与发f(b)异号,则根位于((a+b)/2,b)中,以(a+b)/2代替a。
(d)重复步骤(b)(c),直到区间缩小到容许的误差范围之内。
此时,区间中点即可作为所要求的根。
实验代码:
while
(1)
{
n=a*a*a-3*a-1;
m=b*b*b-3*b-1;
k=(a+b)*0.5;
t=k*k*k-3*k-1;
if((t<
=j&
&
t>
0)||(pow(0.5,i))<
=j||t==0)
i++;
cout<
<
"
该方程的解为:
X="
k<
endl;
break;
}
else
if((t>
0&
n<
m>
0)||(t<
n>
m<
0))
b=k;
0)||(t>
a=k;
●迭代法:
(1)选取初值,并确定方程f(x)=0的等价形式x=φ(x)。
(2)计算x1=φ(x0)。
(3)判别:
如果|x1-x0|<
ε则停止计算;
否则用x1代替x0,重复步骤
(2)和(3)(可以预设最多重复次数)。
a=pow(3.0*b+1,1/3.0);
if(abs(a-b)<
j||abs(a-b)==0)
a<
b=a;
●Newton法:
(a)选定X0,计算f(X0)。
(b)对于n=0,1,2,…,Nmax,用Xn+1=Xn-f(Xn)/f’(Xn)求Xn+1,并计算f(Xn+1).若f(Xn+1)≈0或|Xn+1-Xn|<
ε(容许误差),则停止计算。
a=x0*x0*x0-3*x0-1;
b=3*x0*x0-3;
x1=x0-(a/b);
t=x1*x1*x1-3*x1-1;
if(t>
t<
j||abs(x1-x0)<
j||t==0)
x1<
else
//迭代
x0=x1;
●弦位法:
(1)选定初始值X0,X1,并计算f(X0)和f(X1);
(2)用迭代公式计算X2,再求f(X2);
(3)判别:
如果f(X2)≈则迭代停止;
否则,用(X2,f(X2))和(X1,f(X1))分别代替(X1,f(X1))和(X0,f(X0))。
重复计算
(2)(3),直至相邻两次迭代值之差在容许范围之内。
b=x1*x1*x1-3*x1-1;
x2=x1-(b/(b-a))*(x1-x0);
t=x2*x2*x2-3*x2-1;
j||t==0||abs(x1-x0)<
j)
x2<
x1=x2;
3、程序代码
#include<
iostream>
cmath>
usingnamespacestd;
inti=0;
doublej;
voidDuifen()
doublea,b,m,n,k,t;
请输入一个区间:
cin>
>
a>
b;
请输入要求的精度:
j;
所求解的区间为:
("
"
b<
)"
dx"
i<
="
b-a<
=j||t==0)
对分后的区间为:
第"
步结果是:
"
i=0;
voidDiedai()
doublea,b=2.0;
a-b<
j||abs(a-b)==0)
步结果是:
voidNewton()
doublea,b,t,x0=2,x1;
//函数值
//一阶导数值
x1-x0<
j||t==0)
voidXianwei()
doublea,b,x0=1,x1=3,x2,t;
x0<
j)
个区间为:
voidchoose(charc)
switch(c)
case'
1'
:
对分区间法"
Duifen();
2'
迭代法"
Diedai();
3'
Newton法"
Newton();
4'
弦位法"
Xianwei();
default:
intmain()
charch;
用以下方法解方程F(x)=X*X*X-3*X-1:
endl
1.对分区间法"
2.迭代法"
3.Newton法"
4.弦位法"
//<
0.退出!
**********************"
Ctrl+C退出!
请输入数字选择方法:
while(cin>
ch)
choose(ch);
return0;
4、运行结果
5、总结体会
对分区间法简单,有根区间以1/2的比率缩小,所以它是线性收敛的。
它的缺点是只能用于求实根,而且不能求偶重根,收敛速度较慢。
迭代法需要判断迭代方程的收敛性,即需要满足李氏条件且李氏常数L<
1,当L越接近于零,迭代收敛就越快。
Newton法有十分明显的几何意义,它的收敛速度最快,是二阶收敛,但是它每次迭代都需要计算一次函数值和一次导数值,因此它的计算量比较大。
弦位法的收敛阶是1.618,收敛速度相对于Newton法较慢,但是它的工作量较小,是一种较好的方法。
各种方法都有其优点和不足,在解决问题时应该根据需要即条件选取适当的方法。
求解非线性方程组的方法还有抛物线法等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 三四 方程组 方法
![提示](https://static.bdocx.com/images/bang_tan.gif)