2014-04-24 3 views
0
f[n_] := ((A*n^a)^(1/s) + 
     c*(B*(a*c*(B/A)^(1/s)*n^(1 - (a/s)))^(-(a*s)/(a - s)))^(1/s))^s + 
     b*log (1 - n - ((a*c*(B/A)^(1/s)*n^(1 - (a/s)))^(-(a*s)/(a - s)))) 
     d/dn (f (n)) 
     d/dn (f[n]) 
     D[f[n], n] 
     solve (D[f[n], n] = 0) 
     0 
     Solve[D[f[n], n] = 0, n] 
     Solve[0, n] 
     Maximize[f[n], n] 
     Maximize[b log (1 - n - (a (B/A)^(1/s) c n^(1 - a/s))^(-((a s)/(a - s)))) + ((A n^a)^(1/s) 
        + c (B (a (B/A)^(1/s) c n^(1 - a/s))^(-((a s)/(a - s))))^(1/s))^s, n] 

Je ne reçois rien de retour pour l'une de ces fonctions. Une idée pourquoi?Pourquoi ce code Mathematica ne sera-t-il pas optimisé?

Fixation d'une photo du script Mathematica:

enter image description here

+1

n'avez-vous pas lu la réponse à votre autre question? ou avez-vous une variable appelée 'log'? – agentp

Répondre

2

Tout d'abord, vous utilisez résoudre avec une minuscule, qui est juste une variable non définie. Pour utiliser la fonction Solve, vous devez l'écrire avec une majuscule. De la même manière, vous devez écrire Log avec une lettre majuscule, pas une lettre minuscule, puisque c'est une fonction intégrée. Deuxièmement, votre parenthèse ouverte n'est pas une parenthèse. Les fonctions dans Mathematica nécessitent des parenthèses, par exemple Solve[ ... ], et non Solve(). En troisième lieu, vous utilisez = au lieu de ==. Le simple est égal à = est utilisé pour stocker les variables, le double égal à == est utilisé pour représenter l'égalité.

Voyez si vous pouvez le faire fonctionner après avoir corrigé ces erreurs.