当前位置: 首页 > article >正文

Matlab 牛顿迭代法(1)牛顿法

一、牛顿迭代公式

1、定义

 2、原理推导

 泰勒公式:

 常用的8个泰勒公式:

 推导:

将f(x)=f(x)在Xk 处的泰勒公式展开:

f(x)=f(Xk)+f(Xk)`(X-Xk)+    f(Xk)`/2  *(x-Xk)^2+..........

我们吧线性的一部分先拿出来:f(x)=f(Xk)+f(Xk)`(X-Xk) =0;

 3、几何意义

盗图:

MATLAB之牛顿迭代法_newton迭代法 matlab_天涯铭的博客-CSDN博客

 图中直线表示的是在x0出的斜率,可以表示为:

f(x)`=f(x)/x0-x1

化简后得到:  x1=x0-f(x0)/f(x)`

4、牛顿法的收敛条件

若 x在【a,b】区间是2连续的,那么牛顿法的条件如下:

a、f(a)*f(b)<0;

b、f(x)`!=0

c、f(x)``在【a,b】区间上是同符号

d、f(x)``*f(x0)>0  .x0在【a,b】;

牛顿迭代法的收敛性取决于x0的选择,所以x0的选取很重要

 

 二、算法流程

 eg:f(x)=x^3−x 

数值分析——Newton迭代法求解方程附Matlab程序_用newton法求方程_Edword_adra的博客-CSDN博客s

这里的案例的前提是在【0,1】的区间f(x)=x^3−x 是收敛的 

>> max=0.000000;
phi=10^(-4); %收敛的精度
step=0.0001;   %设置迭代的步长
for i=0:step:1		%将区间按0.0001分割
    x1=i;			%初值大小
    newton=@(x)x - (x^3/3-x)/(x^2-1);%f(x)=x^3/3-x内部函数
	f_1=@(x)3*x-1; % 计算是否存在2阶导数
	 mm=f_1(x1);
	if  mm==0
	break;
	end;
    k=0;
	err=1.000;%允许误差大小
    while(err>phi)
        x2=newton(x1); % 计算牛顿
        err=abs(x2-x1);
        x1=x2;
        k=k+1;
        %fprintf('%d  %1.15d   %1.15f\n',k,x1,err);
        if x1==0
            max=i;        %记录的最大值
        end
    end
end
fprintf('max= %1.15f\n',max)
max= 0.774300000000000
>> 

三、解方程组


http://www.kler.cn/a/14714.html

相关文章:

  • 使用buildroot编译完整系统【IMX6ULLPRO】
  • 个人APP开发者必备!直客预算助力APP变现高效策略
  • Go 1.21新特性前瞻
  • Redis入门学习笔记【一】
  • 用好Python自然语言工具包-- 实例“基于本地知识库的自动问答”
  • 第8章:树
  • BCSP-玄子前端开发之JavaScript+jQuery入门CH10_jQuery基础
  • 玩机搞机----mtk芯片机型 另类制作备份线刷包的方式 读写分区等等
  • PTA L2-045 堆宝塔 (25 分)
  • Android13 wifi状态问题分析
  • 适合程序员阅读的有用书籍:
  • Windows逆向安全(一)之基础知识(十八)
  • 2023首场亚马逊云科技行业峰会,医疗与生命科学年度盛会精彩先行
  • vue生命周期的理解?
  • 九款顶级AI工具推荐
  • 2023年制造业产品经理NPDP认证报名入口及指南
  • 【STL十四】函数对象(function object)_仿函数(functor)——lambda表达式
  • 07_阻塞队列(BlockingQueue)
  • Hibernate的查询和抓取策略
  • Numpy从入门到精通——存读矩阵以及读取矩阵中的数据