- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 计算方法的MATLAB实现
计算方法主要研究数学问题的数值解,涉及的内容。利用MATLAB提供的部分函数,可以实现某些情况下的数值求解。 求解一元非线性方程的方法主要有二分法、割线法、牛顿法等。本节主要介绍两个可以求解一元非线性方程的函数,即fzero函数和roots函数。
fzero函数
用fzero函数求一元非线性方程的零点。该函数的调用格式为:
●x=fzero(fun,x0):如果x0为标量,则试图寻找函数fun在x0附近的零点。fun参数是一个M文件函数或匿名函数的函数句柄。函数fzero返回的值x靠近fun函数改变符号的位置。如果搜索失败,则返回NaN。搜索区间扩展到inf、NaN或复数值时终止搜索。如果x0是一个长度为2的矢量,则fzero函数假设x0是一个区间,其中fun(x0(1))的符号与fun(x0(2))的不同。如果符号相同,则会出错。给出符号不同的区间可以保证fzero函数返回一个fun函数改变符号的位置附近的值。
●[x,fval]=fzero(…):返回x和解x处目标函数fun的值。
●[x,fval,exitflag]=fzero(…):返回一个exitflag值,描述fzero函数的退出条件。返回值及其描述如下所示:
0,表示函数找到了零值点x;
0,表示没有发现零值点。
例1 求方程的解。x2=fzero(f,1)
x3=fzero(f,6)
x4=fzero(f,50)
运行结果:
x1 =
-20
x2 =
-1
x3 =
5
x4 =
30
7.1.2 roots函数
用roots函数计算多项式的根,该函数的调用格式为:
●r=roots(c):返回一个列矢量,其元素为多项式c的解。
例求多项式方程的解。r =
5.0000
-0.0000 + 1.0000i
-0.0000 - 1.0000i
P1 =
1.0000 -5.0000 1.0000 -5.0000
注意:poly和roots互为逆函数函数poly返回多项式的系数。 用MATLAB求解线性方程组的解,Jocabi迭代法、Gauss-Seidel迭代法和SOR(超松驰)迭代法等。 实际工程中得到的数学模型往往具有非线性的特点,得到其解析解比较困难。一般采用迭代法求解非线性方程组。比较常见的迭代方法有不动点迭代法、Newton迭代法和拟Newton迭代法等几种不动点迭代法。
个未知数和个方程的非线性方程组记为:,然后把上述方程组改写为便于迭代的等价形式:,由此得出不动点迭代法的迭代公式:。
如果得到的序列满足,则就是的不动点。这样就可以求出线性方程组的解(近似解)。据此,编写不动点迭代法的M文件(文件名为example7_3b.m):
function s=example7_3b(x,eps)
%不动点迭代法求非线性方程组的解
%x为迭代初值,eps为允许误差值。
if nargin==1
eps=1e-6;
elseif nargin1
error
return
end
x1=example7_3a(x);%第一次迭代,example7_3a是函数的文件名。
while norm(x1-x)=eps
x=x1;
x1=example7_3a(x);%循环迭代
end
s=x1;
return
例程的解。
函数代码(M文件名为example7_3a.m):
function y=example7_3a(x)
y(1)=(x(1)*x(1)+x(2)*x(2)+9)/(-11);
y(2)=(x(1)*x(2)*x(2)+x(1)+8)/6;
调用函数函数格式:
s=example7_3b([0,0])
运行结果:
s=
-1.0000 1.0000
7.4 插值
插值计算在数据拟合和数据平滑等方面应用普遍。MATLAB提供了用最近邻插值、线性插值、三次样条插值、三次插值和FFT插值法进行一维、二维和维插值的函数。
MATLAB中有两种一维插值,即多项式插值和基于FFT的插值。
多项式插值
函数interp1进行一维插值。一维插值是进行数据分析和曲线拟合的重要手段。interp1函数使用多项式技术,用多项式函数拟合所提供的数据,并计算目标插值点上的插值函数值,其最常用的语法形式是:
yi=interp1(x,y,xi,method)
x和y为给定数据的矢量,长度相同。xi为包含要插值的点的矢量,method是一个可选的字符串,指定一种插值方法,包括:
●最近邻插值(method=nearest):该方法将插值点的值设置为已知数据点中距离最近
您可能关注的文档
最近下载
- 2024-2025学年初中信息技术(信息科技)七年级全一册义务教育版(2024)教学设计合集.docx
- 《眼耳鼻咽喉口腔科护理学》教案 第13课 耳鼻咽喉科常见疾病患者的护理(三).docx VIP
- 2025年江苏南京中考语文试卷(真题--含答案) .pdf VIP
- 统编版(2024)道德与法治七年级上册期末复习全册知识点提纲.docx VIP
- 建筑工程述标(鲁班奖项目超高层框架结构技术答辩).pptx VIP
- 混凝土结构通用规范GB55008-2021知识培训.pptx VIP
- 《电梯关键部件寿命评估技术规范》.pdf VIP
- 高压氧舱技术的进步与挑战.docx VIP
- 消防考试试题100题及答案.docx VIP
- 2025电力企业数字化转型成熟度评价指南.pdf VIP
文档评论(0)