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

mehrdimensionale Funktion und 3D-Plot

 

d_schm11
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2010, 14:32     Titel: mehrdimensionale Funktion und 3D-Plot
  Antworten mit Zitat      
Hallo Lieblingsforum! Wink

Ich versuche eine mehrdimensionale Funktion in Abhängigkeit von zwei Variablen (sigma und kappa) zu erstellen und mache irgendwo einen Fehler, den ich nicht finde und mir nicht erklären kann! Ich nehme an, für einen Matlab-Experten ist der schnell zu finden, drum hoffe ich auf eure Hilfe:

Code:

S = [2 4 3.5 -2 -6 3.4 8 15 51 -24 13 10 -25 36 14]

n = length(S)-1;
Sx = sum(S(1:end-1));
Sy = sum(S(2:end));

kappa = (0.001:0.001:0.3);
sigma = (0.1:0.1:30);

sigma2 = sigma.^2.*(1-exp(-2.*kappa)/2.*kappa);


f(kappa,sigma) = -n/2*ln(2*pi)-n*ln(sqrt(sigma2))-1/2*sigma2.*(Sx-Sy.*exp(-kappa)).^2;
 


Wenn mir hier jemand helfen könnte wäre ich echt dankbar! Habt ihr eine Empfehlung welchen Plot man am besten für eine 3D-Darstellung verwendet?

Beste Grüße
d_schm
Private Nachricht senden Benutzer-Profile anzeigen


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 28.08.2010, 19:19     Titel:
  Antworten mit Zitat      
so läuft Matlab nicht ab. Oder hast du schon f als Funktion eingebaut?
i.A. kann man mit matlab nur diskrete Sachen rechnen.
z.B. im Raum von 0 bis 1 (für x und y)
wäre dann
Code:

und dafür kannst du dann was lösen. meinethalben
Code:

f = x*sigma_1 + 3*y*sonstwas
 


geht natürlich auch anders. aber der Aufbau (mesh...) scheint mMn verbreiteter.
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
d_schm11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2010, 17:05     Titel:
  Antworten mit Zitat      
erstmal danke, dass du dich mit dem Problem beschäftigst...!
Allerdings wird mir nicht ganz klar, inwiefern sich dein Ansatz von dem meinen unterscheidet. Das Ergebnis ist jedenfalls definitiv die gleiche Fehlermeldung! Wink

Undefined function or method 'ln' for input arguments of type 'double'.

Kann mir die jemand erklären?

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2010, 17:31     Titel:
  Antworten mit Zitat      
Hallo,

das ist nun wirklich einfach. Die Funktion ln gibt es in MATLAB nicht - sie heißt log.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
d_schm11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2010, 17:55     Titel:
  Antworten mit Zitat      
danach geht es mit den Fehlermeldungen aber leider munter weiter...! Sad

Subscript indices must either be real positive integers or logicals.

Und nu?? Sorry, wenn ich mich etwas unbeholfen anstelle, aber ich weiß nicht weiter! Die Funktion f muss doch lösbar und in einem 3 dimensionalem Raum darstellbar sein?!?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2010, 18:08     Titel:
  Antworten mit Zitat      
Hallo,

wie sieht dein Code jetzt aus?

Die Schreibweise f(kappa,sigma) ergibt in MATLAB keinen Sinn.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mmz
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 18.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2010, 11:01     Titel:
  Antworten mit Zitat      
Es gibt sowas ähnliches,

du kannst deine Funktion vordefinieren:

Code:

f = @(x,y) -n/2*log(2*pi)-n*log(sqrt(x))-1/2*x.*(Sx-Sy.*exp(-y)).^2;
 


und dann kannst du werte einsetzten.

Code:

f(sigma,kappa);
 


So setzt er für x Sigma ein und für y kappa.
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.