22.07.2015, 13:11 |
Jimmy1986_KS |
Auf diesen Beitrag antworten » |
Matlab Mupad befehl aus m file numeric::solve
Hallo,
ich habe ein Problem mit meinem Matlabcode. Ich habe eine Gleichung, die ich numerisch lösen will. Die bekomme ich, wenn ich folgenden Befehl verwende:
php: |
1:
2:
|
Gleichung = 1645/574 - 1/(N) - 1/(N-1) ....-1/(N-9);
S = vpasolve(Gleichung==0); |
|
Hier bekomme ich 10 Werte für N raus. Meine eigentliche Gleichung hat 354 Wert, also:
php: |
1:
2:
|
Gleichung = 1645/574 - 1/(N) - 1/(N-1) ....-1/(N-353);
S = vpasolve(Gleichung==0); |
|
Hier bekomme ich allerdings eine Fehlermeldung:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
Error using mupadengine/feval (line 157)
MuPAD error: Error: Division by zero.
Evaluating: numeric::fsolve_BornInf
Error in sym/vpasolve (line 111)
sol = eng.feval('symobj::vpasolve',eqns,vars,X0);
Error in JM_Berechnung (line 47)
S = vpasolve(Gleichung==0,N) |
|
Ich habe lange rechachiert und herausgefunden, dass ich das auch in Mupad machen kann. Der Befehl ist:
php: |
1:
|
numeric::solve(1645/574 - 1/(N) - 1/(N-1) ....-1/(N-353)=0,N); |
|
hier funktioniert das wunderbar. Ich bekomme wie gewünscht 354 Werte raus. Jedoch will ich das im m-file aufrufen. Also habe ich folgenden Code im m file:
php: |
1:
|
S = evalin(symengine,'[numeric::solve(1645/574 - 1/(N) - 1/(N-1) ....-1/(N-353)=0,N)]'); |
|
Hier kommt wieder eine Fehlermeldung:
php: |
1:
2:
3:
4:
|
Error using mupadengine/evalin (line 101)
MuPAD error: Error: Division by zero.
Evaluating: numeric::fsolve_BornInf |
|
Mache ich aber die Gleichung kleiner (Gleichung = 1645/574 - 1/(N) - 1/(N-1) ....-1/(N-9)) dann funktioniert das wieder.
Ich hoffe hier gibt es experten, die mir da weiter helfen können. Ich habe alles versucht, komme aber nicht weiter. |