matlab实现Newton法割线法抛物线法Word文档格式.docx
- 文档编号:21416318
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:12
- 大小:80.94KB
matlab实现Newton法割线法抛物线法Word文档格式.docx
《matlab实现Newton法割线法抛物线法Word文档格式.docx》由会员分享,可在线阅读,更多相关《matlab实现Newton法割线法抛物线法Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
0.5643+4*0.5642+0.564+a0=0,于是a0=-2.015790144
你的方程为x3+4x2+x-2.015790144=0.
(2)假设方程是sinx+4x2+x+a0=0的形式(三个系数分别是学号中的数字),重新解决类似的问题
(3)构造一个五次方程完成上面的工作.
四次方程的构造:
将三次多项式再乘以(x-p*)2得到对应的五次多项式(p*为已经确定的方程的根,显然,得到的五次方程有重根).
(4)将
(2)中的方程同样乘以(x-p*)得到一个新的方程来求解
(三)算法介绍
在本文题中,我们用到了newton法,割线法,抛物线法。
1.Newton法迭代格式为:
当初值
与真解足够靠近,newton迭代法收敛,对于单根,newton收敛速度很快,对于重根,收敛较慢。
2.割线法:
为了回避导数值
的计算,使用
上的差商代替
,得到割线法迭代公式:
割线法的收敛阶虽然低于newton法,但迭代以此只需计算一次
函数值,不需计算其导数,所以效率高,实际问题中经常应用。
3.抛物线法:
可以通过三点做一条抛物线,产生迭代序列的方法称为抛物线法。
其迭代公式为:
其中
收敛速度比割线法更接近于newton法。
对于本问题的解决就以上述理论为依据。
终止准则为:
抛物线法求解算法
建立paowuxian.m源程序,源程序代码为:
functionx=pawuxian(f,x0,x1,x2,e)
ifnargin<
4,e=1e-4;
end
x=x2;
y=x1;
z=x0;
whileabs(x-y)>
e
h1=y-z;
h2=x-y;
c1=(feval(f,y)-feval(f,z))/h1;
c2=(feval(f,x)-feval(f,y))/h2;
d=(c1-c2)/(h2+h1);
w=c2+h2*d;
xi=x-(2*feval(f,x))/(w+(w/abs(w))*sqrt(w^2-4*feval(f,x)*d));
z=y;
y=x;
x=xi;
在matlab软件中执行下列语句
>
fun=inline('
x^3+2*x-0.205061208'
);
paowuxian(fun,0,0.5,1,1e-6),formatshort
并得到最终结果
n=
7
ans=
0.1020
第一题
(2)
根据要求,待求解的方程应为:
。
仍然利用
(1)中方法求解这一问题,并利用图解法找到初值,通过观察图像,将newton法初值设为:
0.2,割线法初值设为:
0,0.2。
抛物线法初值设为:
0,0.1,0.2。
图像见下图:
Newton法求解:
clear
sin(x)+2*x-0.205061208'
dfun=inline('
cos(x)+2'
formatlong;
newton1(fun,dfun,0.2,1e-6),formatshort
3
0.06837148815510
割线法求解:
gexianfa(fun,0,0.2,1e-6),formatshort
并得到最终结果截图
0.0684
抛物线法求解
在matlab软件中执行下列语句并得到最终结果截图
paowuxian(fun,0,0.1,0.2,1e-6),formatshort
问题一(3)
按照题目要求对五次方程进行构造为:
在此处我们选取了两组初值为0以及0.5,割线法初值设为:
-1,1。
两组初值为-1,0,1以及0,0.5,1。
Newton法:
(x^3+2*x-0.205061208)*(x-0.102)^2'
dfun=diff('
)
dfun=
(3*x^2+2)*(x-.102)^2+2*(x^3+2*x-.205061208)*(x-.102)
dfun=inline('
(3*x^2+2)*(x-.102)^2+2*(x^3+2*x-.205061208)*(x-.102)'
newton1(fun,dfun,0,1e-6),formatshort
并得到最终结果:
27
0.10199821300764
newton1(fun,dfun,0.5,1e-6),formatshort
31
割线法:
gexianfa(fun,-1,1,1e-6),formatshort
41
抛物线法:
并得到最终结果截图:
57
问题一(4)
按照题目要求对方程进行构造
仍然利用
(1)中方法求解这一问题,并利用图解法找到初值,通过观察图像,可知存在重根,故将newton法初值设为:
两组初值为0以及0.5,割线法初值设为:
两组初值为0,0.1以及-0.1,0.1。
绘图语句为:
fun=inline('
(sin(x)+2*x-0.205061208)*(x-0.102)'
fplot(fun,[-1,1])
fplot(fun,[-1,1]);
)
(cos(x)+2)*(x-.102)+sin(x)+2*x-.205061208
(cos(x)+2)*(x-.102)+sin(x)+2*x-.205061208'
并得到最终截图:
6
0.06837148815484
8
gexianfa(fun,0,1,1e-6),formatshort
10
0.0684
gexianfa(fun,0,0.1,1e-6),formatshort
5
paowuxian(fun,-0.1,0,0.05,1e-6),formatshort
15
(五)计算结果
Newton法
割线法
抛物线法
问题一
(1)
0.102
问题一
(2)
0.068371488155510
0.102和
0.068148815484
(1)迭代步数
(2)迭代步数
(3)迭代步数
(4)迭代步数
4
6,8
3
10,5
8,15
(六)结果分析
将Newton法,割线法,抛物线法进行比较可以看到在本文题中,三种方法计算得到的最终结果基本相同,但是迭代步数有较大差别,综合看来Newton法迭代步数最少,割线法次之,抛物线法最次。
这与算法设计中所说Newton法收敛最快,割线法次之,抛物线法最次很好的贴合。
对每个算法单独来看,显然选择初值不同对于迭代步数影响较大,对于找到根也会有影响。
因此应该先通过画图确定根的大致位置,给出在其附近的初值。
(七)心得体会
在实现这三个算法的过程中,本身编程较易实现,最重要的是对算法本身的理解,只有真正理解算法的含义才能更快更好的实现程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 实现 Newton 割线 抛物线