Solve: Solution not satisfying the equation

3 views (last 30 days)
I am trying to solve 2 equations in the code
a = [-0.0008333 -0.025 -0.6667 -20];
length_OnePart = 7.3248;
xi = -6.4446;
yi = -16.5187;
syms x y
[sol_x,sol_y] = solve(y == poly2sym(a), ((x-xi)^2+(y-yi)^2) == length_OnePart^2,x,y,'Real',true);
sol_x = sym2poly(sol_x);
sol_y = sym2poly(sol_y);
The sets of solution it is giving are (-23.9067,-8.7301) and (11.0333,-24.2209) which are not even satisfying the equation of circle. Please help me to rectify the problem.

Accepted Answer

A Jenkins
A Jenkins on 27 May 2014
Sometimes you can reshape the problem to make things easier for the solver. In this case, center the circle at zero by redefining your variables such that: xa=x-xi; ya=y-yi;
a = [-0.0008333 -0.025 -0.6667 -20];
length_OnePart = 7.3248;
xi = -6.4446;
yi = -16.5187;
syms xa ya
[sol_xa,sol_ya] = solve(ya+yi==subs(poly2sym(a),'x',xa+xi), ((xa)^2+(ya)^2) == length_OnePart^2,xa,ya,'Real',true);
sol_x=sol_xa+xi
sol_y=sol_ya+yi
______________________
sol_x =
-13.182825373861454619370838716408
0.00002145831413371390464567553686047
sol_y =
-13.646590348358951818881695033728
-20.000014306269544436430325843024
  2 Comments
Ankush
Ankush on 27 May 2014
Edited: Ankush on 27 May 2014
@Jenkins: Thanks alot. But it seems we are solving same set of equations in both the cases. So why is it not giving answer with the method I above mentioned and it is giving correct result here?
A Jenkins
A Jenkins on 28 May 2014
Circles are ugly things to numeric solvers, since they have multiple solutions of y for each value of x, and they have points where the derivative goes to infinity, etc. If you have ever tried to use Newton's Method by hand on something without continuous second derivatives, you will get the idea of how much a headache it can be.
I always check the solutions from solve(), and if it had problems, I try to reshape the equations somehow to give it a better chance.

Sign in to comment.

More Answers (0)

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!