simplifying an algebraic expression in two variables

9 Ansichten (letzte 30 Tage)
Danny Van Elsen
Danny Van Elsen am 9 Feb. 2020
Beantwortet: Tanmay Das am 6 Aug. 2021
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.

Akzeptierte Antwort

Tanmay Das
Tanmay Das am 6 Aug. 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.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by