First time here? Check out the FAQ!

Ask Your Question
1

Numerically Solve a Symbolic Equation

asked 7 years ago

happys5 gravatar image

Hello,

In truth, I am feeling like an idiot but it has been a long while since I have done math.

What I want to do is find the intersection points between a parabola and a circle. After I put both equations in x and set them equal, I have:

var('y')
solve (sqrt(16-x^2) - 1/4*x^2-1.28==0, x)

Problem is, I get the following for answers:

[x == -2/5*sqrt(25*sqrt(-x^2 + 16) - 32), x == 2/5*sqrt(25*sqrt(-x^2 + 16) - 32)]

If I need to numerically solve the equation, which I think I must do, how do I do it in Sage?

Preview: (hide)

3 Answers

Sort by » oldest newest most voted
2

answered 7 years ago

philipp7 gravatar image

updated 7 years ago

Hello!

You can try the option to_poly_solve which gives you:

sage: eqn = sqrt(16-x^2) - (1/4)*x^2-1.28==0;
sage: sol = solve(eqn, x, to_poly_solve=true); sol 
[x == -2/5*sqrt(2)*sqrt(5*sqrt(157) - 41),  x == 2/5*sqrt(2)*sqrt(5*sqrt(157) - 41)] 
sage: n(sol[0].rhs())
-2.63209850458274 
sage: n(sol[1].rhs())
2.63209850458274

Another possiblity would be to plot the function for getting the number and estimate values for the solutions. Then you can try to find those solutions using find_roots:

sage: eqn.find_root(-3,-2)
-2.632098504582708
sage: eqn.find_root(2,3)
2.632098504582708

Kind regards

Philipp

Preview: (hide)
link

Comments

Thanks, Philipp!

happys5 gravatar imagehappys5 ( 7 years ago )
0

answered 7 years ago

updated 7 years ago

Hello,

I tried a different way of doing the same. In the code below, eq1 is the circle and eq2 is the parabola. You'll find the solution you are looking for.

x, y = var('x, y');
eq1 =  x^2 + y^2 == 16; show(eq1);
eq2 = y == 1/4*x^2-1.28; show(eq2);
eqs = [eq1, eq2];
sol = solve(eqs, x, y); show(sol);

Hope this helped.

Preview: (hide)
link
0

answered 7 years ago

dan_fulea gravatar image

Alternatively, we can solve the corresponding polynomial equation over an explicitly declared numeric field:

sage: ( (16-x^2) - (1/4*x^2 + 1.28)^2 ).roots( ring=RR )
[(-2.63209850458273, 1), (2.63209850458273, 1)]

sage: ( (16-x^2) - (1/4*x^2 + 1.28)^2 ).roots( ring=RealField(300), multiplicities=False )
[-2.63209850458273472222645327989825104599024721420142212754062239578568429138110784195156834,
 2.63209850458273472222645327989825104599024721420142212754062239578568429138110784195156834]

Let us compare with the values obtained in the spirit of the answer of philipp7...

sage: [ sol[x].n() 
....:   for sol in solve( sqrt(16-x^2) - 1/4*x^2-1.28 == 0, x
....:                     , solution_dict=True
....:                     , to_poly_solve=True ) ]
[-2.63209850458273, 2.63209850458273]
Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 7 years ago

Seen: 5,553 times

Last updated: Oct 21 '17