DMUG-Archiv 2011

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: NIntegrate mit einer compelierten Funktion

Hallo Peter,

In[6]:= Remove[cf]
        cf = Compile[{x, y}, Sqrt[x y]]
Out[7]= CompiledFunction[{x, y}, Sqrt[x y], -CompiledCode-]

In[17]:= NIntegrate[cf[q, 3], {q, 1, 4}]
During evaluation of In[17]:= CompiledFunction::cfsa: Argument 1. q at position 1 should be a machine-size real number. >>
Out[17]= 8.0829

In[21]:= cf[a + b, 3]
During evaluation of In[21]:= CompiledFunction::cfsa: Argument a+b at position 1 should be a machine-size real number. >>
Out[21]= Sqrt[3] Sqrt[a + b]

es werden sinnvolle Rechnungen ausgeführt, also empfiehlt sich ein Off[CompiledFunction::cfsa].

Siehe auch ref/message/CompiledFunction/cfsa in der Hilfe, es handelt sich um eine Typprüfung, die bei einem formalen Argument unter NIntegrate[] zu früh kommt, sonst aber als Hinweis durchaus angebracht sein kann.

Gruss
Udo.

wenn ich die folgende compelierte Funktion

Subsidencefunction$internal$xy$ohne$if$compiled=Compile[{{a,_Real},{b,_Real},{l,_Real},{M,_Real},{x,_Real},{y,_Real},{H,_Real}},Times[Rational[-1,4],Power[Plus[-1,Power[E,Times[2,M,Plus[Times[-1,H],M]]]],-1],Plus[Erf[Times[Power[1.4142135623730951`
Power[Plus[-1,Times[H,Power[M,-1]]],Rational[1,2]],-1],(l-2 y)
a]],Erf[Times[Power[1.4142135623730951`
Power[Plus[-1,Times[H,Power[M,-1]]],Rational[1,2]],-1],(l+2 y)
a]]],Plus[Erf[Times[Power[1.4142135623730951`
Power[Plus[-1,Times[H,Power[M,-1]]],Rational[1,2]],-1],(b+2 x)
a]],Erf[Times[Power[1.4142135623730951`
Power[Plus[-1,Times[H,Power[M,-1]]],Rational[1,2]],-1],(b-2 x)
a]]]],CompilationTarget->"C"]

NIntegrate[Subsidencefunction$internal$xy$ohne$if$compiled[1,2,3,x,5,6,7],{x,0,10}]


integrieren will erhalte ich immer die Fehlermeldung

CompiledFunction::cfsa: Argument x at position 4 should be a
machine-size real number. >>

Was kann ich dagegen tun?

Danke & frohe Pfingsten wünscht

Peter



Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html