matlab牛顿解方程,牛顿迭代法解非线性方程matlab实现
1
.功能
本程序采用牛顿法,求实系数高次代数方程
f(x)=a0xn+a1xn-1+
…+an-1x+an=
0 (an
≠0
)
(
1
)
的在初始值
x
0
附近的一个根。
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=ne
wton_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+2×2+10x-20
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.368808107821373e+000
i=
6
matlab牛顿解方程,牛顿迭代法解非线性方程matlab实现相关推荐
- 牛顿(Newton)迭代法求解非线性方程以及方程组的Matlab实现
必做题目比较简单,写得有些随意,主要还是第二个拓展题目的难度比较高 1.Newton迭代法解非线性方程 function [] = Newton_Die(x,tol,N) f=cos(x)-x; %f ...
- matlab迭代求解,[基于matlab平台的三种迭代法求解矩阵方程]matlab迭代法求方程的根...
数值分析第二次作业 学院:电子工程学院 基于matlab平台的三种迭代法求解矩阵方程组 求解系数矩阵由16阶Hilbert方程组构成的线性方程组的解,其中右端项为[2877/851,3491/14 ...
- python解方程代码_Python解方程的技巧介绍(代码示例)
本篇文章给大家带来的内容是关于Python解方程的技巧介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. numpy numpy 用来解方程的话有点复杂,需要用到矩阵的思 ...
- 解题思考F. 解方程(二分法解方程)
题目描述 Problem Description 给定方程 8x^4 + 7x^3 + 2x^2 + 3x + 6 == Y,请计算x在[0,100]范围内的解. Input 输入数据首先是一个正整数 ...
- matlab振动方程,数理方程关于振动方程的分析matlab.doc
数理方程关于振动方程的分析matlab.doc 1数理方程基于MATLAB的问题分析报告一.问题的提出.背景.意义振动是指物体经过它的平衡位置所作的往复运动或某一物理量在其平衡值附近的来回变动.而波动 ...
- Matlab解方程, 等到数字解和解析式解
使用solve可以解方程组, 数值简单的方程会给出数值解, 但是很多情况下只会给出解析式解. 比如以下代码: a=0.0715; d=0.3; b_square=0.0887;A1=0.4452; B ...
- c语言gs迭代法解方程,ex1_7-GS迭代法例题源程序及注释.pdf
!example1_7 !注释 PROGRAM MAIN !主程序 DIMENSION A(4,4), B(4), X(4) !四个波长,混合物由四个组分组成 DOUBLE PRECISION A, ...
- 99、插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法...
转载于:https://www.cnblogs.com/weizhen/p/7747100.html
- 量子计算机运行速度解方程,量子计算机可解方程组
量子计算机,可解线性方程组?这已不是神话.中科大6月8日发布消息,该校科学家日前在国际上首次成功实现用量子计算机求解线性方程组的实验. 实验由潘建伟院士领衔的量子光学和量子信息团队的陆朝阳.刘乃乐研究 ...
最新文章
- 在Red Hat Linux5下构建LAMP网站服务平台之MySQL、PHP的安装与配置
- python不支持以下哪种数据类型_Python 不支持以下哪种数据类型?
- 1.二叉树的中序遍历
- c 冒泡排序_C语言中选择排序和冒泡排序
- 服务注册与发现用mysql_yeasul: 轻量级服务注册与发现中心,具有健康检查功能。...
- 2020 操作系统第三天复习(知识点总结)
- Android Studio之debug调试卡在waiting for debugger界面的解决办法
- PostgreSQL 入门
- 高通CEO谈中国5G:原以为会晚个5-10年,结果第一年就推出了
- 赚钱的逻辑和赚钱的道具要发生改变
- 如何查看一个文件中间的20至30行内容?
- 用Diff和Patch工具维护源码
- EasyRecovery14免费并且超好用的数据恢复工具
- java 中文繁体转换简体
- (已解决)spring-boot maven报错Project 'org.springframework.boot:spring-boot-starter-parent:2.2.0.RELEAS
- OJ每日一练——输出元音字母
- 马云重构阿里:或分拆成30家公司 整合3家上市
- mysql登录框万能密码_Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]...
- oracle sql 不等 优化6,oracle sql 优化(三)
- Altium Designer 网表导入常见问题 网表导入教程 同步原理图与PCB