matlab5-1数值计算

上传人:san****019 文档编号:70772970 上传时间:2019-01-18 格式:PPT 页数:56 大小:409.81KB
返回 下载 相关 举报
matlab5-1数值计算_第1页
第1页 / 共56页
matlab5-1数值计算_第2页
第2页 / 共56页
matlab5-1数值计算_第3页
第3页 / 共56页
matlab5-1数值计算_第4页
第4页 / 共56页
matlab5-1数值计算_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《matlab5-1数值计算》由会员分享,可在线阅读,更多相关《matlab5-1数值计算(56页珍藏版)》请在金锄头文库上搜索。

1、MATLAB SDU,1,第五章 MATLAB的数值计算,1.多项式计算 2. 方程组求解 3. 函数及其数值分析 4.数据处理 5.数据插值 6.曲线拟合 7.傅里叶变换,MATLAB SDU,2,1.多项式 运算,多项式表达方式的约定 创建多项式的方法 多项式运算函数,MATLAB SDU,3,多项式表达方式的约定,MATLAB约定降幂多项式P(x)=a0xn+ a1xn-1 +an-1x+an用以下系数矢量(系数行向量)表示:p= a0, a1 ,an-1,an,即把多项式的各项系数依降幂次序排放在行向量的元素位置上。 注意I:假如多项式中缺某幂次项,则应认为该幂次项的系数为零。 注意I

2、I:多项式加减时低阶多项式必须首零填补使得与高阶多项式阶次相同。,MATLAB SDU,4,创建多项式的方法,系数矢量的直接输入法 在命令窗直接输入多项式的系数矢量, 由根矢量创建多项式 由给定的根矢量创建多项式,由函数poly实现。 特征多项式输入法 由矩阵的特征多项式取得,由函数poly实现。 多项式的字符标示:poly2str,MATLAB SDU,5,多项式求根,n次多项式具有n个根,当然这些根可能是实根,也可能含有若干对共轭复根。MATLAB提供的roots函数用于求多项式的全部根,其调用格式为: x=roots(P) 其中P为多项式的系数向量,求得的根赋给向量x,即x(1),x(2

3、),x(n)分别代表多项式的n个根。,MATLAB SDU,6,例: 求多项式x4+8x3-10的根。 命令如下: A=1,8,0,0,-10; x=roots(A) 若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为: P=poly(x) 若x为具有n个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋给向量P。,MATLAB SDU,7,多项式运算:乘运算,例: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)=conv(1 2 3,4

4、5 6) 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,多项式加减法:补零使阶数相等 多项式乘法运算 conv 函数conv(P1,P2)用于求多项式P1和P2的乘积。这里,P1、P2是两个多项式系数向量。,多项式乘除对应向量卷积和解卷积,MATLAB SDU,8,多项式除运算deconv,函数Q,r=deconv(P1,P2)用于对多项式P1和P2作除法运算。其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这里,Q和r仍是多项式系数向量。 deconv是

5、conv的逆函数,即有P1=conv(P2,Q)+r。 例:求多项式x4+8x3-10除以多项式2x2-x+3的结果。,MATLAB SDU,9,多项式微分,matlab提供了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

6、 x2 + 6 x + 4,MATLAB SDU,10,多项式积分,多项式积分命令函数polyint 1 polyint(p) 多项式p的积分,常数项为0 2 polyint(p,k)多项式p的积分,常数项为k,MATLAB SDU,11,有理多项式的运算函数,多项式之比的分式展开 r,p,k=residue(a,b) 从展开分式得到多项式 a,b=residue(r,p,k) 注意residue函数的可逆性,MATLAB SDU,12,多项式的求值,MATLAB提供了两种求多项式值的函数:polyval与polyvalm,它们的输入参数均为多项式系数向量P和自变量x。两者的区别在于前者是代数

7、多项式求值,而后者是矩阵多项式求值。,MATLAB SDU,13,代数多项式求值,polyval函数用来求代数多项式的值,其调用格式为: Y=polyval(P,x) 若x为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。 例 已知多项式x4+8x3-10,分别取x=1.2和一个23矩阵为自变量计算该多项式的值。 例: 画出上例x在-5到5间的曲线,MATLAB SDU,14,矩阵多项式求值【了解】,polyvalm函数用来求矩阵多项式的值,其调用格式与polyval相同,但含义不同。polyvalm函数要求x为方阵,它以方阵为自变量求多项式的值。 设

8、A为方阵,P代表多项式x3-5x2+8,那么polyvalm(P,A)的含义是: A*A*A-5*A*A+8*eye(size(A) 而polyval(P,A)的含义是: A.*A.*A-5*A.*A+8*ones(size(A) 例 仍以多项式x4+8x3-10为例,取一个22矩阵为自变量分别用polyval和polyvalm计算该多项式的值。,MATLAB SDU,15,2. 方程组求解,MATLAB SDU,16,代数方程组求解,方法1 矩阵的除运算 (教材) 左除 求逆 (了解:各种方程类型 恰定,超定,欠定) 方法2 符号方程函数求解(符号计算章节),MATLAB SDU,17,3

9、函数及其数值分析,函数定义方法 (1) m文件生成函数文件 (2) 函数句柄教材:匿名函数 handle = functionname handle = (arglist)anonymous_function (3) inline函数来定义 g = inline(expr) g = inline(expr,arg1,arg2,.) g = inline(expr,n),MATLAB SDU,18,函数曲线绘制,绘制函数曲线的专用函数fplot的调用 FPLOT(FUN,LIMS) 特点:绘图数据由函数在指定范围内自适应产生,根据函数曲线的平滑程度自动调整数据点的密度,绘制函数曲线的一般方法,计

10、算出函数在某一区间值,然后根据两组数据值绘制出函数曲线,但是如果函数在某些区间是平坦无激励的,某些区间却是失控的,传统方法无法表达函数的真正特性,MATLAB SDU,19,函数的图形绘制,绘制函数fplot fplot(function,limits,LineSpec) FUN can be specified using , an inline object, or an expression: (注意引号) 举例: subplot(2,2,1), fplot(humps,0 1) f = (x)abs(exp(-j*x*(0:9)*ones(10,1); subplot(2,2,2),

11、fplot(f,0 2*pi) subplot(2,2,3), fplot(tan(x),sin(x),cos(x),2*pi*-1 1 -1 1) subplot(2,2,4), fplot(sin(1 ./ x), 0.01 0.1),MATLAB SDU,20,函数极值,MATLAB中只存在处理极小值命令的函数fminbnd,极大值的处理等价于-f(x)的极小值 局域极值的函数调用: x = fminbnd(fun,x1,x2):一元函数的x1,x2范围内极小值时x的取值 x,fval = fminbnd(fun,x1,x2): 同时返回fval的值 例题: 0,2内x3-2x-5的极值

12、 x = fminsearch(fun,x0): 单纯形法求函数在x0点附近极值,x0为标量或者向量(多元函数) x,fval = fminsearch(fun,x0): 同时返回fval的值 X=fminunc(fun,X0,options): 拟牛顿法多元函数极值点,MATLAB SDU,21,函数零点,Matlab中用fzero来寻找单变量函数值为零的自变量的值,调用格式: x = fzero(fun,x0) x,fval=fzero(fun,x0) x0指定搜索的点 注意: fzero并不一定能找到零点 搜索方法:先猜测一个初时零点所在的区间;然后通过一些计算,使得猜测值不断精确,或者

13、使得猜测区间不断收缩,直至达到预先指定的精度,终止计算。 help fzero,MATLAB SDU,22,数据统计处理,最大值和最小值 MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。 1求向量的最大值和最小值 求一个向量X的最大值的函数有两种调用格式,分别是: (1) y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。,MATLAB SDU,23,(2) y,I=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。 求向量X的最小值的函数是min(X),用

14、法和max(X)完全相同。 例 求向量x的最大值。 x=-43,72,9,16,23,47; y=max(x) %求向量x中的最大值 y,l=max(x) %求向量x中的最大值及其该元素的位置,MATLAB SDU,24,求矩阵的最大值和最小值,求矩阵A的最大值的函数有3种调用格式,分别是: (1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。 (2) Y,U=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。,MATLAB SDU,25,(3) max(A,dim):dim取1或2。dim取1时,该函数和max(A)完全相同

15、;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。 求最小值的函数是min,其用法和max完全相同。 例 分别求34矩阵x中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。,MATLAB SDU,26,两个向量或矩阵对应元素的比较,函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为: (1) U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。 (2) U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。 min函数

16、的用法和max完全相同。 例 求两个23矩阵x, y所有同一位置上的较大元素构成的新矩阵p。,MATLAB SDU,27,求和与求积,数据序列求和与求积的函数是sum和prod,其使用方法类似。设X是一个向量,A是一个矩阵,函数的调用格式为: sum(X):返回向量X各元素的和。 prod(X):返回向量X各元素的乘积。 sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。,MATLAB SDU,28,prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。 sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。 prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,

展开阅读全文
相关资源
相关搜索

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

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