第8章 节 计算方法的MATLAB实现(MATLAB课件).ppt

第8章 节 计算方法的MATLAB实现(MATLAB课件).ppt

  1. 1、本文档共169页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 节 计算方法的MATLAB实现(MATLAB课件).ppt

MATLAB 7.0从入门到精通;课程主要内容;第8章 计算方法的MATLAB实现;8.1 方程求根;程序实例;8.2.1 直接解法;程序实例;程序实例;8.2.2 线性方程组求解中的变换;程序实例; triu(a,1) ans = 0 -3 3 0 0 -1 0 0 0 triu(a,-1) ans = 12 -3 3 -18 3 -1 0 1 1;下三角变换 U=tril(x)返回矩阵x的下三角部分; U=tril(x,k)返回第k条对角线以上下部分的元素。;程序实例;程序实例;对角变换 U=diag(x)返回矩阵x主对角线上的元素,返回结果是一列向量形式; U=diag(x,k)返回第k条对角线上的元素值。 当x为向量时生成矩阵。;程序实例;程序实例;8.2.3 迭代解法;Jacobi迭代法;Jacobi.m;D=diag(diag(a));%求出对角矩阵 D=inv(D);%求出对角矩阵的逆 L=tril(a,-1);%求出严格下三角矩阵 U=triu(a,1);%求出严格上三角矩阵 B=-D*(L+U); f=D*b; s=B*x0+f; while norm(s-x0)=eps x0=s; s=B*x0+f; end return;程序实例;程序实例;Gauss-Saidel迭代法;gauss.m;L=tril(a,-1);%求出严格下三角矩阵 D=diag(diag(a));%求出对角矩阵 U=triu(a,1);%求出严格上三角矩阵 C=inv(D+L); B=-C*U; f=C*b; s=B*x0+f; while norm(s-x0)=eps x0=s; s=B*x0+f; end return;程序实例;程序实例;8.3 非线性方程组数值解法;不动点迭代法;staticiterate.m;xx=fx(x);%第一次迭代 while norm(xx-x)=eps x=xx; xx=fx(x); end s=xx; return;程序实例;fx.m;程序实例;Newton迭代法;newtoniterate.m;x1=fx1(x);%非线性方程组 x2=-dfx1(x);%非线性方程组导数 x3=inv(x2); x0=x3*x1; while norm(x0)=eps x=x0+x; x1=fx1(x); x2=-dfx1(x); x3=inv(x2); x0=x3*x1; end s=x0+x; return;程序实例;fx1.m和dfx1.m;程序实例;8.4 插值与拟合;8.4.1 一维插值;Method可取如下的值: ‘nearest’最近插值 ‘linear’线性插值 ‘spline’三次样条插值 ‘cubic’三次插值 Method默认值为线性插值,上述插值要求向量x单调。;程序实例;程序实例;程序实例;程序实例;程序实例;程序实例;Date;程序结果;程序实例;Date;程序结果;程序实例;Date;程序结果;程序实例;Date;程序结果;程序实例;Date;程序结果;8.4.2 二维插值;程序实例;程序实例;程序实例;Date;程序实例;Date;程序实例;Date;程序实例;Date;程序实例;Date;8.4.3 三维插值;程序实例;Date;8.4.4 Lagrange插值;lagrange.m;%按照公式,对需要求的插值点向量x0的每个元素进行计算 for i=1:m t=0.0; for j=1:nx u=1.0; for k=1:nx if k~=j u=u*(x0(i)-x(k))/(x(j)-x(k)); end end t=t+u*y(j); end s(m)=t; end return;程序实例;8.4.5 Newton插值;newton.m;for i=1:m t=0.0; j=1; yy=y; kk=j; %求各级均差 while(kk=nn) kk=kk+1; for k=kk:nx yy(k)=(yy(k)-yy(kk-1))/(x(k)-x(kk-1)); end end %求插值结果; t=yy(1); for k=2:

您可能关注的文档

文档评论(0)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档