资源描述:
《专题一:MATLAB求解方程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB求解方程制作:陈学明基本概念稀疏矩阵(sparsematrix):矩阵中非零元素的个数远远小于矩阵元素的总数),并且非零元素的分布没有规律。与之相区别的是,如果非零元素的分布存在规律(如上三角矩阵、下三角矩阵、对称矩阵),则称该矩阵为特殊矩阵。稠密矩阵:非0元素占所有元素比例较大的矩阵。若n阶矩阵A的行列式不为零,即
2、A
3、≠0,则称A为非奇异矩阵,否则称A为奇异矩阵。把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵,记作A‘。AA‘=E(E为单位矩阵,)或A’A=E,则n阶实矩阵A称为正交矩阵。基本概念求矩阵A
4、的秩rank(A)求矩阵A的迹trace(A)求矩阵A的行列式det(A)求矩阵V的1范数norm(V,1)求矩阵V的2范数norm(V)或norm(V,2)求矩阵V的∞范数norm(V,inf)魔方矩阵魔方矩阵是每行、每列及两条对角线上的元素和都相等的矩阵。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成.magic(n):生成一个n阶魔方阵,各行各列及两条对角线和为(1+2+3+...+n2)/n范得蒙矩阵范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列
5、的点乘积。vander(V)生成以向量V为基础向量的范得蒙矩阵。例>>A=vander([1;2;3;5])A=11118421279311252551希尔伯特矩阵Hilbert矩阵的每个元素hij=1/(i+j-1)hilb(n)生成n阶希尔伯特矩阵invhilb(n)求n阶的希尔伯特矩阵的逆矩阵注意1:高阶Hilbert矩阵一般为病态矩阵,所以直接求逆可能出现错误结论,故应该采用invhilb(n)注意2:由于Hilbert矩阵本身接近奇异,所以建议处理该矩阵时建议尽量采用符号运算工具箱,若采用数值解时应该验证结果的正确性托
6、普利兹矩阵(toeplitz)toeplitz矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。toeplitz(x,y)生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x,y均为向量,两者不必等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。例>>T=toeplitz([1:5],[1:7])T=12345672123456321234543212345432123帕斯卡矩阵二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。
7、pascal(n)生成一个n阶帕斯卡矩阵。矩阵分解矩阵分解通过将复杂矩阵表示成形式简单或具有良好数学性质(统称为简单矩阵)的组合,以便于理论分析或数值计算。通常矩阵分解将复杂矩阵分解为几个简单矩阵的乘积。求解线性方程组不可避免地要用到矩阵分解的概念。MATLAB中,线性方程组的求解主要用到三种基本的矩阵分解,即对称正定矩阵的cholesky分解、一般方程的gaussian消去法和矩阵的正交分解。这三种分解由函数chol、lu和qr完成。矩阵的逆求方阵A的逆可用inv(A)说明1:对于Hilbert求逆时,不建议用inv,可用in
8、vhilb直接产生逆矩阵说明2:符号工具箱中也对符号矩阵定义了inv()函数,即使对更高阶的奇异矩阵也可以精确的求解出逆矩阵说明3:对于奇异矩阵用数值方法的inv()函数,会给出错误的结果,但符号工具箱中的inv()会给出正确的结论例A=[16,2,3,13;5,11,10,8;9,7,6,12;4,14,15,1];det(A)B=inv(A)A=[16,2,3,13;5,11,10,8;9,7,6,12;4,14,15,1];A=sym(A)inv(A)矩阵的伪逆pinv(A)若A不是一个方阵,或A是一个非满秩的方阵时,矩阵
9、A没有逆矩阵,但可以找到一个与A的转置矩阵A’同型的矩阵B,使得:A·B·A=A,B·A·B=B此时称矩阵B为矩阵A的伪逆。例求矩阵A的伪逆A=[0,0,0;0,1,0;0,0,1];pinv(A)矩阵分解矩阵分解通过将复杂矩阵表示成形式简单或具有良好数学性质(统称为简单矩阵)的组合,以便于理论分析或数值计算。通常矩阵分解将复杂矩阵分解为几个简单矩阵的乘积。求解线性方程组不可避免地要用到矩阵分解的概念。MATLAB中,线性方程组的求解主要用到三种基本的矩阵分解,即对称正定矩阵的cholesky分解、一般方程的gaussian消去
10、法和矩阵的正交分解。这三种分解由函数chol、lu和qr完成。矩阵分解之LU分解矩阵的三角分解又称LU分解,它的目的是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU。Matlab使用函数lu实现LU分解,其格式为:[L,U]=lu(A)其中