simplifying an algebraic expression in two variables

5 次查看(过去 30 天)
I know that
sqrt ((x-1)^2 + (y-2)^2) + sqrt ((x+1)^2 + (y+2)^2) = 6
8*(x^2) - 4*x*y + 5*(y^2) = 36
are equivalent, but is there a way of having matlab deduce the second statement from the first?
regards, Danny.


Tanmay Das
Tanmay Das 2021-8-6
The following code may solve your problem:
clear ;
close all;
syms x y;
eqn = sqrt ((x-1)^2 + (y-2)^2) + sqrt ((x+1)^2 + (y+2)^2) == 6;
eqn1 = simplify(eqn^2);
eqn2 = expand(eqn1);
eqn3 = simplify(eqn2);
%As of now, MATLAB is not able to simplify expressions inside squre root by
%itself, so one needs to isolate it and then square both side
eqn4 = (x^2 - 2*x + y^2 - 4*y + 5)^(1/2)*(x^2 + 2*x + y^2 + 4*y + 5)^(1/2);
%isolating the square root term from rest of the equation
eqn5 = isolate(eqn3,eqn4);
%simplifying the equation
eqn6 = simplify(expand(eqn5^2));
%One can also solve the equation by executing the following line
sol = solve(eqn6,'ReturnConditions',true);
You can refer to the documentations on expand, simplify, isolate and solve functions for further information.

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by