RE: SetDelayed and NIntegrate
- To: mathgroup at smc.vnet.net
- Subject: [mg47825] RE: [mg47805] SetDelayed and NIntegrate
- From: "David Park" <djmp at earthlink.net>
- Date: Thu, 29 Apr 2004 00:33:41 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Mukhtar, On your second question... With[{x = 2}, Plot[w, {q, 0, 1}]] replaces every occurrence of x in the body of the With by 2. But there are no occurrences of x in the body of the statement. So x never gets replaced. The following would work. With[{x = 2}, Plot[q^x, {q, 0, 1}]] or (it's almost always better to define expressions as functions with arguments).. Clear[w] w[q_, x_] := q^x With[{x = 2}, Plot[w[q, x], {q, 0, 1}]] On your first question it would be nice if you gave a more complete case. What is f[x,y]? In any case NIntegrate should evaluate to a single value and you haven't specified enough to do that. I think you want Integrate instead. Also, you will probably want Set, instead of DelayedSet, for g and h, otherwise FindRoot will have to keep repeating the integration and differentiation (I think). In a case like that you should check out each step at a time before putting all the steps together. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Mukhtar Bekkali [mailto:mbekkali at iastate.edu] To: mathgroup at smc.vnet.net Very simple question. Is it possible in Mathematica 5 to execute this code? f[x_,y_]:=f[x,y] (*where f[x,y] is some known function*) g[x_]:=NIntegrate[f[x,y],{y,0,1}] h[x_]:=D[g[x],x] FindRoot[h[x]==0,x] I get a message that Integrand is not numeric and FindRoot stops. I would like to make clear that I do not want to use Integrate. My other question is why this code does not work w=q^x; With[{x=2},Plot[w,{q,0,1}] Thanks. Mukhtar Bekkali