首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Ryacas软件包求解方程组

用Ryacas软件包求解方程组
EN

Stack Overflow用户
提问于 2022-03-06 03:50:40
回答 1查看 100关注 0票数 0

如何使用R软件包Ryacas求解下列方程组?我尝试过oldSolvesolve,但是语法不正确。

代码语言:javascript
复制
library(Ryacas)
library(Ryacas0)

x1 <- ysym("x1")
x2 <- ysym("x2")

> q12
[1] 1.631145
> q13
[1] 2.179819
> q21
[1] 1.088441
> q23
[1] 2.720127
> q31
[1] 2.93306
> q32
[1] 2.288752
> q11 
[1] -3.810965
> q22
[1] -3.808569
> q33
[1] -5.221812
代码语言:javascript
复制
>   eq <- c(x1* (q11) + x2* q21 + (1-x1-x2) * q31, 
+            x1* (q12) + x2* q22 + (1-x1-x2) * q32,
+            x1* (q13) + x2* q23 + (1-x1-x2) * q33)    
>   solve(eq, c(0,0,0), c('x1','x2'))
Error in yac_core(x) : 
  Yacas returned this error: CommandLine(1) : Invalid argument

如果我用

代码语言:javascript
复制
js <- yacas("OldSolve({ 
                  x1*-3.8109 + x2*1.088 + (1-x1-x2)*2.933 == 0,
                  x1*1.6311 + x2*-3.8086 + (1-x1-x2)*2.720 == 0,
                  x1*2.1798 + x2*2.720 + (1-x1-x2)*-5.2218 == 0}, {x1,x2})")
> js
Yacas matrix:
     [,1]                               [,2]                        
[1,] x1 == (-1.845 * x2 + 2.933)/6.7439 x2 == 15.1496643/42.01920504

如何得到x2 = 0.3605414,x1 = 0.3362744?

EN

回答 1

Stack Overflow用户

发布于 2022-03-06 11:21:03

只有OldSolve才能求解方程组。注意,我舍入了你的系数。第三个方程的结果离零有点远。但是,由于前两个方程是由2个未知变量组成的方程组,这两个方程的解应该是唯一的。

代码语言:javascript
复制
> yac("OldSolve({(-3.811)*x1+1.09*x2+2.93*(1-x1-x2)==0,1.63*x1-3.81*x2+2.29*(1-x1-x2)==0,2.18*x1+2.72*x2-5.22*(1-x1-x2)==0},{x1,x2})")
[1] "{{x1==((-1.84)*x2+2.93)/6.741,x2==13.50309/0.399057e2}}"
> x2=13.50309/0.399057e2
> x1=((-1.84)*x2+2.93)/6.741
> (-3.811)*x1+1.09*x2+2.93*(1-x1-x2)
[1] 0
> 1.63*x1-3.81*x2+2.29*(1-x1-x2)
[1] 2.220446e-16
> 2.18*x1+2.72*x2-5.22*(1-x1-x2)
[1] -0.000342292

举个例子

代码语言:javascript
复制
> yac("OldSolve({x-y==0, x==1, x+y==3}, {x, y})")
[1] "{{x==y,y==1}}"

第三个等式不满意,您也处于类似的情况。

请注意,您还可以使用Where替换您的系数:

代码语言:javascript
复制
> yac_str("OldSolve({x1*q11 + x2*q21 + (1-x1-x2)*q31==0, x1*q12 + x2*q22 + (1-x1-x2)*q32==0, x1*q13 + x2*q23 + (1-x1-x2)*q33==0} Where q11==-3.811 And q21==1.09 And q31==2.93 And q12==1.63 And q22==-3.81 And q32==2.29 And q13==2.18 And q23==2.72 And q33==-5.22, {x1, x2})") 
[1] "{{x1==((-1.84)*x2+2.93)/6.741,x2==13.50309/0.399057e2}}"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71367561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档