2015-03-19 52 views
0

非线性方程我有方程组求解中的R

x + y - xy = c1 
x + z - xz = c2 
ay + bz = c3 

(A,B,C1,C2和C3是已知的) 我想知道如果这组方程的具有闭合形式解。或者是在R中精确解决它的最佳方法?

回答

2

如果你懒得做代数:

在最一般的情况下Wolfram Alpha says(假设没有这些分母为零):

x=(a*c1+b*c2-c3)/(a+b-c3) 
y=(b*c1-b*c2-c1*c3+c3)/(-a*c1+a-b*c2+b) 
z=(a*(c1-c2)+(c2-1)*c3)/(a*(c1-1)+b*(c2-1)) 
+0

我在写完问题之后意识到它是可解决的并且封闭了解决方案。不管怎么说,还是要谢谢你。 – vinash85 2015-03-19 00:24:16

3

我建议rSymPy,将R令人敬畏的python库的符号数学端口。

library(rSymPy) 
sympy("var('x,y,a,b,z,c1,c2,c3')") # declare vars 
sympy("solve([Eq(x+y-x*y,c1),Eq(x+z-x*z,c2),Eq(a*y-b*z,c3)],[x,y,z])", 
     retclass="Sym")