数学建模算法与程序(司守奎)34附录二 Matlab在线性代数中的应用.docVIP

  • 53
  • 0
  • 约4.3千字
  • 约 7页
  • 2017-12-07 发布于浙江
  • 举报

数学建模算法与程序(司守奎)34附录二 Matlab在线性代数中的应用.doc

附录二 Matlab在线性代数中的应用 §1 向量组的线性相关性 求列向量组A的一个最大线性无关组可用命令rref(A)将A化成行最简形,其中单位向量对应的列向量即为最大线性无关组所含向量,其它列向量的坐标即为其对应向量用最大线性无关组线性表示的系数。 例1 求下列矩阵列向量组的一个最大无关组。 解 编写M文件ex1.m如下: format rat a=[1,-2,-1,0,2;-2,4,2,6,-6;2,-1,0,2,3;3,3,3,3,4]; b=rref(a) 求得 b = 1 0 1/3 0 16/3 0 1 2/3 0 -1/9 0 0 0 1 -1/3 0 0 0 0 0 记矩阵的五个列向量依次为、、、、,则、、是列向量组的一个最大无关组。且有 ,. 例2 设,, 验证是的一个基,并把用这个基线性表示。 解 编写M文件ex2.m如下: format rat a=[2,2,-1;2,-1,2;-1,2,2];b=[1,4;0,3;-4,2]; c=rref([a,b]) 求得 c= 1 0 0 2/3 4/3 0 1 0 -2/3 1 0 0 1 -1 2/3 说明是的一个基,且有,。 §2 齐次线性方程组 在Matlab中,函数null用来求解零空间,即满足的解空间,实际上是求出解空间的一组基(基础解系)。 格式: z=null(A) %z的列向量为方程组的正交规范基,满足。 z=null(A,’r’) %z的列向量是方程的有理基。 例3 求方程组的通解 解 编写程序如下: format rat a=[1,2,2,1;2,1,-2,-2;1,-1,-4,-3] b=null(a,r) %求有理基 syms k1 k2 x=k1*b(:,1)+k2*b(:,2) %写出方程组的通解 求得基础解系为 , 通解为,。 §3 非齐次线性方程组 Matlab中解非齐次线性方程组可以使用“\”。虽然表面上只是一个简简单单的符号,而它的内部却包含许许多多的自适应算法,如对超定方程用最小二乘法,对欠定方程它将给出范数最小的一个解,解三对角阵方程组时用追赶法等。 另外求解欠定方程组可以使用求矩阵A的行最简形命令rref(A),求出所有的基础解系。 例4 求超定方程组 解 编写程序如下: a=[2,4;3,-5;1,2;2,1]; b=[11;3;6;7]; solution=a\b 求得最小二乘解为。 上面解超定方程组的“\”可以用伪逆命令pinv代替,且pinv的使用范围比“\”更加广泛,pinv也给出最小二乘解或最小范数解。 例5 用最小二乘解法解方程组 解 编写程序如下: format rat a=[1,1,0;1,0,1;1,1,1;1,2,-1]; b=[1;2;0;-1]; x1=a\b %这里\和pinv是等价的 x2=pinv(a)*b 求得最小二乘解为 ,,。 例6 求解方程组 解 编写程序如下: format rat a=[1,-1,-1,1,0;1,-1,1,-3,1;1,-1,-2,3,-1/2]; b=rref(a) 求得: b= 1 -1 0 -1 1/2 0 0 1 -2 1/2 0 0 0 0 0 故方程组有解,并有 因而方程组的通解为 求解非齐次线性方程组需要先判断方程组是否有解,若有解,再去求通解。因此,步骤为: 第一步:判断是否有解,若有解则进行第二步; 第二步:求的一个特解; 第三步:求的通解; 第四步:写出的通解。 例7 求解下列方程组 解 编写程序如下: clc,clear format rat a=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6]; b=[8;9;-5;0]; R_a=rank(a),R_B=rank([a,b]) n=size(a,2) if R_a==R_B R_a==n fprintf(方程组有唯一解\n) x=a\b elseif R_a==R_B R_an fprintf(方程组有无穷多解\n) x=a\b %求非齐次方程组的特解 xt=null(a,r) %求齐次方程的基础解系 else fprintf(方程组无解\n方程组的最小二乘解为\n) x=a\b end 求得唯一解为。 求方程组的解 解 编写程序如下: clc,clear format

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档