文档详情

6数值计算.ppt

发布:2017-06-09约字共53页下载文档
文本预览下载声明
第六章 MATLAB的数值计算 —— matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位 一、代数方程组求解 matlab中有两种除运算——左除和右除。 对于方程ax=b,a 为am×n矩阵,有三种情 况: ? 当n=m时,此方程成为“恰定”方程 ? 当nm时,此方程成为“超定”方程 ? 当nm时,此方程成为“欠定”方程 matlab定义的除运算可以很方便地解上 述三种方程 1.恰定方程组的解 方程ax=b(a为非奇异) x=a-1 b 矩阵逆 两种解: x=inv(a)?b — 采用求逆运算解方程 x=a\b — 采用左除运算解方程 方程ax=b a=[1 2;2 3];b=[8;13]; ?x=inv(a)*b ? x=a\b x = x = 2.00 2.00 3.00 3.00 2.超定方程组的解 方程 ax=b ,mn时此时不存在唯一解。 方程解 (a a)x=a b x=(a a)-1 a b —— 求逆法 x=a\b —— matlab用最小二乘法找一 个准确地基本解。 例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3 a=[1 2;2 3;3 4];b=[1;2;3]; 解1 x=a\b 解2 x=inv(a?a) ? a ? b x = x = 1.00 1.00 0 0.00 3.欠定方程组的解 当方程数少于未知量个数时,即不定 情况,有无穷多个解存在。 matlab可求出两个解: 一个是用除法求的解,是具有最多零元素的解 一个是具有最小长度或范数的解,这个解是基于伪逆pinv求得的。 x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=a\b x=pinv(a)?b x = x = 1.00 0.83 0 0.33 0 -0.17 鉴于MATLAB无零下标,故把多项式的一般形式表达为: 1. 多项式求根 命令格式:x=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=[1 8 0 0 -10] A = 1 8 0 0 -10 x=roots(A) 2. 多项式的建立 若已知多项式的全部根,则可以用POLY函数建立起该多项式;也可以用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.9736i -0.5075 - 0.9736i 1.0344]; z=poly(x) z = 1.0000 8.0000 0.0000 0.0000 -9.9996 3. 求多项式的值 POLYVAL函数用来求代数多
显示全部
相似文档