MATLAB数值计算讲课_第1页
MATLAB数值计算讲课_第2页
MATLAB数值计算讲课_第3页
MATLAB数值计算讲课_第4页
MATLAB数值计算讲课_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB数值计算矩阵和向量及其数值运算多项式的运算求函数的极值和零点

矩阵和向量及其运算矩阵与向量的输入MATLAB的基本数据单元是无需指定维数的矩阵,数量可看成1×1矩阵,n维行向量或列向量看做1×n或n×1矩阵.>>clear;A=[1,2,3;4,5,6;7,8,9]A=123456789>>A=[123456789]A=123456789>>clear;B=[012]B=012输入矩阵元素时,同行元素间用空格或逗号分隔,不同行间用分号或回车分隔.n=length(A):取出矩阵A的行数和列数的最大值.[m,n]=size(A):取出矩阵A的行数m和列数n.向量的快捷生成利用冒号”:”生成等差数列①a=i:j初值:终值如果i<j,则生成向量a=[i,i+1,…,j];如果i>j,则生成空向量.②a=i:k:j初值:步长:终值如果i<j且k>0,或者i>j且k<0,则生成步长为k的向量a=[i,i+1,…,j];如果i<j且k<0,或者i>j,且k>0,则生成空向量.例1.利用冒号生成等差数列.>>X=1:5

%初值:终值X=

1

2

3

4

5>>Y=0:2:10

%初值:步长:终值Y=

0

2

4

6

8

10利用linspace函数生成向量①a=linspace(i,j).生成有100个元素的行向量,在i,j,之间等分分布.②a=linspace(i,j,n).生成有n个元素的行向量,在i,j,之间等分分布.利用logspace函数生成向量①a=logspace(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.20002.73334.26675.8000>>x2=logspace(1.0,2.9,5)x2=10.000029.853889.1251266.0725794.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同阶的单位矩阵.解所用MATLAB命令及运行结果为>>A=[211;312;1-10];>>inv(A)ans=1.0000-0.50000.50001.0000-0.5000-0.5000-2.00001.5000-0.5000>>A′ans=23111-1120>>eye(length(A))ans=100010001矩阵的调用假如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到第10列元素构成的子矩阵;A([135],[246])是A的第1、3、5行,第2、4、6列元素构成的子矩阵;A(:,7:-1:3)是A的第7、6、5、4、3列元素构成的子矩阵.A(:,[24])=[]用于把A的第2、4列删除,形成A的一个子矩阵.矩阵运算矩阵的四则运算①矩阵相加减.同型矩阵相加减等于对应矩阵的元素相加减,用符号“+”和“-”表示.②矩阵相乘.矩阵相乘用符号*表示,两个矩阵相乘以及数量和矩阵相乘遵循通常的数学规则.③矩阵相除.分右除和左除两种,分别用符号“/”和“\”表示.例如,如果A和B都是n阶矩阵,且A非奇异,则A\B=A-1B,B/A=BA-1.矩阵的乘方方阵A的乘方用符号“^”表示.当p是正整数时,Ap是A的p次幂,即:A^p=Ap;当p为0时,A^0是单位阵;当p为负数时,只有当A非奇异才有意义,例如:A^(-1)=A-1,A^(-2)=A-2.例4.设试求A+B,A*B,B*A,A2,AB-1.解所用MATLAB命令及运行结果为>>A=[-24;1-2];>>B=[24;-1-6];>>A+Bans=080-8>>A*Bans=-8-32416>>B*Aans=00-48>>A^2ans=8-16-48>>D=A/Bans=-2-211多项式的运算多项式的表示方法及其运算MATLAB中,无论是一个多项式,还是它的根,都是向量,MATLAB规定,多项式是行向量,根是列向量.例如,多项式p(x)=x3-3x+5可以表示成p=[10-35].给定一个多项式的根,也可以构造相应的多项式.在MATLAB中,函数poly(r)执行这个任务.求多项式p=[10-35]在x=5时的值p(5),可以用函数polyval(p,5).其中第一个参数是多项式的系数向量,第二个是自变量的取值(可以是矩阵).函数polyvalm(p,X)的第二个参数是方阵,求以矩阵为自变量的多项式的值.函数roots(p)可以找一个多项式的根.例5.改变自变量时多项式的取值及求多项式的根.>>p=[10-35]p=10-35>>result=polyval(p,5)%自变量为数result=115>>A=[91;68;27];>>c=polyval(p,A)%自变量为矩阵c=70732034937327>>A=[91;68];>>c=polyvalm(p,A)%自变量为方阵c=8632201320643>>p=[10-35];>>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=[1234];b=[14916]>>c=conv(a,b)c=162050758464多项式的加法>>d=a+bd=261220结果是d(x)=2x3+6x2+12x+20>>e=c+[000d]e=162052819684低阶多项式用首零填补,使其与高阶多项式有相同的阶数多项式的求导函数polyder由函数deconv完成,格式为[g,r]=deconv(c,b)表示c除以b,给出商多项式g和余数r,若r=0,则c=bg.

>>[g,r]=deconv(c,b)g=1234r=0000000例7.用例6中的多项式b和c,求它们的商.一个多项式除以另一个多项式例8.对于一个新的多项式g求导>>g=[162048697244]g=162048697244>>h=polyder(g)h=6308014413872求函数的极值和零点求解一元函数的取小值可以通过函数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=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.mfunctionb=three(v)x=v(1);y=v(2);z=v(3);b=x*x+2.5*sin(y)-z*z*x*y*y;求这个函数在[1,-1,0]点附近的最小值可以得到:>>v=[1-10];>>fminsearch(′three′,v)ans=-0.0000-1.57080.0008也可以简单输入如下:f=′x(1)^2+2.5*sin(x(2))-x(3)^2*x(1)*x(2)^2′>>x=fminsearch(f,[1-10]),f=eval(f)x=-0.0000

温馨提示

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

评论

0/150

提交评论