牛顿迭代法 matlab程序(解线性方程组)

作者:佚名来源:转载发布时间:2009-3-7 16:55:53

减小字体 增大字体

1.功能

本程序采用牛顿法,求实系数高次代数方程

f(x)=a0xn+a1xn-1+…+an-1x+an=0 (an≠0 )     (1)

的在初始值x0附近的一个根。

2.使用说明

(1)函数语句

Y=NEWTON_1(A,N,X0,NN,EPS1)

调用M文件newton_1.m。

(2)参数说明

A n+1元素的一维实数组,输入参数,按升幂存放方程系数。

N   整变量,输入参数,方程阶数。

X0 实变量,输入参数,初始迭代值。

NN  整变量,输入参数,允许的最大迭代次数。

EPS1 实变量,输入参数,控制根的精度。

3.方法简介

解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。把f(x)在x0点附近展开成泰勒级数

f(x)=f(x0)+(x-x0)fˊ(x0)+(x-x0)2 +…

取其线性部分,作为非线性方程f(x)=0的近似方程,则有

f(x0)+fˊ(x0)(x-x0)=0

设fˊ(x0)≠0则其解为

x1=x0-f(x0)/fˊ(x0)

再把f(x)在x1附近展开成泰勒级数,也取其线性部分作f(x)=0的近似方程。若f(x1)≠0,则得

x2=x1-f(x1)/fˊ(x1)

这样,得到牛顿法的一个迭代序列

xn+1=xn-f(xn)/fˊ(xn)

4.newton_1.m程序

function y=newton_1(a,n,x0,nn,eps1)

x(1)=x0;

b=1;

i=1;

while(abs(b)>eps1*x(i))

i=i+1;

x(i)=x(i-1)-n_f(a,n,x(i-1))/n_df(a,n,x(i-1));

b=x(i)-x(i-1);

if(i>nn)error(ˊnn is fullˊ);

return;

end

end

y=x(i);

i

程序中调用的n_f.m和n_df.m文件如下:

function y=n_df(a,n,x)%方程一阶导数的函数

y=0.0;

for i=1:n

y=y+a(i)*(n+1-i)*x^(n-i);

end

function y=n_df(a,n,x)

y=0.0;

for i=1:n

y=y+a(i)*(n+1-i)*xˆ(n-i);

end

5.程序附注

(1)程序中调用n_f.m和n_df.m文件。n_f.m是待求根的实数代数方程的函数,n_df.m是方程一阶导数的函数。由使用者自己编写。

(2)牛顿迭代法的收敛速度:如果f(x)在零点附近存在连续的二阶微商,ξ是f(x)的一个重零点,且初始值x0充分接近于ξ,那么牛顿迭代是收敛的,其收敛速度是二阶的,即平方收敛速度。

6.例题

用牛顿法求下面方程的根

f(x)=x3+2x2+10x-20

y=y+a(i)*(n+1-i)*x^(n-i);

7.运行结果

>>a=[1,2,10,-20] ;

>>n=3;

>>x0=1;

>>nn=1000;

>>eps1=1e-8;

>>y=newton_1(a,n,x0,nn,eps1)

y=

1.1373e+000

i=

6

function fp = newton_interpolation(x,y,p)

% Script for Newtons Interpolation.

% Muhammad Rafiullah Arain

% Mathematics & Basic Sciences Department

% NED University of Engineering & Technology - Karachi

% Pakistan.

% ---------

% x and y are two Row Matrices and p is point of interpolation

%

% Example

% >> x=[1,2,4,7,8]

% >> y=[-9,-41,-189,9,523]

% >> newton_interpolation(x, y, 5)

% OR

% >> a = newton_interpolation(x, y, 5)

n = length(x);

a(1) = y(1);

for k = 1 : n - 1

d(k, 1) = (y(k+1) - y(k))/(x(k+1) - x(k));

end

for j = 2 : n - 1

for k = 1 : n - j

d(k, j) = (d(k+1, j - 1) - d(k, j - 1))/(x(k+j) - x(k));

end

end

d

for j = 2 : n

a(j) = d(1, j-1);

end

Df(1) = 1;

c(1) = a(1);

for j = 2 : n

Df(j)=(p - x(j-1)) .* Df(j-1);

c(j) = a(j) .* Df(j);

end

fp=sum(c);

展开阅读全文

牛顿迭代法例题 matlab,牛顿迭代法-matlab程序(解线性方程组)相关推荐

  1. 牛顿迭代法解线性方程matlab程序,牛顿迭代法matlab程序(解线性方程组)

    <牛顿迭代法matlab程序(解线性方程组)>由会员分享,可在线阅读,更多相关<牛顿迭代法matlab程序(解线性方程组)(4页珍藏版)>请在金锄头文库上搜索. 1.牛顿迭代法 ...

  2. 计算方法LU分解c语言程序解线性方程组,LU分解求线性方程组的解

    LU分解是矩阵分解的一种,可以将一个矩阵分解为一个上三角矩阵和一个下三角矩阵的乘积. LU分解可以用来求逆矩阵,解线性方程组等.本文将介绍LU分解求线性方程组的解. 1.定义 如果A是一个方阵,A的L ...

  3. Matlab实现 LU分解法解线性方程组(全选主元列选主元)

    选主元LU分解 实验内容:列选主元LU分解和全选主元LU分解求解线性方程组 计算方法: 全选主元消元法 1.1 初始化 根据参数A.b,记录下矩阵.右端项的尺寸n: 以得到的尺寸n初始化解向量x: 同 ...

  4. matlab 改进的平方根法 LDL 解线性方程组 数值分析

    %平方根法LDL %author LijiaYi(foddcus) FaFu university 2022.6 %email:foddcus@163.com%input输入矩阵,包括系数和参数%ou ...

  5. 科学计算机解多元方程组,南京大学计算机科学与技术系 数值计算方法(第3章)3 向量和矩阵的范数 病态方程组 解线性方程组的迭代法.ppt...

    南京大学计算机科学与技术系 数值计算方法(第3章)3 向量和矩阵的范数 病态方程组 解线性方程组的迭代法.ppt 上传人:ct****5 文档编号:43116102 上传时间:2020-01-21 格 ...

  6. 牛顿法的matlab实现例题,【MATLAB|MATLAB牛顿插值法例题与程序Word版】

    『易坊知识库摘要_MATLAB|MATLAB牛顿插值法例题与程序Word版』x12345678y22.523.324.421.7025.228.524.825.4二.数学原理假设有n+1个不同的节点及 ...

  7. 极坐标 c语言,牛顿 拉夫逊迭代法极坐标潮流计算C语言程序

    <牛顿 拉夫逊迭代法极坐标潮流计算C语言程序>由会员分享,可在线阅读,更多相关<牛顿 拉夫逊迭代法极坐标潮流计算C语言程序(31页珍藏版)>请在人人文库网上搜索. 1.*利用牛 ...

  8. matlab求方程实根,简单迭代法求方程根的MATLAB程序

    function [x_reality,n_reality] = Simple_stepit( f_name,x_start,tolerance,n_limit) %% % 简单迭代法(也叫不动点迭代 ...

  9. 数值分析2-解非线性方程的不动点迭代法,斯蒂芬森(steffensen)迭代法,牛顿法以及简化牛顿法的matlab程序

    对于形如f(x)=0的单变量非线性方程,可以构造不同的迭代函数进行迭代求根,以f(x)=x3-x-1为例,我们可以简单的通过等式变形构造出x=x3-1和x=(x+1)(1/3)两种等价形式:也可以自己 ...

最新文章

  1. AI安防落地靠什么?大规模生产是关键
  2. 获取NT的admin权限的方法
  3. Capsule下一代CNN深入探索
  4. DNS高可用设计--软件高可用
  5. 崛企问卷调查小程序模块V1.3.2
  6. 常用的stm32库函数
  7. 判断是否为长按_【物流知识】物流配送合理化判断7大标志
  8. Nginx日志安全分析脚本
  9. python中3个while循环_Python3 里怎么让一个包含 while 循环的异步函数不断运行,而不阻塞正常的代码流程...
  10. Freemarker 的常见控制结构写法(ZT)
  11. 面试官:为什么要用 Spring?它到底解决了什么问题?
  12. C++开发必备的书——《C++代码整洁之道》C++17可持续软件开发模式实践
  13. 项目小记录—拼音码demo
  14. 平年和闰年c语言程序,C语言平年,平年闰年问题
  15. 常用的curl命令及参数详解
  16. igraph 利用节点列表输出子图并存储
  17. Linux系统引导过程及排除启动故障
  18. 网络天气预报项目笔记(Qt)
  19. 核心微生物分析_中国白酒发酵过程中的核心微生物群及其与环境因子的关系-微生物学报.PDF...
  20. edt嵌入式确定性测试_CallSerially EDT和InvokeAndBlock(第1部分)

热门文章

  1. 一些好用的Mac软件推荐
  2. python 读取本地txt文档发送邮件给qq邮箱
  3. Window xp 桌面主题修改为windows经典后,再恢复为Window xp 的方法
  4. 考勤管理代码:python基础练手用的
  5. 【Python语言基础】——Python 教程
  6. 通达OA国产化简介/信创版本
  7. 什么软件可以测试iphone6s芯片,苹果是对的:测试显示iPhone 6s两款芯片续航差距微小...
  8. JS:指定FPS帧频,requestAnimationFrame播放动画
  9. Trojan/Win32.Small.dyq病毒的解决方法
  10. pc端手机短信发送的介绍