Solve system of nonlinear equations with matlab

3 views (last 30 days)
Noa Yelin on 19 Oct 2020
Commented: Ameer Hamza on 19 Oct 2020
how can i solve these 2 nonlinear equations in matlab?
−2𝑥^2+3𝑥𝑦+4sin (y)=6
3𝑥^2−2𝑥𝑦^2+3cos(𝑥)=−4

1 Comment

Noa Yelin on 19 Oct 2020

Ameer Hamza on 19 Oct 2020
Edited: Ameer Hamza on 19 Oct 2020
One way is to use fsolve() from optimization toolbox
fun = @(x, y) [-2*x.^2+3*x.*y+4*sin(y)-6; ...
3*x.^2-2*x.*y.^2+3*cos(x)+4];
sol = fsolve(@(x) fun(x(1), x(2)), rand(1, 2));
x = sol(1);
y = sol(2);
Result
>> x
x =
0.5798
>> y
y =
2.5462
Note: due to periodic functions in you equations, there seems to be multiple solutions.
Another approach is to use vpasolve from symbolic toolbox
syms x y
eq1 = -2*x.^2+3*x.*y+4*sin(y)==6;
eq2 = 3*x.^2-2*x.*y.^2+3*cos(x)==-4;
eq = [eq1; eq2];
sol = vpasolve(eq);
x = sol.x;
y = sol.y;

Noa Yelin on 19 Oct 2020
so i don't understand.. when I wrote this code-
syms x y
eq1 = -2*x.^2+3*x.*y+4*sin(y)==6;
eq2 = 3*x.^2-2*x.*y.^2+3*cos(x)==-4;
eq = [eq1; eq2];
sol = vpasolve(eq);
x = sol.x;
y = sol.y;
the output i get is -
x =
2.5921649161329924198470406781904
y =
2.0411522493463611320382918142382
is this correct?
Ameer Hamza on 19 Oct 2020
Yes, this is corect. These equations have multiple solutions.

Community Treasure Hunt

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

Start Hunting!

Translated by