- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab非线性方程解法[含牛拉解法]
PAGE 21
PAGE 17
非线性方程的解法(含牛拉解法)
1引 言
数学物理中的许多问题归结为解函数方程的问题,即,
(1.1)
这里,可以是代数多项式,也可以是超越函数。若有数为方程的根,或称函数的零点。
设函数在内连续,且。根据连续函数的性质知道,方程在区间内至少有一个实根;我们又知道,方程的根,除了极少简单方程的根可以用解析式表达外,一般方程的根很难用一个式子表达。即使能表示成解析式的,往往也很复杂,不便计算。所以,具体求根时,一般先寻求根的某一个初始近似值,然后再将初始近似值逐步加工成满足精度要求为止。
如何寻求根的初始值呢?简单述之,为了明确起见,不妨设在区间内有一个实的单根,且。我们从左端出点出发,按某一预定的步长一步一步地向右跨,每跨一步进行一次根的“有哪些信誉好的足球投注网站”,即检查每一步的起点和(即,)的函数值是否同号。若有:
(1.2)
那么所求的根必在内,这时可取或作为根的初始近似值。这种方法通常称为“定步长有哪些信誉好的足球投注网站法”。另外,还是图解法、近似方程法和解析法。
2 迭代法
2.1 迭代法的一般概念
迭代法是数值计算中一类典型方法,不仅用于方程求根,而且用于方程组求解,矩阵求特征值等方面。迭代法的基本思想是一种逐次逼近的方法。首先取一个精糙的近似值,然后用同一个递推公式,反复校正这个初值,直到满足预先给定的精度要求为止。
对于迭代法,一般需要讨论的基本问题是:迭代法的构造、迭代序列的收敛性天收敛速度以及误差估计。这里,主要看看解方程迭代式的构造。
对方程(1.1),在区间内,可改写成为:
(2.1)
取,用递推公式:
, (2.2)
可得到序列:
(2.3)
当时,序列有极限,且在附近连续,则在式(2.2)两边极限,得,
即,为方程(2.1)的根。由于方式(1.1)和方程(2.1)等价,所以,
即,
式(2.2)称为迭代式,也称为迭代公式???可称为迭代函数。称求得的序列为迭代序列。
2.2 程序和实例
下面是基于MATLAB的迭代法程序,用迭代格式,求解方程,其中初始值为。
**************************************************************************
function[p,k,err,P]=fixpt(f1021,p0,tol,max1)
% f1021是给定的迭代函数。
% p0是给定的初始值。
% tol是给定的误差界。
% max1是所允许的最大迭代次数。
% k是所进行的迭代次数加1。
% p是不动点的近似值。
% err是误差。
% P = {p1,p2,…,pn}
P(1) = p0;
for k = 2:max1
P(k) = feval(f1021, P(k-1));
k, err = abs(P(k) - P(k-1))
p = P(k);
if(errtol),
break;
end
if k == max1
disp(maximum number of iterations exceeded);
end
end
P=P;
****************************************************************************
例2.1 用上述程序求方程的一个近似解,给定初始值,误差界为。
解:先用m文件先定义一个名为f1021.m的函数文件。
function y = f1021(x)
y = sin(x)/x;
建立一个主程序prog1021.m
clc
clear all
fixpt(f1021,0.5,10^(-5),20)
然后在MATLAB命令窗口运行上述主程序,即:
prog1021
计算结果如
文档评论(0)