MATLAB教学课件第6讲数值计算1章节

上传人:E**** 文档编号:91242447 上传时间:2019-06-26 格式:PPT 页数:34 大小:161.50KB
返回 下载 相关 举报
MATLAB教学课件第6讲数值计算1章节_第1页
第1页 / 共34页
MATLAB教学课件第6讲数值计算1章节_第2页
第2页 / 共34页
MATLAB教学课件第6讲数值计算1章节_第3页
第3页 / 共34页
MATLAB教学课件第6讲数值计算1章节_第4页
第4页 / 共34页
MATLAB教学课件第6讲数值计算1章节_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《MATLAB教学课件第6讲数值计算1章节》由会员分享,可在线阅读,更多相关《MATLAB教学课件第6讲数值计算1章节(34页珍藏版)》请在金锄头文库上搜索。

1、第6讲 MATLAB的数值计算, matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位,数值运算的功能,多项式运算 线性方程组 数值统计 线性插值 数值微积分,matlab语言把多项式表达成一个行向量, 该向量中的元素是按多项式降幂排列的。 f(x)=anxn+an-1xn-1+loa0 可用行向量 p=an an-1 a1 +a0表示 poly 产生特征多项式系数向量 特征多项式一定是n+1维的 特征多项式第一个元素一定是1,一、 多项式运算,例:a=1 2 3;4 5 6;7 8 0; p=poly(a) p =1.00 -6.00 -72.00 -27.00 p是多项式

2、p(x)=x3-6x2-72x-27的matlab描述方法,我们可用: p1=poly2str(p,x) 函数文件,显示 数学多项式的形式 p1 =x3 - 6 x2 - 72 x - 27,2.roots 求多项式的根,a=1 2 3;4 5 6;7 8 0;p=poly(a) p = 1.00 -6.00 -72.00 -27.00 r=roots(p) r = 12.12 -5.73 显然 r是矩阵a的特征值 -0.39,当然我们可用poly令其返回多项式形式 p2=poly(r) p2 = 1.00 -6.00 -72.00 -27.00 matlab规定多项式系数向量用行向量表示,一

3、组根用列向量表示。,3.conv,convs多项式乘运算,例:a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=1 2 3;b=4 5 6; c=conv(a,b) c = 4.00 13.00 28.00 27.00 18.00 p=poly2str(c,x) p = 4 x4 + 13 x3 + 28 x2 + 27 x + 18,4.deconv多项式除运算,a=1 2 3; c = 4.00 13.00 28.00 27.00 18.00 d=deconv(c,a) d =4.00 5.00 6.00,5.多项式微分,matl

4、ab提供了polyder函数多项式的微分。 命令格式: polyder(p): 求p的微分 polyder(a,b): 求多项式a,b乘积的微分 p,q=polyder(a,b): 求多项式a,b商的微分 例:a=1 2 3 4 5; poly2str(a,x) ans = x4 + 2 x3 + 3 x2 + 4 x + 5 b=polyder(a) b = 4 6 6 4 poly2str(b,x) ans =4 x3 + 6 x2 + 6 x + 4,二、代数方程组求解,matlab中有两种除运算左除和右除。 对于方程ax+b,a 为anm矩阵,有三种情 况: 当n=m时,此方程成为“恰

5、定”方程 当nm时,此方程成为“超定”方程 当nm时,此方程成为“欠定”方程 matlab定义的除运算可以很方便地解上 述三种方程,1.恰定方程组的解,方程ax+b(a为非奇异) x=a-1 b 矩阵逆 两种解: x=inv(a)b 采用求逆运算解方程 x=ab 采用左除运算解方程,方程ax=b a=1 2;2 3;b=8;13; x=inv(a)*b x=ab x = x = 2.00 2.00 3.00 3.00,=,a x = b,例: x1+2x2=8 2x1+3x2=13,2.超定方程组的解,方程 ax=b ,mn时此时不存在唯一解。 方程解 (a a)x=a b x=(a a)-1

6、 a b 求逆法 x=ab matlab用最小二乘法找一 个准确地基本解。,例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3 a=1 2;2 3;3 4;b=1;2;3; 解1 x=ab 解2 x=inv(aa) a b x = x = 1.00 1.00 0 0.00,=,a x = b,3.欠定方程组的解,当方程数少于未知量个数时,即不定 情况,有无穷多个解存在。 matlab可求出两个解: 用除法求的解x是具有最多零元素的解 是具有最小长度或范数的解,这个解是基于伪逆pinv求得的。,x1+2x2+3x3=1 2x1+3x2+4x3=2 a=1 2 3;2 3 4;b=1;

7、2; x=ab x=pinv(a)b x = x = 1.00 0.83 0 0.33 0 -0.17,a x = b,inv 矩阵求逆 det 行列式的值 eig 矩阵的特征值 diag 对角矩阵 矩阵转置 sqrt 矩阵开方,三、矩阵运算,四、数据分析与插值函数,max 各列最大值 mean 各列平均值 sum 各列求和 std 各列标准差 var 各列方差 sort 各列递增排序,y=max(X):返回向量X的最大值存入y。 y,I=max(X):返回向量X的最大值存入y,最大值的序号存入I 如果X中包含复数元素,则按模取最大值 求向量X的最小值的函数是min(X) 用法和max(X)完

8、全相同。 x=-43,72,9,16,23,47; y=max(x) y = 72 y,l=max(x) y = 72 l = 2,求矩阵的最大值和最小值 求矩阵A的最大值的函数有3种调用格式,分别是: max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。 Y,U=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。 max(A,dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值,五、拟合与插值,在MATLAB中用polyfit函数来求得最小二

9、乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出的点上的函数近似值。 polyfit函数的调用格式为 P, S=polyfit(X, Y, m) 函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。其中X, Y是两个等长的向量,P是一个长度为m + 1的向量,P的元素为多项式系数,例 用一个5次多项式在区间0, 2内逼近函数,MATLAB程序如下: clc clear close all x=linspace(0, 2*pi, 50); y=sin(x); P S=polyfit(x, y, 5) f=polyval(P,x); plot(x,y,

10、r-.o,x,f,-*) 程序运行结果如下: P= -0.0056 0.0874 -0.3946 0.2685 0.8797 0.0102,绘出sinx和多项式P(x)在给定区间的函数曲线,如图所示。,2.插值 插值的定义是对某些集合给定的数据点之间函数的估值方法。 当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。 Matlab提供了一维、二维、 三次样条等许多插值选择,1. 一维数据插值,在MATLAB中,实现这些插值的函数是interp1,其调用格式为: Y1=interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量

11、,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。method是插值方法,允许的取值有linear、nearest、cubic、spline。 注意:X1的取值范围不能超出X的给定范围,否则,会给出“NaN”错误。,2. 二维数据插值,在MATLAB中,提供了解决二维插值问题的函数interp2,其调用格式为: Z1=interp2(X,Y,Z,X1,Y1,method) 其中X,Y是两个向量,分别描述两个参数的采样点,Z是与参数采样点对应的函数值,X1,Y1是两个向量或标量,描述欲插值的点。Z1是根据相应的插值方法得到的插值结果。 method的

12、取值与一维插值函数相同。X,Y,Z也可以是矩阵形式。 X1,Y1的取值范围不能超出X,Y的给定范围,否则,会给出“NaN”错误。,六、数值微积分,DX=diff(X),计算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1, 2, , n-1。 DX=diff(X, n),计算X的n阶向前差分,例如diff(X, 2)=diff(diff(X)。 DX=diff(A, n, dim),计算矩阵A的n阶差分,dim=1时(默认状态),按列计算差分;dim=2时,按行计算差分。,例 设x由0, 2间均匀分布的10个点组成,求sinx的13阶差分。,MATLAB程序如下: X=linspa

13、ce(0, 2*pi, 10) Y=sin(X) DY=diff(Y) %计算Y的一阶差分 D2Y=diff(Y, 2) %计算Y的二阶差分,也可用命令diff(DY)计算 D3Y=diff(Y, 3) %计算Y的三阶差分,也可用diff(D2Y)或diff(DY, 2),程序运行结果,X= 0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851 6.2832 Y= 0 0.6428 0.9848 0.8660 0.3420 -0.3420 -0.8660 -0.9848 -0.6428 -0.0000 DY= 0.6428 0.34

14、20 -0.1188 -0.5240 -0.6840 -0.5240 -0.1188 0.3420 0.6428 D2Y= -0.3008 -0.4608 -0.4052 -0.1600 0.1600 0.4052 0.4608 0.3008 D3Y= -0.1600 0.0556 0.2452 0.3201 0.2452 0.0556 -0.1600,数值积分,(1)被积函数是一个解析式 quad(filename, a, b, tol, trace) quadl(filename, a, b, tol, trace) 其中filename是被积函数名。a和b分别是定积分的下限和上限。tol

15、用来控制积分精度,默认时为10-6。trace控制是否展现积分过程,若取非0则展现积分过程,若取0则不展现,默认时取trace=0。,例:求,1、在MATLAB命令窗口输入 F=inline(1./(x.3-2*x-5); Q=quad(F, 0, 2) 或 Q=quadl(F, 0, 2) Q= -0.4605 2、或者采用函数句柄 Q=quad(myfun, 0, 2) 也可以返回 Q= -0.4605,这里myfun.m为一个M文件: function y=myfun(x) y=1./(x.3-2*x-5);,(2)被积函数由一个表格定义 MATLAB中,对由表格形式定义的函数关系的求定积分问题用trapz(X,Y)函数。其中向量X、Y定义函数关系Y=f(X)。 例 用trapz函数计算积分 X=0:0.01:1; Y=exp(-

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号