资源描述:
《matlab 6数值计算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第六章MATLAB的数值计算——matlab具有出色的数值计算能力,占据世界上数值计算软件的主导地位一、代数方程组求解matlab中有两种除运算——左除和右除。对于方程ax=b,a为am×n矩阵,有三种情况:当n=m时,此方程成为“恰定”方程当nm时,此方程成为“欠定”方程matlab定义的除运算可以很方便地解上述三种方程1.恰定方程组的解方程ax=b(a为非奇异)x=a-1b矩阵逆两种解:x=inv(a)b—采用求逆运算解方程x=ab—采用左除运算解方程方程ax=ba
2、=[12;23];b=[8;13];x=inv(a)*bx=abx=x=2.002.003.003.00=ax=b例:x1+2x2=82x1+3x2=132.超定方程组的解方程ax=b,m>n时此时不存在唯一解。方程解(a'a)x=a'bx=(a'a)-1a'b——求逆法x=ab——matlab用最小二乘法找一个准确地基本解。例:x1+2x2=12x1+3x2=23x1+4x2=3a=[12;23;34];b=[1;2;3];解1x=ab解2x=inv(a'a)a'bx=x=1.001.0000.0
3、0=ax=b3.欠定方程组的解当方程数少于未知量个数时,即不定情况,有无穷多个解存在。matlab可求出两个解:一个是用除法求的解,是具有最多零元素的解一个是具有最小长度或范数的解,这个解是基于伪逆pinv求得的。x1+2x2+3x3=12x1+3x2+4x3=2a=[123;234];b=[1;2];x=abx=pinv(a)bx=x=1.000.8300.330-0.17=ax=b借助matlab提供的函数,处理多项式是一件非常简单的事情,很容易对多项式进行积分、微分以及求根的操作。一元多项式在代数中占有非
4、常重要的地位。在实际应用中如对实验数据的插值、微商和曲线拟合等,都要大量用到多项式;在矩阵分析时,也要用到一元多项式的概念。多项式函数是形式最简单的函数,也是最容易计算的函数,从理论上讲,它可以表示绝大多数复杂函数。在许多计算机的计算和编程中,很多函数值如sin(x),cos(x)等的计算都是先将函数进行Tailor展开为多项式进行逼近计算的,并且都能达到很高的精度。二、多项式运算及其求根鉴于MATLAB无零下标,故把多项式的一般形式表达为:在MATLAB中可以用长度n+1的行向量表示为:1.多项式求根命令格式:x
5、=roots(A)。这里A为多项式的系数A(1),A(2),…,A(N),A(N+1);解得的根赋值给数组X,即X(1),X(2),…,X(N)。【例6】试用ROOTS函数求多项式x4+8x3-10的根这是一个4次多项式,它的五个系数依次为:1,8,0,0,-10。下面先产生多项式系数的向量A,然后求根:A=[1800-10]A=1800-10x=roots(A)x=-8.0194-0.5075+0.9736i-0.5075-0.9736i1.03442.多项式的建立若已知多项式的全部根,则可以用POLY函数建立起
6、该多项式;也可以用POLY函数求矩阵的特征多项式。POLY函数是一个MATLAB程序,调用它的命令格式是:A=poly(x)若x为具有N个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋值给向量A。在此种情况下,POLY与ROOTS互为逆函数;若x为N×N的矩阵x,则poly(x)返回一个向量赋值给A,该向量的元素为矩阵x的特征多项式之系数:A(1),A(2),…,A(N),A(N+1)。【例7】试用POLY函数对例7.8所求得的根,建立相应的多项式。x=[-8.0194-0.5075+0.
7、9736i-0.5075-0.9736i1.0344];z=poly(x)z=1.00008.00000.00000.0000-9.99963.求多项式的值POLYVAL函数用来求代数多项式的值,调用的命令格式为:Y=polyval(A,x)本命令将POLYVAL函数返回的多项式的值赋值给Y。若x为一数值,则Y也为一数值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。【例8】以4次多项式、分别取x=1.2和下面的矩阵的2×3个元素为自变量计算该多项式的值。A=[1800-10];%例7.8的4次多项式
8、系数x=1.2;%取自变量为一数值y1=polyval(A,x)y1=-5.8976x=[-11.2-1.4;2-1.81.6]%给出一个矩阵xy1=polyval(A,x)y1=-17.00005.8976-28.110470.0000-46.158429.32164.多项式的四则运算(1)多项式加、减对于次数相同的若干个多项式,可直接对多项式系数向量进行