Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中欠定/超定系统的求解_R_Linear Algebra - Fatal编程技术网

R中欠定/超定系统的求解

R中欠定/超定系统的求解,r,linear-algebra,R,Linear Algebra,与手动高斯-乔丹/高斯消去法相比,使用R求解方程组的一般过程是什么 我必须首先确定系统是否已确定/未确定/未确定 如果确定了一个系统,我只使用 solve(t(a)%*%a)%*%t(a)%*%b 要在$Ax=b中获得$x$$ 如果决定过度或决定不足,我不太确定该怎么办。我认为上面的答案有时取决于排名,但解决方案并不总是唯一的。我怎样才能得到所有的解决方案?我想如果没有解决方案,R会给出一个错误吗 背景:我计划向我的随机微积分教授推荐,我们在即将到来的考试中使用R,而不是单调乏味的计算器/手工

与手动高斯-乔丹/高斯消去法相比,使用R求解方程组的一般过程是什么

我必须首先确定系统是否已确定/未确定/未确定

如果确定了一个系统,我只使用

solve(t(a)%*%a)%*%t(a)%*%b
要在$Ax=b中获得$x$$

如果决定过度或决定不足,我不太确定该怎么办。我认为上面的答案有时取决于排名,但解决方案并不总是唯一的。我怎样才能得到所有的解决方案?我想如果没有解决方案,R会给出一个错误吗

背景:我计划向我的随机微积分教授推荐,我们在即将到来的考试中使用R,而不是单调乏味的计算器/手工计算,因此我感觉只有简单的函数才能完成,例如,求解超/欠定系统,而不是

编辑:我尝试使用solvea,b,但我认为这仍然不能提供所有的解决方案

这是一个未确定的示例,R无法给出答案,因为a不是正方形:

a=matrix(c(1,1,1,3,2,1),byrow=T,nrow=2)
a
b=matrix(c(1,2),byrow=T,nrow=2)
b
solve(a,b)

我在维基百科关于线性系统的文章“矩阵解决方案”一节中给出的链接展示了如何得到你想要的。 像这样定义矩阵A和向量b

A <- matrix(c(1,1,1,3,2,1),byrow=T,nrow=2)
A
b <- matrix(c(1,2),byrow=T,nrow=2)
b
那么解决办法就是

xb + N * q
其中q是任意标量

与pracma合作:


使用与上述解决方案相同的表达式。

尝试qr.solveA,b。这应该适用于欠定和超定系统。

请添加一个标记。@jotik Done。谢谢^ ^如果您表明您应该使用solvea,b而不是您正在做的事情。@BHA抱歉。我忘了提那件事了。我想我试过了,但它没有给我所有的解决方案。我想它只是给了我无穷多个解决方案中的一个,使最小二乘误差或其他什么最小化。@BCLC更新。对于R,您可以查看包limSolve,它提供了一个函数Solve注:大写字母S用于求解非线性方程组。尝试一下……太复杂了。无论如何谢谢你:谢谢希拉。需要包裹吗?这是手册。我相信你需要qr软件包。
w <- runif(3)
z <- xb + Aw %*% w
A %*% z - b
library(MASS)
N <- Null(t(A))
xb + N * q
N <- null(A)  # or nullspace(A)