62 views

Skip to first unread message

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

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;

soln[1,2,3]

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

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]}

Reply all

Reply to author

Forward

0 new messages

Search

Clear search

Close search

Google apps

Main menu