收藏 分享(赏)

MATLAB数值计算.ppt

上传人:gnk289057 文档编号:7973091 上传时间:2019-06-01 格式:PPT 页数:18 大小:192KB
下载 相关 举报
MATLAB数值计算.ppt_第1页
第1页 / 共18页
MATLAB数值计算.ppt_第2页
第2页 / 共18页
MATLAB数值计算.ppt_第3页
第3页 / 共18页
MATLAB数值计算.ppt_第4页
第4页 / 共18页
MATLAB数值计算.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、MATLAB数值计算,矩阵和向量及其数值运算 多项式的运算 求函数的极值和零点, ,矩阵和向量及其运算,矩阵与向量的输入,MATLAB的基本数据单元是无需指定维数的矩阵,数量可看成11矩阵,n维行向量或列向量看做1n或n1矩阵.,clear;A=1,2,3;4,5,6;7,8,9,A=1 2 34 5 67 8 9,A=1 2 3 4 5 6 7 8 9,A=1 2 34 5 67 8 9,clear;B=0 1 2,B=0 1 2,输入矩阵元素时,同行元素间用空格或逗号分隔,不同行间用分号或回车分隔.,n=length(A):取出矩阵A的行数和列数的最大值. m,n=size(A):取出矩阵

2、A的行数m和列数n.,向量的快捷生成,利用冒号”:”生成等差数列,a=i:j初值:终值 如果ij,则生成空向量. a=i:k:j初值:步长:终值 如果i0,或者ij且kj,且k0,则生成空向量.,例1.利用冒号生成等差数列.,X1:5 %初值:终值 X1 2 3 4 5,Y0:2:10 %初值:步长:终值 Y0 2 4 6 8 10,利用linspace函数生成向量,a=linspace(i,j). 生成有100个元素的行向量,在i,j,之间等分分布. a=linspace(i,j,n). 生成有n个元素的行向量,在i,j,之间等分分布.,利用logspace函数生成向量,a=logspace

3、(i,j). 生成有50个元素的对数等分行向量,第一个元素是10i,最后一个元素是10j. a=logspace(i,j,n). 生成有n个元素的对数等分行向量,第一个元素是10i,最后一个元素是10j. a=logspace(i,pi). 生成有50个元素的对数等分行向量,第一个元素是10i,最后一个元素是pi.,例2.利用linspace和logspace生成向量示例.,x1=linspace(1.2,5.8,4) x1= 1.2000 2.7333 4.2667 5.8000 x2=logspace(1.0,2.9,5) x2= 10.0000 29.8538 89.1251 266.0

4、725 794.3282,矩阵的快捷生成,用函数建立矩阵,用于建立矩阵的函数,常见的有:,det(A):行列式计算 AT:转置.若是复阵,则为共轭转置 inv(A):矩阵的逆 orth(A):正交化 poly(A):特征多项式 rank(A):矩阵的秩,trace(A):矩阵的迹 zeros(m,n):m行n列零矩阵 ones(m,n):m行n列元素全为1的矩阵 eye(n):n阶单位矩阵 d=eig(A),v,d=eig(A):特征值与特征向量 rand(m,n):m行n列均匀分布随机数矩阵 randn(m,n):m行n列正态分布随机数矩阵,例3.设,试生成矩阵A-1,AT,与A同阶的单位矩

5、阵.,解 所用MATLAB命令及运行结果为,A=2 1 1;3 1 2;1 -1 0; inv(A) ans=1.0000 -0.5000 0.50001.0000 -0.5000 -0.5000-2.0000 1.5000 -0.5000,A ans =2 3 11 1 -11 2 0,eye(length(A) ans =2 3 11 1 -11 2 0,矩阵的调用,假如A是一个已知10*10的方阵,那么: A(:,3)是A的第3列元素构成的列向量; A(5,:)是A的第5行元素构成的行向量; A(1:5,3)是A的前5行的第3列元素构成的列向量; A(1:5,7:10)是A的前5行,第7

6、到第10列元素构成的子矩阵; A(1 3 5 ,2 4 6)是A的第1、3、5行,第2、4、6列元素构成的子矩阵; A(:,7:-1:3)是A的第7、6、5、4、3列元素构成的子矩阵. A(:,2 4)=用于把A的第2、4列删除,形成A的一个子矩阵.,矩阵运算,矩阵的四则运算,矩阵相加减. 同型矩阵相加减等于对应矩阵的元素相加减,用符号“+”和“-”表示.,矩阵相乘. 矩阵相乘用符号*表示,两个矩阵相乘以及数量和矩阵相乘遵循通常的数学规则.,矩阵相除. 分右除和左除两种,分别用符号“/”和“”表示.例如,如果A和B都是n阶矩阵,且A非奇异,则AB=A-1B,B/A=BA-1.,矩阵的乘方,方阵

7、A的乘方用符号“”表示. 当p是正整数时, Ap是A的p次幂,即:Ap=Ap; 当p为0时,A0是单位阵; 当p为负数时,只有当A非奇异才有意义,例如: A(-1)=A-1,A(-2)=A-2.,例4.设,试求A+B,A*B,B*A,A2,AB-1.,解 所用MATLAB命令及运行结果为,A=-2 4;1 -2; B=2 4;-1 -6; A+B ans =0 80 -8,A*B ans =-8 -324 16,B*A ans =0 0-4 8,A2 ans =8 -16-4 8,D=A/B ans =-2 -21 1,多项式的运算,多项式的表示方法及其运算,MATLAB中,无论是一个多项式,

8、还是它的根,都是向量,MATLAB规定,多项式是行向量,根是列向量.例如,多项式p(x)=x3-3x+5可以表示成p=1 0 -3 5.给定一个多项式的根,也可以构造相应的多项式.在MATLAB中,函数poly(r)执行这个任务.,求多项式p=1 0 -3 5在x=5时的值p(5),可以用函数polyval(p,5).其中第一个参数是多项式的系数向量,第二个是自变量的取值(可以是矩阵).,函数polyvalm(p,X)的第二个参数是方阵,求以矩阵为自变量的多项式的值.,函数roots(p)可以找一个多项式的根.,例5. 改变自变量时多项式的取值及求多项式的根.,p=1 0 -3 5 p =1

9、0 -3 5 result=polyval(p,5) %自变量为数 result=115,A=9 1;6 8;2 7; c=polyval(p,A) %自变量为矩阵 c=707 3203 4937 327,A=9 1;6 8; c=polyvalm(p,A) %自变量为方阵 c=863 2201320 643,p=1 0 -3 5; r=roots(p) r=-2.27901.1395+0.9463i1.1395-0.9463i,常见的多项式函数,函数conv支持多项式乘法,例6.求a(x)=x3+2x2+3x+4和b(x)=x3+4x2+9x+16的乘积.,a=1 2 3 4;b=1 4 9

10、 16 c=conv(a,b) c=1 6 20 50 75 84 64,多项式的加法,d=a+b d= 2 6 12 20,结果是d(x)=2x3+6x2+12x+20,e=c+0 0 0 d e=1 6 20 52 81 96 84,低阶多项式用首零填补,使其与高阶多项式有相同的阶数,多项式的求导函数polyder,由函数deconv完成,格式为g,r=deconv(c,b)表示c除以b,给出商多项式g和余数r,若r=0,则cbg.,g,r=deconv(c,b) g =1 2 3 4 r =0 0 0 0 0 0 0,例7.用例6中的多项式b和c,求它们的商.,一个多项式除以另一个多项式

11、,例8.对于一个新的多项式g求导,g=1 6 20 48 69 72 44,g =1 6 20 48 69 72 44 h=polyder(g) h =6 30 80 144 138 72,求函数的极值和零点,求解一元函数的取小值,可以通过函数fminbnd来求一元函数y=f(x)在指定区间a,b上的函数局部极小值,该函数返回函数在极小值点时自变量x的值,调用格式为:x=fminbnd(fun,a,b).,例9.求humps函数在开区间(0.3,1)内的最小值.humps是MATLAB内置的M文件函数,实际上是y=1/(x-0.3)2+ 0.01)+1/(x-0.9)2+0.04)-6.,x=

12、fminbnd(humps,0.3,1) x =0.6370,f=inline(sin(x)+3); %用内联函数表达 x=fminbnd(f,2,5) x =4.7124,求解多元函数的取小值,函数fminsearch用于求多元函数在向量x0附近的最小值.它指定一个开始的向量(x0),并非指定一个区间.此函数返回一个向量,为此多元函数局部最小函数值对应的自变量的取值,调用格式为 x=fminsearch(fun,x0),例10.把一个3个自变量的函数创建在一个M文件里.,%three.m function b=three(v) x=v(1); y=v(2); z=v(3); b=x*x+2.

13、5*sin(y)-z*z*x*y*y;,求这个函数在1,-1,0点附近的最小值可以得到:,v=1 -1 0; fminsearch(three,v) ans =-0.0000 -1.5708 0.0008,也可以简单输入如下:,f=x(1)2+2.5*sin(x(2)-x(3)2*x(1)*x(2)2 x=fminsearch(f,1 -1 0),f=eval(f) x =-0.0000 -1.5708 0.0008 %函数的最小值点 f =-2.5000 %函数的最小值,求函数的零点,在MATLAB中使用fzero可以找到函数零点,调用格式为 x=fzero(fun,x0),寻找零点可以指定一个开始的位置,或者指定一个区间.,例11.仍然考虑humps函数,把1,2作为函数的参数,命令及结果为,fzero(humps,1 2) ans =1.2995,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报