MATLAB的数值计算MATLAB的数值计算——matlab具有出色的数值计算能力,占据世界上数值计算软件的主导地位数值运算的功 能创建矩阵矩阵运算多项式运算线性方程组数值统计线性插值函数优化微分方程的数值解一、命令行的基本操作创建矩阵的方 法直接输入法规则:?矩阵元素必须用[]括住?矩阵元素必须用逗号或空格分隔 ?在[]内矩阵的行与行之间必须用分号分隔 矩阵元素矩阵元素可以是 任何matlab表达式,可以是实数,也可以是复数,复数可用特殊变量i,j输入a=[123;456]x= [2pi/2;sqrt(3)3+5i]
符号的作用逗号和分号的作用?逗号和分号可作为指令间的分隔符,m atlab允许多条语句在同一行出现。?分号如果出现在指令后,屏幕上将不显示结果。冒号的作用?用于生 成等间隔的向量,默认间隔为1。?用于选出矩阵指定行、列及元素。?循环语句2.用matlab函数创建矩阵空阵[ ]—matlab允许输入空阵,当一项操作无结果时,返回空阵。rand——随机矩阵eye——单位矩阵ze ros——全部元素都为0的矩阵ones——全部元素都为1的矩阵还有稀疏矩阵、魔方矩阵、对角矩阵、范德蒙 等矩阵的创建,就不一一介绍了。注意:matlab严格区分大小写字母,因此a与A是两个不同的变量。matla b函数名必须小写。3.矩阵的修改?直接修改可用?键找到所要修改的矩阵,用?键移动到要修改的矩阵元素上即可修 改。?指令修改可以用A(?,?)=?来修改。例如a=[120;305;789]a=1 20305789a(3,3)=0a=1 20305780二、数据的保存与获取把matl ab工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件。?save——将工作空间中所有的变量存到matla b.mat文件中。?savedata——将工作空间中所有的变量存到data.mat文件中。?savedataab—— 将工作空间中a和b变量存到data.mat文件中。下次运行matlab时即可用load指令调用已生成的mat文件。?lo ad——?loaddata——?loaddataab——mat文件是标准的二进制文件,还可以AS CII码形式保存。三、矩阵运算矩阵加、减(+,-)运算规则:?相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。 ?允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。2.矩阵乘(?)运算规则:A矩阵的列数必须等于 B矩阵的行数标量可与任何矩阵相乘。a=[123;456;780];b=[1;2;3];c=abc=14 3223d=[-1;0;2];f=pidf=-3.141606.2 832矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种矩阵除运算3.矩阵乘方——a^n,a ^p,p^aa^p——a自乘p次幂a=[1,2,3;4,5,6; 7,8,9];a^2ans=30364266819 61021261504.矩阵的其它运算inv——矩阵求逆det——行列式的值 eig——矩阵的特征值diag——对角矩阵’——矩阵转置sqrt——矩阵开方5.矩阵的一些特殊操 作矩阵的变维a=[1:12];b=reshape(a,3,4)矩阵的变向rot90:旋转;fliplr:左右 翻;flipud:上下翻矩阵的抽取diag:抽取主对角线;tril:抽取下三角; triu:抽取上三角5.矩阵的数组运算数组运算指元素对元素的算术运算, 与通常意义上的由符号表示的线性代数矩阵运算不同数组加减(.+,.-)a.+ba.-b2.数组乘 除(??,./,.\)a??b——a,b两数组必须有相同的行和列两数组相应元素相乘。a =[123;456;789];b=[246;135;7910];a.bans=2 81841530 497290a=[123;456;78 9];b=[246;135;7910];abans=2537 46558510985 133172a./b=b.\aa.\b=b./aa./b=b.\a—都是a的元 素被b的对应元素除a.\b=b./a—都是a的元素被b的对应元 素除例:a=[123];b=[456];c1=a.\b;c2=b./ac1=4.00 002.50002.0000c2=4.00002.50002.00003.数组乘方(.^ )—元素对元素的幂例:a=[123];b=[456];z=a.^2z=1.00 4.009.00z=a.^bz=1.0032.00 729.00四、多项式运算matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的 。f(x)=anxn+an-1xn-1+……+loa0可用行向量p=[anan-1……a1+a0]表示 poly——产生特征多项式系数向量特征多项式一定是n+1维的特征多项式第一个元素一定是1例:a=[123;456 ;780];p=poly(a)p=1.00-6.00-72.00-27.00p是多 项式p(x)=x3-6x2-72x-27的matlab描述方法,我们可用:p1=poly2str(p,‘x’)—函数文件,显 示数学多项式的形式p1=x^3-6x^2-72x-272.roots——求多项式的根a=[123 ;456;780];p=poly(a)p=1.00-6.00-72.00-27.00r =roots(p)r=12.12-5.73——显然r是矩阵a的特征值-0.39当然 我们可用poly令其返回多项式形式p2=poly(r)p2=1.00-6.00-72.00 -27.00matlab规定多项式系数向量用行向量表示,一组根用列向量表示。3.conv,convs多项式乘运算例:a(x) =x2+2x+3;b(x)=4x2+5x+6;c=(x2+2x+3)(4x2+5x+6)a=[123];b=[45 6];c=conv(a,b)=conv([123],[456])c=4.0013.0028.002 7.0018.00p=poly2str(c,''x'')p=4x^4+13x^3+28x^2+27x +184.deconv多项式除运算a=[123];c=[4.0013.0028.0027.00 18.00]d=deconv(c,a)d=4.005.006.005.多项式微分 matlab提供了polyder函数多项式的微分。命令格式:polyder(p):求p的微分polyder(a,b): 求多项式a,b乘积的微分[p,q]=polyder(a,b):求多项式a,b商的微分例:a=[12345];pol y2str(a,''x'')ans=x^4+2x^3+3x^2+4x+5b=polyder(a)b= 4664poly2str(b,''x'')ans=4x^3+6x^2+6x+4 五、代数方程组求解matlab中有两种除运算左除和右除。对于方程ax=b,a为an×m矩阵,有三种情况:?当n=m时 ,此方程成为“恰定”方程?当n>m时,此方程成为“超定”方程?当n义的除运算可以很方便地解上述三种方程1.恰定方程组的解方程ax=b(a为非奇异)x=a-1b 矩阵逆两种解:x=inv(a)?b—采用求逆运算解方程x=a\b—采用左除运算 解方程方程ax=ba=[12;23];b=[8;13];?x=inv(a)b ?x=a\bx=x=2.0 02.003.00 3.002.超定方程组的解方程ax=b,m=a''bx=(a''a)-1a''b——求逆法x=a\b——matlab用 最小二乘法找一个准确地基本解。例:x1+2x2=1 2x1+3x2=23x1+4x2=3a=[12;23;34];b =[1;2;3];解1x=a\b解2x=inv(a''?a)?a''?bx= x=1.001.00 00.003.欠定方程组的解当方程数少于未知量个数时,即不定情况,有 无穷多个解存在。matlab可求出两个解:用除法求的解x是具有最多零元素的解是具有最小长度或范数的解,这个解是基于伪逆pin v求得的。x1+2x2+3x3=12x1+3x2+4x3=2a=[123;234];b=[1;2] ;x=a\bx=pinv(a)?bx= x=1.000.83 00.330 -0.17六、数据分析与插值函数七、拟合与插值1.多项式拟合x0=0:0.1:1;y0=[-. 4471.9783.115.255.024.664.014.583.455.359.22];p=polyfi t(x0,y0,3)p=56.6915-87.117440.0070-0.9043xx=0:0.01:1; yy=polyval(p,xx);plot(xx,yy,''-b'',x0,y0,''or'')2.插值插值的定义——是对某些集合给 定的数据点之间函数的估值方法。当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。Matlab提供了一维、二维、 三次样条等许多插值选择table1——table2——intep1——interp2——spline—— 利用已知点确定未知点[d,r]=deconv(c,a)余数c除a后的整数 =ax=b例:x1+2x2=8 2x1+3x2=13=ax=b=ax=bmax——各列最大值mean——各列平均值sum——各列求和std——各列标准差var——各列方差sort——各列递增排序注意:只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖。当一个指令或矩阵太长时,可用???续行默认文件名即可恢复保存过的所有变量方阵>1的整数对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量a^p使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,a^p则无意义。对应元素相加减(与矩阵加减等效)——给出a,b对应元素间的商. |
|