WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Funktion leastsq

 

JonasX

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2016, 15:29     Titel: Funktion leastsq
  Antworten mit Zitat      
Hallo Leute,

ich muss euch leider mit meinem Problem behelligen.
Ich habe ein Matlab Code aus einem Buch kopiert, der aus mir einem nicht erklärlichen Grund nicht laufen will.
Code:

function F = rydel(x)
% Arbeitspunkte
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
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
>>x0 = [0.01,10,10,10];
>>x=leastsq(rydel,x0)
 

Fehler:
Not enough input arguments.

Error in ecc82_rydel (line 8 )
K=x(1); kb=x(2); kc=x(3); mu=x(4);


Als Syntaxvorschlag habe ich: leastsq(U,y,x,Wc). Habe das auch schon mal so versucht, aber bringt nur den selben Fehler. Bei Hilfe findet er nix mehr dazu, ist die Funktion also nicht mehr vorhanden ?

Danke schon mal.
MfG
Jonas


ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2016, 15:35     Titel:
  Antworten mit Zitat      
Hallo,

das liegt am Aufruf der Funktion - die soll wohl so aussehen:

Code:

x=leastsq(rydel(x0))
 


Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
JonasX

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2016, 18:22     Titel:
  Antworten mit Zitat      
Hallo ro_mat,

der Funktionsaufruf wie du ihn gepostet hast, führt zum Fehler:

Undefined function 'leastsq' for input arguments of type 'double'.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2016, 20:44     Titel:
  Antworten mit Zitat      
Hallo,

der Autor verwendet anscheinend eine weitere selbstgeschriebene Funktion.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2016, 08:30     Titel:
  Antworten mit Zitat      
Servus,

dein ursprüngliches Problem mit dem Funktionsaufruf rydel() is ja geklärt - die leastsq - Routine habe ich noch nie verwendet bzw. ist nicht vorhanden! So wie Harald es auch beschrieben hat!

Du musst nur schauen bei deiner leastsq-Routine, welche Eingabeparameter erlaubt sind --> da sich der Error auf Typ Double bezieht könnte es sein das du einen String brauchst Wink

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.