日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

r语言安装ipsolve_R语言矩阵操作之矩阵运算

發布時間:2025/3/11 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 r语言安装ipsolve_R语言矩阵操作之矩阵运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.轉置運算

對于矩陣A,函數t(A)表示矩陣A的轉置,如:

> A=matrix(1:6,nrow=2);

> A;

[,1] [,2] [,3]

[1,]??? 1??? 3??? 5

[2,]??? 2??? 4??? 6

> t(A);

[,1] [,2]

[1,]??? 1??? 2

[2,]??? 3??? 4

[3,]??? 5??? 6

2.求方陣的行列式

函數det()是求矩陣行列式的值,如

> det(matrix(1:4,ncol=2));

[1] -2

3.向量的內積

對于n維向量x,可以看成nxl階矩陣或lxn階矩陣。若x與y是相同

維數的向量,則x%*%Y表示x與y作內積.例如,

>x=1:5; Y=2*1:5

>x%*%y

[,1]

[1,]110

函數crossprod()是內積運算函數(表示交叉乘積),crossprod(x,y)計算向量x與y的內積,即t(x) %*% y'。crossprod(x)表示x與x的內積.

類似地,tcrossprod(x,y)表示’x%*%t(Y)’,即x與y的外積,也稱為叉積。tcrossprod(x)表示x與x作外積.如:

> x=1:5; y=2*1:5;

> crossprod(x);

[,1]

[1,]?? 55

> crossprod(x,y);

[,1]

[1,]? 110

> tcrossprod(x);

[,1] [,2] [,3] [,4] [,5]

[1,]??? 1??? 2??? 3??? 4??? 5

[2,]??? 2??? 4??? 6??? 8?? 10

[3,]??? 3??? 6??? 9?? 12?? 15

[4,]??? 4??? 8?? 12?? 16?? 20

[5,]??? 5?? 10?? 15?? 20?? 25

> tcrossprod(x,y);

[,1] [,2] [,3] [,4] [,5]

[1,]??? 2??? 4??? 6??? 8?? 10

[2,]??? 4??? 8?? 12?? 16?? 20

[3,]??? 6?? 12?? 18?? 24?? 30

[4,]??? 8?? 16?? 24?? 32?? 40

[5,]?? 10?? 20?? 30?? 40?? 50

4.向量的外積(叉積)

設x和y是n維向量,則x%o%y表示x與y作外積.例如

> x%o%y;

[,1] [,2] [,3] [,4] [,5]

[1,]??? 2??? 4??? 6??? 8?? 10

[2,]??? 4??? 8?? 12?? 16?? 20

[3,]??? 6?? 12?? 18?? 24?? 30

[4,]??? 8?? 16?? 24?? 32?? 40

[5,]?? 10?? 20?? 30?? 40?? 50

outer()是更為強大的外積運算函數,outer(x,y)計算向量二與y的外積,它等價于x %o%y

函數。outer()的一般調用格式為

outer(x,y,fun=”*”)

其中x, y矩陣(或向量),fun是作外積運算函數,缺省值為乘法運算。函數outer()在繪制三維曲面時非常有用,它可生成一個x和y的網格。

5.矩陣的乘法

設A和B為兩個矩陣,通常意義下的矩陣乘法是通過A%*%B來完成,crossprod(A,B)表示的是

t(A)%*%B,而tcrossprod(A,B)表示的是A%*%t(B)。最后我們通過運算知道x%*%A%*%x為二次型。

例子:

> A=array(1:9,dim=(c(3,3)))

> B=array(9:1,dim=(c(3,3)))

> A%*%B;

[,1] [,2] [,3]

[1,]?? 90?? 54?? 18

[2,]? 114?? 69?? 24

[3,]? 138?? 84?? 30

> crossprod(A,B)==t(A)%*%B;

[,1] [,2] [,3]

[1,] TRUE TRUE TRUE

[2,] TRUE TRUE TRUE

[3,] TRUE TRUE TRUE

> tcrossprod(A,B)==A%*%t(B);

[,1] [,2] [,3]

[1,] TRUE TRUE TRUE

[2,] TRUE TRUE TRUE

[3,] TRUE TRUE TRUE

6.生成對角陣和矩陣取對角運算

函數diag()依賴于它的變量,當v是一個向量時,diag(v)表示以v的元素為對角線元素的對角陣.當M是一個矩陣時,則diag(M)表示的是取M對角線上的元素的向量.如

> v=c(1,4,5);

> diag(v);

[,1] [,2] [,3]

[1,]??? 1??? 0??? 0

[2,]??? 0??? 4??? 0

[3,]??? 0??? 0??? 5

> M=array(1:9,dim=c(3,3));

> diag(M);

[1] 1 5 9

7.解線性方程組和求矩陣的逆矩陣

若求解線性方程組Ax=b,其命令形式為solve(A,b),求矩陣A的逆,其命令形式為solve(A).設矩陣A=t(array(c(1:8,10),dim=c(3,3))),b

> A=t(array(c(1:8,10),dim=c(3,3)));

> b=c(1,1,1);

> x=solve(A,b);

> x;

[1] -1.000000e+00? 1.000000e+00? 3.806634e-16

> solve(A);

[,1]????? [,2] [,3]

[1,] -0.6666667 -1.333333??? 1

[2,] -0.6666667? 3.666667?? -2

[3,]? 1.0000000 -2.000000??? 1

8.求矩陣的特征值與特征向量

函數eigen(Sm)是求對稱矩陣Sm的特征值與特征向量,其命令形式為:ev=eigen(Sm),則ev存放著對稱矩陣Sm特征值和特征向量,是由列表形式給出的,其中ev$values是Sm的特征值構成的向量,ev$vectors是Sm的特征向量構成的矩陣.如

> Sm=crossprod(A,A);

> ev=eigen(Sm);

> ev;

$values

[1] 303.19533618?? 0.76590739?? 0.03875643

$vectors

[,1]???????? [,2]?????? [,3]

[1,] -0.4646675? 0.833286355? 0.2995295

[2,] -0.5537546 -0.009499485 -0.8326258

[3,] -0.6909703 -0.552759994? 0.4658502

總結

以上是生活随笔為你收集整理的r语言安装ipsolve_R语言矩阵操作之矩阵运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。