simplifying an algebraic expression in two variables

1 vue (au cours des 30 derniers jours)
Danny Van Elsen
Danny Van Elsen le 9 Fév 2020
hello
I know that
sqrt ((x-1)^2 + (y-2)^2) + sqrt ((x+1)^2 + (y+2)^2) = 6
and
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.

Réponse acceptée

Tanmay Das
Tanmay Das le 6 Août 2021
The following code may solve your problem:
clc;
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.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by