用matlab求恰定方程组的解,R语言中求解线性方程组的方法

原标题:R语言中求解线性方程组的方法

线性方程组及解概述

线性方程组一般使用下面的形式表示:

68a0a1c072deb45b191c3d53262b5d84.png

线性方程组

写成矩阵的形式为:

Am×n Xn×1 = bm×1

对于该方程组:

有解的充分必要条件是R(A) = R(A, b)

有唯一解的充分必要条件是R(A) = R(A, b) = n;

有无限多解的充分必要条件是 R(A) = R(A, b) < n;

无解的充分必要条件是 R(A) < R(A, b)

注:R(A)表示矩阵A的秩。

满秩恰定线性方程组的求解

对于R(A) = R(A, b) = n,且(m=n)的线性方程组,可以使用矩阵知识直接来求解,也可以使用solve函数来求解。

如求下面方程组的解:

dbef0a2ab48d63df208f94615f44800e.png

在R中编写程序及运行结果如下图所示:

2358fb283ed8cadb688ff5e75a973001.png

求解恰定方程组的解

如使用solve函数的话,可以使用下面的程序:

> A

> b

> solve(A,b)

其运行结果如下图所示:

c43f210eb5f22f3db0ca9f027c7dcea7.png

使用solve函数求解满秩方程组

可以看出两种方式的结果是相同的。

超定方程组的求解

对于超定方程组(m>n的情况,即方程个数多于变量个数的情况),可以使用矩阵知识来求解,如求下面方程组的解:

0d94079f3bf5cfb6e8e164cebdea23d6.png

在R中编写的代码及运行结果如下图所示:

95d75a9b296f1aec354e2fa59adc9976.png

超定方程组求解

如上图所示可知,该方程组的解是x1=1,x2=0(第2个结果由于精度问题,可以近似为0)。

欠定方程组求解

欠定方程组指方程的个数少于变量的个数即(m

可以编写如下R程序:

A

b

sol.svd

#获取U D V各个值

U

C

Y

在R中运行的结果如下图所示:

76b6ed9e810dcc9bed0f4ada13de5ece.png

欠定方程组求解

这里求得的方程组的一个解是:x1=0.83; x2= 0.33; x3=-0.17

其实,该方程组应该有无穷多解,这里使用最小二乘法求出其中的一个解。

实际上,对于非满秩的方程组都可以使用这种方法来求解,感兴趣的读者可以自己试验一下。

总结

本文只介绍了求解的方法,但并没有判断一个方程组是否有解,以及有解的话是唯一解还是无穷多解。本号将在今后给出一个尽可能完善的求解线性方程组的函数。敬请关注。返回搜狐,查看更多

责任编辑:

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值