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

Probleme mit inline

 

tuandi
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 20.08.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 15.09.2010, 19:30     Titel: Probleme mit inline
  Antworten mit Zitat      
Hallo!

Freu mich über jede Hilfe! Aber zuerst zum Problem Wink :

Ich habe eine inline-Funktion:

Code:

 kern=inline('(1/sqrt(2*pi))*exp((-(x^2))/2)');
 


außerdem habe ich einen Vektor r mit Länge n.

Nun möchte ich eine weitere Funktion (nennen wir sie 'funk(t)') auswerten, die von der Funktion 'kern(x)' abhängt.
Nämlich:


funk(t)= (1/n)*\sum{j=1}{n}kern(t-r_i)

Ich habe es extra nicht in der CODE-Umbegung geschrieben, weil mir bewusst ist, dass es nicht funktioniert.. leider fällt mir aber auch keine Lösung dazu ein.
Ich hoffe der pseudo-Latex Stil ist dennoch lesbar.

Vielen Dank für Eure Hilfe!

tuandi
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

die inline-Notation ist recht veraltet. Besser:
kern=@(x) (1/sqrt(2*pi))*exp((-(x^2))/2);

Die Funktion wird trotzdem etwas kompliziert:
Code:
r = 1:5;
f = @(x) 0;
for j = 1:2
    f = @(t) f(t) + kern(t-r(j));
end


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 20.08.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 19.09.2010, 20:21     Titel:
  Antworten mit Zitat      
Vielen Dank Harald! Ich probiers die Woche gleich mal aus.

Auch vielen Dank für den Tip mit @(x)...
Private Nachricht senden Benutzer-Profile anzeigen
 
tuandi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 20.08.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 21.09.2010, 17:35     Titel:
  Antworten mit Zitat      
Hallo Harald!
Also: Ich habs nochmal probiert! Und theoretisch klappt es. Leider würde aber die Summe von Funktionen (bei mir: n) größer als 500 werden.. Und das lässt Matlab nicht ohne weiteres zu, es sei denn, man nimmt einen Matlab-Absturz in Kauf...

Dennoch vielen Dank für die Hilfe!!

tuandi
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

du versuchst quasi symbolisch zu rechnen. Mach das doch numerisch und werte das direkt aus?
Wenn du nachfragst, was ich meine: das kann ich dir schlecht sagen, weil ich nicht weiß, was du vorhast Wink
Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
tuandi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 20.08.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 21.09.2010, 22:34     Titel:
  Antworten mit Zitat      
Hallo Harald,
letztendlich hab ich das numerisch gemacht.
Kurzfassung von dem was ich vorhabe:
Ich habe eine Zeitreihe von knapp 3000 Daten.
Ich bräuchte aber gut 10000 Daten um etwas zu bewerten. Also versuch ich die restlichen Datenpunkte zu generieren, möglichst mit den gleichen/ähnlichen Eigenschaften wie die "echten" 3000 Daten.

Das mache ich mittels Kerndichteschätzung. Sahalia (irgendein Forscher von Princeton) hat eine interessante Methode vorgestellt, um den Mittelwert, aber insbesondere die Varianz des Prozesses zu schätzen (Und hier spielt eben die Kerndichteschätzung rein).

Nun: In der Formel für die Varianzschätzung (ich geh mal davon aus, das Du mit dem Begriff was anfangen kannst) kommt nun ein Integral über die Summen dieser Kerndichten vor. Und hier kommt Dein 1. Vorschlag ins Spiel Wink.

Damals hatte ich bereits erste Ergebnisse über den numerischen Weg bekommen (mit dem Befehl trapz(vector,funktionswerte) ).
Ich bekam es nur nicht auf die Reihe symbolisch zu berechnen.
Letztendlich war dann Dein Vorschlag mit
f=@(x) 0
der Weisheit letzter Schluß. Eine Funktion als Nullfunktion zu definieren ist clever (thumbsup!!) sonst wärs schwierig mit der rekursiven Darstellung.

Mittlerweile bin ich mit der numerischen Lösung zufrieden. Es ist ziemlich schnell und bringt auch gute Ergebnisse.

Ich hoffe, mein Vorhaben hat Dich zumindest halbwegs interessiert Wink
Vielen Dank für die Diskussion!

tuandi
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.