erreurs dans evalauting une expression


0

je donne les résultats suivants:

Constantes:

b3b = 2; 
G = (1/eps^2); 
a1 = 3; 
a3 = 4; 
xc = 0.3; 

Fonctions:

y[x_] := (x*a1 - x^3*a3)/G 
n[x_] := (y[x]^2) 

Je veux g[x], gp[x], gpp[x] en fonction de eps seulement et tous de ces trois fonctions devrait être évaluée à x=xc:

g[x_] := (G*(-y[x]/eps)*Exp[-n[x]] - (b3b/eps)* 
    NIntegrate[(y[s])^4*Exp[-n[s]], {s, 0, xc}]) 

S'il vous plaît noter que dans le integrand ci-dessus -> les deux n[x] et y[x] sont des fonctions de eps et donc je peux utiliser NIntegrate depuis que je suis en utilisant := pour g[x] même si eps est pas donné une valeur numérique pour le moment. Tout est parfait jusqu'à ce point car je peux obtenir une valeur numérique pour g[xc] pour une valeur eps. Le problème se produit lorsque je prends les dérivés suivants:

gp[x_] := D[g[x], x] 
gpp[x_] := D[gp[x], x] 

depuis quand j'évalue gp[xc] et gpp[xc] pour une valeur eps particulière, je reçois des erreurs: NIntegrate::inumr et General::ivar.

Par conséquent, j'ai besoin d'un moyen de contourner ce problème. Je dois faire quelque chose de mal. Toute aide serait grandement appréciée. Merci!

  0

@Nasser Si j'utilise les: = pour g [x], puis est pas bien utiliser Ntegrate? parce qu'à la fin je dois tracer une énorme fonction qui exige que g [xc], gp [xc], gpp [xc] changent avec eps .. j'ai essayé celui que vous avez eu et j'ai obtenu General :: ivar dis-moi ce que je peux faire? 24 août. 132013-08-24 23:53:41

  0

@Nasser merci pour l'aide ... excuses à ce sujet ... pouvez-vous s'il vous plaît dites-moi ce que je peux faire d'autre pour ma situation ... puis-je utiliser Integrate for g [x]? cependant, je reçois toujours une erreur quand j'évalue les fonctions à x = xc pour un eps particulier ... s'il vous plaît aidez-moi à ce que je peux faire 25 août. 132013-08-25 00:02:48

  0

@Nasser je suppose qu'ils n'ont pas lu votre message ... s'il vous plaît aidez-moi 25 août. 132013-08-25 00:04:20

  0

@Artes j'ai reformulé la question comme vous avez suggéré ... pouvez-vous s'il vous plaît jeter un oeil maintenant ... j'espère que cela a plus de sens quant à ce que je veux faire maintenant 25 août. 132013-08-25 00:18:45

2

Le problème ici est la façon dont vous avez défini les dérivées. Mma évaluera par ex. dans cet ordre: gp [xc] -> D [g [xc], xc] et évidemment vous aurez une erreur là-bas. Vous pouvez définir les dérivés comme ceci:

gp[x_] := D[g[t], t] /. t -> x 
gpp[x_] := D[g[t], {t, 2}] /. t -> x 

Et vous le faire fonctionner:

Block[{eps = 0.1}, {gp[xc], gpp[xc]}] 

{-19.1964, 72.004} 
  0

vous êtes incroyable ... merci beaucoup pour cela. Mourir pour ça! 25 août. 132013-08-25 03:37:02