姓名:学号:
专业:班级:
学院:完成日期:2024年11月17日。
利用matlab求解线性方程组。
在高等数学及线性代数中涉及许多的数值问题,未知数的求解,微积分,不定积分,线性方程组的求解等对其手工求解都是比较复杂,而matlab语言正是处理线性方程组的求解的很好工具。
一、基本概念。
1、 n级行列式a:a等于所有取自不同性不同列的n个元素的积的代数和。
2、 矩阵b:矩阵的概念是很直观的,可以说是一张表。
3、 线性无关:一向量组(a1,a2,…,an)不线性相关,既没有不全为零的数k1,k2,……kn使得:k1*a1+k2*a2+……kn*an=0
4、 秩:向量组的极**性无关组所含向量的个数成为这个向量组的秩。
5、 矩阵b的秩:行秩,指矩阵的行向量组的秩;列秩类似。记:r(b)
6、 一般线性方程组是指形式:
二、基本理论。
三种基本变换:1,用一非零的数乘某一方程;2,把一个方程的倍数加到另一方程;3,互换两个方程的位置。以上称出等变换。
消元法。首先用初等变换化线性方程组为阶梯形方程组:1,如果剩下的方程当中最后的一个等式等于一非零数,那么方程组无解;否则有解;2,如果阶梯形方程组中方程的个数r等于未知量的个数,那么方程组有唯一的解;3,如果阶梯形方程组中方程的个数r小于未知量的个数,那么方程组就有无穷个解。
定理1:线性方程组有解的充要条件为:r(a)=r(a,b)
线性方程组解的结构:
1:对齐次线性方程组,a:两个解的和还是方程组的解;b:
一个解的倍数还是方程组的解。定义:齐次线性方程组的一组解u1,u2,…ui称为齐次线性方程组的一个基础解系,如果:
齐次线性方程组的任一解都表成u1,u2,…ui的线性组合,且u1,u2,…ui线性无关。
2:对非齐次线性方程组。
(1)方程组的两个解的差是(2)的解。
(2)方程组的一个解与(2)的一个解之和还是(1)的解。
定理2 如果r0是方程组(1)的一个特解,那么方程组(1)的任一个解r都可以表成;r=r0+v….
其中v是(2)的一个解,因此,对方称(1)的任一特解r0,当v取遍它的全部解时,(3)就给出了(1)全部解。
三:基本思路。
线性方程的求解分为两类:一类是方程求唯一解或求特解;一类是方程组
求无穷解即通解。
1)判断方程组解的情况。1:当r(a)=r(b)时,有解(r(a)=r(a,b))>n
唯一解,r(a)=r(a,b)(n,有无穷解);2:当r(b)+1=r(a,b)时无解。
2)求特解;
3)求通解(无穷解),线性方程组的无穷解=对应齐次方程组的通解+非齐
次方程组的一个特解;
注:以上针对非齐次线性方程组,对齐次线性方程组,主要使用到(1),(2)步!
四、基本方法。
基本思路将在解题的过程中得到体现。
1、 (求线性方程组的唯一解或特解),这类问题的求法分为两类:一类主要用于解低阶稠密矩阵——直接法;一类是解大型稀疏矩阵——迭代法。
2、 利用矩阵除法求线性方程组的特解(或一个解)
方程:ax=b,解法:x=a\b,(注意此处’\’不是’/’
(1)求方程组
命令如下:a=[2,-1,-1,1;1,1,-2,1;4,-6,2,-2;3,6,-9,7];%产生4x4阶系数矩阵。
b=[2,4,4,9对矩阵进行转置。
x=a\b进行左初运算。
x =nan
infinf
曾介绍过利用矩阵求逆来解线性方程组,即其结果于使用左除是相同的。
2、利用矩阵的分解求线性方程组。
矩阵分解是指根据一定的原理用某种运算将一个矩阵分解成若干个矩阵的乘积。常见矩阵分解如,lu,qr和cholesky分解求方程组的解,这三种分解,再求大型方程组是很有用。其优点是运算速度快,可以节省磁盘空间,节省内存。
1)lu分解又称gauss 消去分解,可把任意方阵分解为下三角矩阵的基本变
换形式(行变换)和上三角矩阵的乘积。即a=lu,l为下三角阵,u为上三角
阵。则:a*x=b 变成l*u*x=b
所以x=u\(l\b) 这样可以大大提高运算速度。
命令 [l,u]=lu(a)
在matlab中可以编如下通用m文件;
在matlab建立m文件如下。
a;b;l,u]=lu(a); 产生一个三角矩阵a和一个变换形式的下三叫矩阵l(交换行),使之满足a=lu
x=u\(l\bl右乘b的结果再右乘u得到x的值。
2)求方程组
命令如下:a=[1,1,-1,-1;2,-5,3,2;7,-7,3,1]; 产生3x4阶系数矩阵
b=[1,3,6对矩阵进行转置。
l,u]=lu(a产生一个三角矩阵a和一个变换形式的
下三叫矩阵l(交换行),使之满足a=lu
x=u\(l\bl右乘b的结果再右乘u得到x的值。x =
rank = 2, tol = 6.7642e-015.
采用第二种格式分解,在matlab建立m文件如下。
a;b;l,u,p]=lu(a);
x=u\(l\p*b)
3)求方程组
命令如下:a=[1,1,-1,-1;2,-5,3,2;7,-7,3,1];%产生3x4阶矩阵。
b=[1,3,7对矩阵进行转置。
l,u,p]=lu(a产生一个三角矩阵a和一个下三角阵l以
及一个置换矩阵p,使之满足pa=lu
x=u\(l\p*bx的值。x =
rank = 2, tol = 6.7642e-015.
ii)cholesky分解。
若a为对成正定矩阵,则cholesky分解可将矩阵a分解成上三角矩阵和其转置的乘积,即:a=r’*r 其中r为上三角矩阵。
方程 a*x=b 变成 r’*r*x=b 所以 x=r\(r’\b)
在matlab中建立m文件如下。
a;b;r’,r]=chol(a产生一个上三角矩阵r,使r’r=a
x=r\(r’\bx的值。
4)求方程组。
命令如下:a=[1,-1,-1,1;1,-1,1,-3;1,-1,-2,3]; 产生3x4阶的矩阵。
b=[0,1,-0.5对矩阵进行转置。
r'r]=chol(a产生一个上三角矩阵r,使r'r=a
x=r\(r'\bx的值。
?? error using ==chol
matrix must be square.
命令执行时,此格式将不出现错误信息。当a为对称正定时,则p=0;
否则p为一个正整数。如果x未满秩矩阵,则r为一个阶数为q=p-1的上三角
阵,且满足r’r=a(1:q,1:q)。
3)qr分解。
对于任何长方矩阵a,都可以进行qr分解,其中q为正交矩阵,r为上三角
矩阵的初等变换形式,即:a=qr
方程 a*x=b 变形成 qrx=b
所以 x=r\(q\b)
上例中 [q,r]=qr(a) %产生一个正交矩阵q和一个上三角矩阵r,使之a=qr
x=r\(q\b) %x的值。
在matlab中建立m文件如下。
a;b;q,r]=qr(a);
x=r\(q\b)
5)求方程组
命令如下:a=[4,2,-1;3,-1,2;11,3,0]; 产生3x3阶的矩阵
b=[2,10,8对矩阵进行转置。
q,r]=qr(a产生一个正交矩阵q和一个上三角矩阵
r,使之满足a=qr
x=r\(q\bx的值。
x =1.0e+015 *
rcond = 4.594136e-017.
除了用直接方法求解线性方程组的解之外,还可以用迭代法求解。迭代法适合求解大型系数矩阵的方程组。它主要包括jacobi迭代法,gauss-serdel迭代法,超松驰迭代法和两步迭代法。
在此只讨论jacobi与gauss-serdel迭代法。
1’ gauseidel迭代法。
用迭代法求解下列线性方程组,迭代初值为0,迭代精度为10e-6。
函数文件:function[y,n]=gauseidel(a,b,x0,eps)
if nargin==3
matlab作业
2011029170002王柳。a 一个问题的病态性如何,与求解它的算法有关系。错 b 无论问题是否病态,好的算法都会得到它好的近似解。错 c 计算中使用更高的精度,可以改善问题的病态性。错 d 用一个稳定的算法计算一个良态问题,一定会得到它好的近似解。对 e 浮点数在整个数轴上是均匀分布。错 f ...
matlab作业
matlab语言 第3次作业 字符串,单元数组和结构体 专业 海洋技术 海洋测绘方向 姓名 张体强学号 1026222 1 如何将一个char 数据类型的向量转化为相应的double 型数据类型的数据向量。从式1 到8,判断这些语句是否正确。如果它们正确,那么将产生什么结果?这题不要在电脑中做。1....
matlab作业
电子与通信工程学院。通信系统 实验报告。2013 2014 学年第1学期。调频 fm 系统调制解调 专业 通信工程。班级 通信111 班。学号 姓名 指导教师姓名陈多瑜。2013年 11 月日。1.频率调制或调频 fm 1 设调制信号为m t 调频信号的数学表达式为。例如 m t 的时域波形为。m ...