J'ai le code simple suivant dans mathematica qui est ce que je veux à une seule sortie. Mais je veux en avoir des centaines ou des milliers. Comment puis-je faire?automatiser une procédure mathématique: J'ai besoin d'amouts industriels de résultats, et je reçois un
Clear["Global`*"]
k = 2; Put["phiout"]; Put["omegadiffout"];
Random[NormalDistribution[0, 0.1]];
For[i = 1, i < 31,
rnd[i] = Random[NormalDistribution[0, 0.1]]; i++]
Table[rnd[i], {i, 1, 30}]
For[i = 1, i < 30,
rnddf[i] = rnd[i + 1] - rnd[i]; i++
]
diffomega = Table [rnddf[i], {i, 1, 29}];
Table[
Table [rnddf[i], {i, 1, 29}], {j, 1, 100}];
PutAppend[Table[
diffomega, {j, 1, 100}] , "diffomega"]
eqs0 = Table [
k*phi[i + 1] + k*phi[i - 1] - 2*k*phi[i] - rnddf[i] == 0, {i, 1,
28}];
eqs1 = eqs0 /. {phi[0] -> phi[30], phi[31] -> phi[1]};
Sum[phi[i], {i, 1, 29}];
eqs2 = Append[eqs1, - phi[1] - phi[27] - 3 phi[29] == 0];
eqs3 = eqs2 /. {phi[30] -> -Sum[phi[i], {i, 1, 29}]};
vars = Table [phi[i], {i, 1, 29}];
eqs = NSolve[eqs3, vars];
PutAppend[diffomega, eqs , "phiout"]
Cela a mis sur le fichier "phiout" et "omegadiffout" seule la dernière valeur. J'ai besoin de centaines d'entre eux. Pour chaque génération aléatoire, j'ai besoin d'une sortie.
Merci à l'avance
Que fait la troisième ligne? Aussi, pourriez-vous * indenter * les corps des boucles? C'est difficile à lire. – Allen
Pour le moment vous ne semblez rien écrire sur "omegadiffout", bien que vous écrivez 100 copies de 'diffomega' à" diffomega ". On dirait que vous devriez pouvoir répéter votre code en enveloppant simplement la partie concernée dans une boucle 'For [...]' - cela ne fonctionne-t-il pas? –