在 MATLAB 中消除方程式中的变量
Eliminate variables from equations in MATLAB
我想使用 MATLAB 从方程中消去变量。例如,让我们考虑以下等式:
p = (m + n)
q = (m - n)
r = (m^3 - n^3)
现在,r
可以通过完全消除 m
和 n
来表示为 p
和 q
,如下所示:r = (3*p^2*q + q^3)/4
.
这可以在 Mathematica 中使用以下方法实现:
Eliminate[{p == (m + n), q == (m - n), r == (m^3 - n^3)}, {m, n}]
如果可能的话,我怎样才能在 MATLAB 中得到相同的结果。就为了这个要在不同的应用之间切换,很不方便。
求解两个方程并找到 p
和 q
的值。然后 subs
函数将通过将 m
& n
替换为 p
& q
来给出解决方案。 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
% 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)
我想使用 MATLAB 从方程中消去变量。例如,让我们考虑以下等式:
p = (m + n)
q = (m - n)
r = (m^3 - n^3)
现在,r
可以通过完全消除 m
和 n
来表示为 p
和 q
,如下所示:r = (3*p^2*q + q^3)/4
.
这可以在 Mathematica 中使用以下方法实现:
Eliminate[{p == (m + n), q == (m - n), r == (m^3 - n^3)}, {m, n}]
如果可能的话,我怎样才能在 MATLAB 中得到相同的结果。就为了这个要在不同的应用之间切换,很不方便。
求解两个方程并找到 p
和 q
的值。然后 subs
函数将通过将 m
& n
替换为 p
& q
来给出解决方案。 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
% 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)