Verfasst am: 20.08.2016, 16:17
Titel: lsqrsolve Problem
Hallo. Ich bin langsam am verzweifeln. Ich habe in MATLAB mit der Optimization Toolbox mit lsqnonlin und Levenber-Marquard Algorithmus etwas gelöst. Dies wollte ich nun portieren in SCILAB (weil kostenlos) und habe gelesen, dass dies mit der Funktion lsqrsolve geht.
Allerdings kriege ich immer wieder den Fehler: (mit leastsq das gleiche)
Code:
-->exec('C:\...\SCILAB\lsqrsolve.sce', -1) [a,b]=lsqrsolve(x0,fct,11);
!--error98
Variable, die durch Scilab Funktion zurückgegeben wurde, ist inkorrekt.
atline18 of exec file called by :
exec('C:\...\SCILAB\lsqrsolve.sce', -1)
Habe schon viel mit den Startbedingungen rumgespielt, aber die müssen so in der Richtung stimmen. Wenn ich die MATLAB Lösung eingebe, dann funktioniert es. Aber das ist ja nicht Sinn der Sache. Lösung bei MATLAB: [0.001 23.481 7.224 14.45]
Hier mal der SCILAB Code:
function F = ecc82_rydel(x) % Arbeitspunkte der ECC82
Ua=[250,250,250,200,200,200,170,170,170,100,100];
Ug=[-17.5,-11.5,-2.5,-13.5,-4,-1,-7.5,-4.5,-0.5,-6,-0.5];
Ia=1e-3*[0.5,5,29,0.5,14.5,25,3.5,8.5,21.5,1,10];
M=length(Ua);
% Problemvariablen und Roehrenparameter
K=x(1); kb=x(2); kc=x(3); mu=x(4);
for k = 1:M
F(k) = Ia(k) - K*(1 + Ug(k)/kb)*(Ug(k) + (Ua(k) + kc)/mu)^(3/2);
end end
Die Meldung bekommt man, wenn an unpassender Stelle komplexe Werte anfallen. Verdächtig in deinem Code ist der Exponent 1.5.
Beispiel:
-->[-2.].^1.5
ans =
- 5.196D-16 - 2.8284271i
HG helmat
_________________
Herzliche Grüße
helmat
p.s.
Hard work beats talent if talent doesn't work hard.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.