从MATLAB中的方程中消除变量

时间:2018-07-13 12:24:25

标签: matlab wolfram-mathematica equations

我想使用MATLAB从方程式中消除变量。例如,让我们考虑以下方程式:

p = (m + n)
q = (m - n)
r = (m^3 - n^3)

现在,通过像这样r完全消除pq,可以用mn来表示r = (3*p^2*q + q^3)/4

这可以在Mathematica中使用以下方法实现:

Eliminate[{p == (m + n), q == (m - n), r == (m^3 - n^3)}, {m, n}]

如果有可能,如何在MATLAB中获得相同的结果。为此,在不同的应用程序之间切换非常不方便。

2 个答案:

答案 0 :(得分:2)

% Declare symbolic variables
syms m n p q

% Solve m,n 
s1=solve(m+n-p==0,m-n-q==0,m,n);

% Substitute variables with obtained solution
r = (m^3 - n^3);
r2=subs(subs(r,m,s.m),n,s.n);

% simplify answer
r3=simplify(r2)

答案 1 :(得分:1)

求解两个方程式,并找到pq的值。然后subs函数将用mn代替pq来给出解决方案。 More information available here

eqn1 = r == (m^3 - n^3);
eqn2 = p == (m + n);
eqn3 = q == (m - n);

eqn4 = isolate(eqn2,m);  
eqn5 = isolate(eqn3,m);
eqn6 = rhs(eqn2) == rhs(eqn3);
eqn6 = isolate(eqn4,n);   %solving for n
eqn7 = subs(eqn4,lhs(eqn6),rhs(eqn6)); %solving for m

eqn1 = subs(eqn1,lhs(eqn6),rhs(eqn6));  %substituting n
eqn1 = subs(eqn1,lhs(eqn7),rhs(eqn7));  %subtituting m