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