필터 지우기
필터 지우기

i want to solve 3 non linear equations in matlab

조회 수: 3 (최근 30일)
Thulasi
Thulasi 2024년 4월 28일
편집: John D'Errico 2024년 4월 28일
eq1= 72.25+23.29*x-25.79*y-6.592*x*y-27.98*y^2-7.255*x*y^2+6.918*y^3-e1 =0;
eq2= 46.99+15.46*x+9.358*y+0.6696*x*y-19.9*y^2-5.869*x*y^2-4.47*y^3-e2=0;
eq3= 20.22+6.611*x+12.02*y+2.7*x*y-6.497*y^2-2.425*x*y^2-4.529*y^3-e3 =0 ;
I gave 3 non linear equations above and I want to find solution of x and y . e1 e2 e3 let e1 e2 e3 are unknown constants .I want the solution x and y must be in terms or fuction of e1,e2,e3 . So I want a program in matlab with solution as soon as possible.

답변 (3개)

Joshua Levin Kurniawan
Joshua Levin Kurniawan 2024년 4월 28일
Hello, you can use the following code
syms x y e1 e2 e3
eq1 = 72.25 + 23.29*x - 25.79*y - 6.592*x*y - 27.98*y^2 - 7.255*x*y^2 + 6.918*y^3 - e1;
eq2 = 46.99 + 15.46*x + 9.358*y + 0.6696*x*y - 19.9*y^2 - 5.869*x*y^2 - 4.47*y^3 - e2;
eq3 = 20.22 + 6.611*x + 12.02*y + 2.7*x*y - 6.497*y^2 - 2.425*x*y^2 - 4.529*y^3 - e3;
sol = solve([eq1, eq2, eq3], [x, y]);
disp(sol);

Torsten
Torsten 2024년 4월 28일
이동: Torsten 2024년 4월 28일
You have three equations and two unknowns. Usually, such systems don't have a solution.
And even if there were two equations in two unknowns: it will most probably not be possible to solve systems of cubic equations with unspecified parameters e1, e2 and e3 and symbolic math.

John D'Errico
John D'Errico 2024년 4월 28일
편집: John D'Errico 2024년 4월 28일
You can want anything you want. I, for example, want to see peace in the world, with everyone treating everyone else as an equal, who equally deserves to live a happy life. Yeah, right. Gonna happen. Just wanting something is not enough for it to ever happen. And you want it as soon as possible. No problem. I'll rush right to it.
Look carefully at your equations. UNDERSTAND WHAT THEY MEAN.
syms x y e1 e2 e3
eq1= 72.25+23.29*x-25.79*y-6.592*x*y-27.98*y^2-7.255*x*y^2+6.918*y^3-e1 == 0;
eq2= 46.99+15.46*x+9.358*y+0.6696*x*y-19.9*y^2-5.869*x*y^2-4.47*y^3-e2 == 0;
eq3= 20.22+6.611*x+12.02*y+2.7*x*y-6.497*y^2-2.425*x*y^2-4.529*y^3-e3 == 0;
We can arbitrarily start with eq1, solving for x.
xiso = solve(eq1,x)
xiso = 
Disregarding the case where that could produce a divide by zero... Now we could substitute x into BOTH of equations 2 and 3.
subs(eq2,x,xiso)
ans = 
I won't do eq3 here, as it would be just another terrible mess to look at, and would gain nothing. This would require both of those equations to be true at once. Effectively, if we clear out the denominators in the above result, we would have something that looks like a general 6th degree polynomial equation in y. And of course, there is no solution for that general problem anyway. (That goes way back to Abel-Ruffini.) But even if we COULD do that, we would have TWO such problems, each of them degree 6 polynomials in y, both of which must be true at once.
You have a problem that is both unsolvable in terms of algebra, and unsolvable because it is over-determined. You have insufficient degrees of freedom to solve three equations in two unknowns.

카테고리

Help CenterFile Exchange에서 Numeric Solvers에 대해 자세히 알아보기

태그

제품


릴리스

R2015a

Community Treasure Hunt

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

Start Hunting!

Translated by