国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > R > 正文

R語言中求解線性方程組的方法

2023-04-28 12:24:14
字體:
來源:轉載
供稿:網(wǎng)友

在本站上一篇文章中探討了在R中求解一元方程的方法,本文將進一步探討R中求解線性方程組的方法。

設有n個未知數(shù)的m個方程的線性方程組:

線性方程組

可以抽象成下列的形式:

Am×n Xn×1 = bm×1

對于該方程組

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

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

無解的充分必要條件是 R(A) < R(A, b)

即:其有解的充分必要條件是R(A) = R(A, b)

當n=m時,方程為恰定方程組,則X = A-1b;

當n<m時,方程組為超定方程組,則X = (ATA)-1ATb

當n>m時,方程數(shù)少于未知量個數(shù),為欠定方程組,有無窮多個解。

1、直接使用矩陣相關知識來求解

(1)恰定方程組

如求下面的方程組:

二元一次恰定方程組

在R中的求解過程如下:

R中求解恰定方程組的過程

從圖中可以看出該方程組的解為:x1=2,x2=3。

(2)超定方程組

如求下面方程組的解:

超定方程組

編寫R程序如下:

A<-matrix(c(1,2,2,3,3,4),nr=3,nc=2,byrow=T)
b<-matrix(c(1,2,3),nr=3,nc=1)
x<-solve(t(A)%*%A)%*%(t(A)%*%b)
x

運行結果如下圖所示:

超定方程組求解

如上圖所示可知:該方程的解是x1=1,x2=0

 (3)欠定方程組求解

對于欠定方程組,即方程個數(shù)少于變量個數(shù)的方程組,可以使用SVD法求解。關于SVD的介紹,大家可以參照這個網(wǎng)址中的介紹:

https://blog.csdn.net/youngpan1101/article/details/54574130

如求解

欠定方程組

可以編寫代碼如下:

A<-matrix(c(1,2,3,2,3,4),nr=2,nc=3,byrow=T)
b<-matrix(c(1,2),nr=2,nc=1)

#對A進行SVD分解
sol.svd <- svd(A)
#獲取U D V各個值
U<-sol.svd$u
D<-sol.svd$d
V<-sol.svd$v
C<-t(U)%*%b
Y<-C/D
X<-V%*%Y
X

求得的結果如下圖所示:

欠定方程組求解

上圖求得的一個解是:x1=0.83,x2=0.33,x3=-0.17

對于R(A) = R(A, b) < n的方程組都可以使用這個方法進行求解。

再如下面的例子:

秩小于n的方程組

求解過程如下圖所示:

R語言求解欠定方程組

2、使用solve函數(shù)來求解

對于R(A) = R(A,b) = n的方程組,可以使用R中提供的solve函數(shù)直接求解。

R中使用solve函數(shù)解方程組

求解代碼如下:

A<-matrix(c(2,-1,3,4,-1,1,1,3,-13),3,3,T)
b<-matrix(c(3,3,-6),3,1)
solve(A,b)

運行結果如下:

方程組求解過程

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 怀宁县| 南部县| 临高县| 武邑县| 遵化市| 浦江县| 大邑县| 保定市| 广德县| 上杭县| 南康市| 兰溪市| 呼伦贝尔市| 舟山市| 紫金县| 唐河县| 肃北| 祁门县| 项城市| 沿河| 安平县| 丹东市| 鄂尔多斯市| 承德县| 揭东县| 宁陵县| 桂东县| 四会市| 连州市| 福州市| 浙江省| 澜沧| 蒲江县| 沛县| 大安市| 邵阳县| 蕉岭县| 闽侯县| 四平市| 本溪| 比如县|