1 / 3
文档名称:

数值分析报告非线性方程的求根解法.doc

格式:doc   大小:36KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数值分析报告非线性方程的求根解法.doc

上传人:莫比乌斯 2023/3/28 文件大小:36 KB

下载得到文件列表

数值分析报告非线性方程的求根解法.doc

文档介绍

文档介绍:该【数值分析报告非线性方程的求根解法 】是由【莫比乌斯】上传分享,文档一共【3】页,该文档可以免费在线阅读,需要了解更多关于【数值分析报告非线性方程的求根解法 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。非线性方程的求根解法
一、实验目的:
通过实验,熟悉线性方程组的求根的经典解法。掌握二分法、简单迭代法和牛顿迭代法的算法思想。理解二分法、简单迭代法、牛顿迭代法、弦截法的Mathematica程序,能够采用不同的方法求出方程的根,并比较各个不同方法的优劣。
二、实验内容:
1、用二分法求方程在区间[0,2]内的根,使误差不超过。
2、用牛顿法求方程在附近的根。
三、实验要求:
,要编程实现。,要求同上。
四、实验程序及结果:
1、用二分法求方程的根
f[x_]:=x4-2x3-4x2+4x+4;
Plot[f[x],{x,0,2}](*画图估计方程根的大概位置*)
{a,b}={1.,2.};e=10-2;
For[k=1,kb100,k++,c=(a+b)/2;If[Abs[f[c]]<e,Break[]];
Print["第",k,"次二分区间:[",a,",",b,"],","中点c=",c,",中点f[c]=",f[c]];
If[f[a]*f[c]>0,a=c,b=c];
];
Print["方程的根:x=",c,"","f[x]=",f[c]]
Print["方程的精确解为",FindRoot[f[x]Š0,{x,}]]
第1次二分区间:[1.,2.],中点c=,中点f[c]=-
第2次二分区间:[1.,],中点c=,中点f[c]=
第3次二分区间:[,],中点c=,中点f[c]=
第4次二分区间:[,],中点c=,中点f[c]=-
第5次二分区间:[,],中点c=,中点f[c]=
第6次二分区间:[,],中点c=,中点f[c]=-
方程的根:x=[x]=
方程的精确解为{x®}
2、用牛顿法求方程的根
f[x_]:=x3-3x-1;
M=50;
x0=2.;
e=10-4;
k=1;
x1=x0-f[x0]/f'[x0];
Print["第",k,"次迭代x=",x1];
While[Abs[x0-x1]>e,If[k>M,x0=x1;
Print["达到最大迭代次数,可能是死循环!"],x0=x1;
x1=x0-f[x0]/f'[x0];
k=k+1;
Print["第",k,"次迭代x=",x1];]]
第1次迭代x=
第2次迭代x=
第3次迭代x=
实验总结:
通过本次实验我加深了对二分法、简单迭代法、牛顿迭代法和弦截法算法思想的了解,并对各个不同方法的优劣有了更深的理解。
本次试验主要使用了二分法和牛顿法,我觉得二分法看起来稍微复杂一点,迭代次数也比较多;而牛顿法迭代次数很少就能得到较精确的根。但是牛顿法使用了求导运算,这是Mathematica内部实现的,其实也加大了算法的复杂度,只不过我们没有直接看到而已。所以我认为二分法和牛顿法的优劣并不能简单判断,可能在不同精度要求下各有优势,要具体判断还需进一步设计实验。