f



Numerical solution from Module

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


0
Rob
5/9/2014 6:07:46 AM
comp.soft-sys.math.mathematica 28821 articles. 0 followers. Follow

1 Replies
1256 Views

Similar Articles

[PageSpeed] 10

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


On 5/9/2014 2:07 AM, Rob Y. H. Chai wrote:
> 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
>
>

0
Kevin
5/12/2014 4:44:02 AM
Reply: