Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Numerical solution from Module

65 views
Skip to first unread message

Rob Y. H. Chai

unread,
May 9, 2014, 2:07:46 AM5/9/14
to

Hello every one,



Here is a simple question. Say I define a function



In[14]:= f[x_] := a*x^2 + b*x + c



Then I use Module to frame the solution of f[x] ==0



In[15]:= soln[a_, b_, c_] := Module[{}, xsoln = Solve[f[x] == 0 , x]; x /.
xsoln]



When I enter numerical values for parameters a, b, and c in the module, f[x]
never sees these numerical values, and returns a symbolic solution.



In[11]:= soln[1, -3, 2]



Out[11]= {(-b - Sqrt[b^2 - 4 a c])/(2 a), (-b + Sqrt[b^2 - 4 a c])/(2 a)}



But I want the module to return a numerical solution as:

{{x -> 1}, {x -> 2}}



My question is: without bringing f[x] explicitly into the Module function,
and without redefining f as f[a_,b_,c_][x] := a*x^2+b*x+c, how can I get the
module to return a numerical solution?



Thanks - Rob Chai


Kevin

unread,
May 12, 2014, 12:44:02 AM5/12/14
to
I would put f inside the module as well. Here is my version:

Clear[soln, a, b, c]
soln[a_, b_, c_] := Module[{xsoln, f, x},
f[x_] = a*x^2 + b*x + c;
xsoln = Solve[f[x] == 0, x]; x /. xsoln
]

Try it out:

soln[1,2,3]

output: {-1-I Sqrt[2],-1+I Sqrt[2]}
0 new messages