《MATLAB数值计算》PPT课件.ppt_第1页
《MATLAB数值计算》PPT课件.ppt_第2页
《MATLAB数值计算》PPT课件.ppt_第3页
《MATLAB数值计算》PPT课件.ppt_第4页
《MATLAB数值计算》PPT课件.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 MATLAB数值计算,2019/5/12,第3章 MATLAB数值计算,3.1 多项式 3.2 插值和拟合 3.3 数值微积分 3.4 线性方程组的数值解 3.5 稀疏矩阵 3.6 常微分方程的数值解,3.1.1 多项式的表达和创建,3.1 多项式,表示成向量的形式,系数按降序排列,例如,x = 1 3 -15 -2 9,y = 1 0 0 0 1,3.1.2 多项式的四则运算,多项式相加减没有专门的函数,可以自己定义。 多项式相乘函数 conv 的语法为 c=conv(a,b),其 中 a, b 代表两个多项式的系数向量,【例 3.1】 完成两个同阶次多项式: 的相乘运算。 a=1 2 3 4; b=1 4 9 16; e = conv(a,b) e = 1 6 20 50 75 84 64,多项式相除函数 deconv 的语法为 q,r=deconv(a,b),其中 q,r分别代表整除多项式及余数多项式,【例 3.2】 利用例 3.4 中的数据。 f, r = deconv(e,b) f = 1 2 3 4 r = 0 0 0 0 0 0 0,3.1.3 多项式求值和求根运算,1. 多项式求值 语法格式为 y = polyval(p,x) 其中 p 代表多项式各阶系数向量,x 为要求值的点。当 x 表示矩阵时,需用 y=polyvalm(p,x)来计算相应的值。,【例 3.3】 利用 polyval 函数找出 在 s=3 处的值: p=1 2 -12 -1 7; z=polyval(p,3) z = 31,【例 3.4】 利用 polyval找出多项式 在-1,4间均匀分布的 5个离散点的值。 x=linspace(-1,4,5) % 在-1,4区间产生5个离散点 p=1 4 7 -8; v=polyval(p,x) x = -1.0000 0.2500 1.5000 2.7500 4.0000 v = -12.0000 -5.9844 14.8750 62.2969 148.0000 v 即为多项式在各个离散点上对应的函数值。,【例 3.5】 估计矩阵多项式 P (X) = X3 2X I在已知矩阵 X 处的值,其中 X=1 2 1; -1 0 2; 4 1 2。 X = 1 2 1; -1 0 2; 4 1 2; P=1 -2 -1; Y = polyvalm(P,X) Y = 0 -1 5 9 -1 -1 3 8 5,2. 多项式求根,语法为:x=roots(P),其中 P 为多项式的系数向量,x 也为向量,即 x(1),x(2),x(n)分别代表多项式的 n 个根。MATLAB规定:多项式是行向量,根是列向量。,【例 3.6】 求解多项式 的根。 roots(1 3 -12 -2 8) ans = -5.18325528043789 2.17062070347062 -0.83694739215044 0.84958196911772 注意:在上面的程序中,数字格式都设为长(long)型,若改为短(short)型,结果会有差别, 根据需要可执行 MATLAB 窗口的 Fle | Preferences命令进行修改。,3.1.4 多项式的构造,函数 poly2sym来构造多项式 函数 poly来求根对应的多项式的各阶系数,【例 3.7】 利用函数 poly2sym构造多项式 。 T=1 3 -15 -2 9; poly2sym(T); ans = x4+3*x3-15*x2-2*x+9,【例 3.8】 用多项式的根构造上例多项式 。 T=1 3 -15 -2 9; %多项式的系数向量 r=roots(T); %求得多项式的根 poly(r) %利用根构造出多项式 ans = 1.0000 3.0000 -15.0000 -2.0000 9.0000,3.2 插值和拟合,3.2.1 多项式插值和拟合,已知 节点,构造函数,插值,使得,拟合,拟合就是要找出一个曲线方程式(多项式拟合就是设 法找一个多项式),使得它与观测数据最为接近,这时 不要求拟合多项式通过全部已知的观测节点。,1多项式插值函数(interp1),yi = interp1(x,y,xi,method) 对应于插值函数 ,其中 x 和 y是原已知数据的 x、y 值,xi 是要内插的数据点,method是插值方法。,【例 3.9】 取余弦曲线上 11 个点的自变量和函数值点作为已知数据,再选取 41 个自变量点,分别用分段线性插值、三次方程式插值和样条插值3 种方法计算确定插值函数的值。 x=0:10; y=cos(x); xi=0:.25:10; y0=cos(xi); %精确值 y1=interp1(x,y,xi); %线性插值结果 y2=interp1(x,y,xi,cubic); %三次方程式插值结果 y3=interp1(x,y,xi,spline); %样条插值结果 %plot(xi,y0,o,xi,y1, -, xi,y2,-.,xi,y3,-) subplot(2,2,1);plot(xi,y0,o) subplot(2,2,2); plot(xi,y1, -) subplot(2,2,3); plot(xi,y2,-.) subplot(2,2,4); plot(xi,y3, -),2多项式拟合函数 polyfit p=polyfit(x,y,n) p,s=polyfit(x,y,n) 其中x,y为已知的数据组,n 为要拟合的多项式的阶次,向量p 为返回的要拟合的多项式的系数,向量s 为调用函数polyval 获得的错误预估计值。 一般来说,多项式拟合中阶数n 越大,拟合的精度就越高。 函数 polyfit 常和函数 polyval(见 3.1.3 节)结合起来使用,由 polyfit 计算出多项式的各个系数 后,再利用polyval 对输入向量决定的多项式求值。,【例 3.10】 对向量X=-2.8 -1 0.2 2.1 5.2 6.8和Y=3.1 4.6 2.3 1.2 2.3 -1.1分别进行阶数为3、4、5 的多项式拟合,并画出图形进行比较。 x=-2.8 -1 0.2 2.1 5.2 6.8; y=3.1 4.6 2.3 1.2 2.3 -1.1; p3=polyfit(x, y, 3); % 用不同阶数的多项式拟合x和y p4=polyfit(x, y, 4); p5=polyfit(x, y, 5); xcurve= -3.5:0.1:7.2; % 生成x值 p3curve=polyval(p3, xcurve); % 计算在这些x点的多项式值 p4curve=polyval(p4, xcurve); p5curve=polyval(p5, xcurve); plot(xcurve,p3curve,-,xcurve,p4curve,-.,xcurve,p5curve,-,x,y,*);,3.3 数值微积分,3.3.1 微分和差分,函数diff:计算两个相邻点的差值. 语法,diff(x) 返回x 对预设独立变量的一次微分; diff(x,t) 返回x 对独立变量t 的一次微分值; diff(x,n) 返回x 对预设独立变量的n 次微分值; diff(x,t,n) 返回x 对独立变量t 的n 次微分值。 其中x代表一组离散点 。 计算 的数值微分为dy=diff(y)./diff(x)。,【例 3.11】 计算多项式 在 -4, 5 区间的微分。 x=linspace(-4,5); %产生100个x的离散点 p= 1 -3 -8 7 3 -5; f=polyval(p,x); %多项式在100个离散x点上对应的值 plot(x,f) %将多项式函数绘图 title(多项式方程) ;,【例 3.12】 对 3 个方程式 利用diff 的4 种语法格式计算微分的示例。 S1 = 6*x3-4*x2+b*x-5; %符号表达式(见第5章) S2 = sin(a); S3 = (1 - t3)/(1 + t4); diff(S1) %对预设独立变量x的一次微分值 ans= 18*x2-8*x+b diff(S1,2) %对预设独立变量x的二次微分值 ans= 36*x-8 diff(S1,b) %对独立变量b的一次微分值,ans= x diff(S2) %对预设独立变量a的一次微分值 ans= cos(a) diff(S3) %对预设独立变量t的一次微分值 ans= -3*t2/(1+t4)-4*(1-t3)/(1+t4)2*t3,【例 3.13】 利用矩形法计算积分 (该积分的精确值为2)。 x=linspace(0,pi,100); %在0,之间取100个离散点 y=sin(x); T=cumsum(y)*pi/(100-1); % pi/(100-1)表示两个离散点之间的距离 I=T(100) %函数在0,之间的矩形积分 I= 1.9998,3.3.2 牛顿-科茨系列数值积分公式,1. 矩形法数值积分,函数cumsum,cumsum(x)*h,其中h 为子区间步长, cumsum(x)对应 。,【例 3.14】 利用梯形法计算积分 。 x=linspace(0,pi,100); y=sin(x); t=trapz(x,y) t = 1.9998,z=trapz(x,y) 表示通过梯形积分法计算 y 对 x 的数值积分。,函数trapz,2. 梯形法数值积分,【例 3.15】 用辛普森积分公式求 的积分。 解:方法1 quad(1./(x.3-2*x-5),0,2) ans = -0.4605 方法2 F=1./(x.3-2*x-5); quad(F,0,2) ans= -0.4605,3. 辛普森数值积分,q=quad(f,a,b),【例 3.16】 用科茨积分公式求 的积分。 quadl(1./(x.3-2*x-5),0,2) ans = -0.4605,4. 科茨数值积分,函数quadl,q = quadl(fun,a,b),3.4 线性方程组的数值解,1. 矩阵相除法,对线性方程组 AX=B X=AB,2. 消去法,方程的个数和未知数个数不相等,用消去法。将增广矩阵(由A B构成)化为简化阶梯形,若系数矩阵的秩不等于增广矩阵的秩,则方程组无解;若两者的秩相等,则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论