牛顿法原理(matlab实现,求零点,求极值)

您所在的位置:网站首页 MATLAB牛顿法求解机构 牛顿法原理(matlab实现,求零点,求极值)

牛顿法原理(matlab实现,求零点,求极值)

#牛顿法原理(matlab实现,求零点,求极值)| 来源: 网络整理| 查看: 265

开头

重点 本文对于牛顿法求零点和求极值点进行简单的公式推导,并使用matlab实现算法,同时做两道简单习题。

又是艰难的一天呢。 今天用matlab写牛顿法,竟然又搞了好几个小时,我真的是有点绝望。唉,我太难了,好在最后解决了我脑袋中的bug.我竟然是个学数学的垃圾。。。

好像有点无厘头。。。 改一下子,好像应该写个摘要。

正文 原理

对于给定的函数 f ( x ) f(x) f(x),我们将其在 x 0 x_0 x0​泰勒展开(严谨的人应该注意 f ( x ) f(x) f(x)需满足泰勒展开的条件),有如下结果: f ( x ) = f ( x 0 ) + f ′ ( x 0 ) 1 ! ( x − x 0 ) + . . . + f ( n ) ( x 0 ) n ! ( x − x 0 ) n + o ( x n ) f(x)=f(x_0)+\frac{f'(x_0)}{1!}(x-x_0)+...+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+o(x^n) f(x)=f(x0​)+1!f′(x0​)​(x−x0​)+...+n!f(n)(x0​)​(x−x0​)n+o(xn) 令 f ( x ) = 0 f(x)=0 f(x)=0,则有: f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) = 0 f(x_0)+f'(x_0)(x-x_0)=0 f(x0​)+f′(x0​)(x−x0​)=0 x = x 0 − f ( x 0 ) f ′ ( x 0 ) x=x_0-\frac{f(x_0)}{f'(x_0)} x=x0​−f′(x0​)f(x0​)​ 故在求函数零点时,有如下迭代公式: x i + 1 = x i − f ( x i ) f ′ ( x i ) x_{i+1}=x_i-\frac{f(x_i)}{f'(x_i)} xi+1​=xi​−f′(xi​)f(xi​)​

当我们要求函数的极值点时,我们令 f ′ ( x ) = 0 f'(x)=0 f′(x)=0,对于泰勒展开式有如下结果: 0 = f ′ ( x 0 ) + f ′ ′ ( x 0 ) ( x − x 0 ) 0=f'(x_0)+f''(x_0)(x-x_0) 0=f′(x0​)+f′′(x0​)(x−x0​) x = x 0 − f ′ ( x 0 ) f ′ ′ ( x 0 ) x=x_0-\frac{f'(x_0)}{f''(x_0)} x=x0​−f′′(x0​)f′(x0​)​ 故求函数的极值点时,我们有下面的迭代公式: x i + 1 = x i − f ′ ( x i ) f ′ ′ ( x i ) x_{i+1}=x_i-\frac{f'(x_i)}{f''(x_i)} xi+1​=xi​−f′′(xi​)f′(xi​)​ 原理说完了,现在我们就开始进行最为有趣的实践环节喽。不能总是纸上谈兵嘛,数学总要用起来才能真正体现出他的价值。

应用

题目1.求出函数 y = ( x − 3 ) 3 y=(x-3)^3 y=(x−3)3与 x x x轴的交点,并在图像上标注出来。

题目貌似有点简单,但是我们最重要的是对方法的掌握。 代码如下: 首先是牛顿法求零点(与 x x x轴交点)的函数。

function res=findzeroNt(f,var,x0,e,max) df=diff(f); for i=1:max x1=x0-subs(f,var,x0)/subs(df,var,x0); if abs(x1-x0)sigma if subs(diff(f),var,x0)==0 break end if n>20 break end x1=x0-subs(diff(f),var,x0)/subs(diff(f,2),var,x0); x1=double(x1); wucha=abs(x1-x0); x0=x1; n=n+1; end min=x0;

然后是主函数代码:

clc,clear syms x f=exp(-x)+x^2;%函数表达式 ezplot(f) hold on res=Newton(0,f,0.001,x) plot(res,subs(f,x,res),'r*')

图像如下: 在这里插入图片描述

反思

牛顿迭代法虽然可以解决一些问题,但是对于有些函数效果不太理想,还有待进一步改进。待我好好研究。。。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3