Suche Vereinfachung für Summe in meiner Fitfunktion
Rodiak
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 09.03.2011, 17:07
Titel: Suche Vereinfachung für Summe in meiner Fitfunktion
Hey,
ich bin nicht so bewandert in Matlab und hoffe das ihr mir helfen könnt.
Ich habe mehrere Messdaten und eine Funktion die ich mit lsqcurvefit an die Daten anfitten möchte. Mein Problem ist nun das bei der angegeben Funktion eine Summe beinhaltet ist und ich nicht weiß wie ich das realsieren soll. Die Funktion:
F = q_inf*(1-6/(pi^2*(a^2+a*b+b^2))* summe((b*cos(n*pi)-a)/n)^2*exp((-x(1)*n^2*pi^2*xdata)/(b-a)^2));
bisher habe ich die Summe weggelassen und manuel die einzelenen Terme in die Funktion geschrieben, da dies aber mehr als umständlich ist hoffe ich auf eine einfachere Lösung.
Der rest des Programms steht bereits und funktioniert auch wenn ich manuel die einzelnen Summanden addiere.
Gibt es eine Möglichkeit die Summe, die eigentlich von 1 bis inf gehen soll, programmtechnisch zu verarbeiten?
Vielen Dank
Mit freundlichen Grüßen
Rodiak
Verfasst am: 09.03.2011, 23:12
Titel: Re: Suche Vereinfachung für Summe in meiner Fitfunktion
Hallo Rodiak,
Zitat:
Gibt es eine Möglichkeit die Summe, die eigentlich von 1 bis inf gehen soll, programmtechnisch zu verarbeiten?
Was soll in der Summe von 1 bis Inf gehen? Erraten kann ich das nicht. Da Matlab aber keine Summe bis Inf berechnen kann, müsstest Du dies wahrscheinlich zunächst algebraisch lösen.
dann rate ich mal. a und b stehen schon vor der Summe. Bleiben noch x_data,x(1) und n übrig. Also wirds wahrscheinlich n sein.
Wahrscheinlich haben die Summanden mit großen n nur einen kleinen Einfluß und man kann die Summation irgendwann abbrechen.
Rodiak
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 10.03.2011, 10:03
Titel:
Ja tut mir leid. n ist der Index und startet bei 1 und läuft bis unendlich.
Mein Problem besteht nun darin wie ich die Summe ordentlich in meine Funktion eingebe. Bisher habe ich das per Hand gemacht:
Code:
function F = test(x,xdata) global a b
%F = q_inf*(1-6/(pi^2*(a^2+a*b+b^2))* ((b*cos(1*pi)-a)/1)^2*exp((-x(1)*1^2*pi^2*xdata)/(b-a)^2));
und für die weiteren n einfach den Summanden addiert. Aber das ist ja mehr als aufwendig und nicht sehr zielführend. Deshalb such ich eine Vereinfachung.
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 10.03.2011, 11:39
Titel:
Hier mal ein kleiner Versuch, ist sicherlich nicht c&p tauglich,
aber ich hoffe das Prinzip wird klar:
Code:
func=@(x,xdata,n)(((b*cos(n*pi)-a)./n).^2).*exp((-x(1)*xdata*pi^2*n.^2)./(b-a)^2); %Funktion für den Teil hinter dem Summenzeichen
Summe=sum(func(x,xdata,1:100)) %Summe von n= 1 bis 100
Hey,
ich glaube ich habe das Prinzip verstanden, nur weiß ich nicht wie es funktionieren soll, da in der Summe zwei unbekannte größen, einmal meine Messdaten(xdata) und zum anderen die unbekannte größe x(1) an die ich die Funktion ja anfitten will drin stecken. Das Programm dürfte zu dem Zeitpunkt ja gar nicht wissen was es da einsetzen soll oder habe ich da ein falsches Bild?. Das ist mein Aufruf zum fitten
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.