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

Mathematikproblem

 

Karl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2011, 17:19     Titel: Mathematikproblem
  Antworten mit Zitat      
Hallo liebe gomatlab-user Smile
Habe folgendes Problem:
Habe einen Zahlenpool K(t) gegeben. Näherungsweise wird K(t)=Ko-exp(-t/T) angenomme. Ich möchte nun die Werte für Ko und T herausbekommen. wie funktioniert des?
Stehe da völlig aufm schlauch!
Kann mir einer helfen?

Liebe Grüße
Karl


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.452
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.01.2011, 22:03     Titel:
  Antworten mit Zitat      
Hallo,

wenn die Statistics Toolbox zur Verfügung steht, hilft
Code:


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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2011, 09:45     Titel:
  Antworten mit Zitat      
Hallo,
also ich habe diesen Befehl mal eingegeben und es öffnete sic tatsächlich ein "erklärungsfenster".
Habe noch nie mit solchen tools gearbeitet, was soll ich denn nun damit machn?
LG
 
Brm
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2011, 18:10     Titel: fminsearch
  Antworten mit Zitat      
Hallo,
Versuche es doch mal mit diesem Beispiel:

Code:
function fminfit
% FMINFIT minimiert die Abweichung einer Zielfunktion zu einem vorgegebenen
% Vektor (z.B. aus einer Messung) und gibt die Parameter aus

% Erstellen der Zieldaten
t = 0:0.2:100;
K0 = 5; %parameter(1)
T = 6; %parameter(2)
parameter = [K0 T];
Rauschen = rand(1,length(t))*0.2;
K = Kx(t,parameter)+Rauschen;

% Suchen der optimalen Parameter
parameter = [0 0]; % Startparameter für den Suchalgorithmus
parameter_new = fminsearch(@(parameter)Kerr(K,parameter,t),parameter);

% Berechnen der Zielfunktion mit den optimierten Parametern
K_new = Kx(t,parameter_new);

% Darstellen der Rohdaten und der parametrisierten Zielfunktion
plot(t,K,t,K_new)

% subfunctions
% -------------------------------------------------------------------------
function fout = Kx(t,parameter)
%     KX berechnet die Funktionswerte aus den Eingangsvariablen
    fout = parameter(1)-exp(-t./parameter(2));
end

function err = Kerr(K,parameter,t)
%     FITFUN berechnet die Abweichung zwischen den vorgegebenen Werten und
%     der gewünschten Zielfunktion mit den übergebenen Parametern
    f = parameter(1)-exp(-t./parameter(2));
    err = norm(f-K);
end
end


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

Forum-Meister


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

fminsearch ist in dem Fall deutlich aufwändiger als nlinfit.
Was du mit der Erklärungsseite machen sollst? Lesen! Vor allem das Beispiel - und das dann auf deine Situation übertragen.
Wenns dabei konkrete Probleme gibt, rühr dich.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2011, 23:10     Titel:
  Antworten mit Zitat      
Okay ich werde mich morgen dran machen diese Aufgabe zu lösen.
Meine vorerst letzte Frage:
Des ist aber schon noch alles Eingaben die im Command Window eingegeben werden?
LG
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.452
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.01.2011, 23:28     Titel:
  Antworten mit Zitat      
Hallo,

wenn du mit nlinfit arbeitest, ja.
Eigene functions wie im Beispiel von brm müssen im Editor angelegt werden.

Such doch übrigens mal in diesem Forum nach nlinfit. Da gibts haufenweise Beiträge dazu und sicher einiges, was dir hilft.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Brm
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2011, 11:20     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

fminsearch ist in dem Fall deutlich aufwändiger als nlinfit.
Was du mit der Erklärungsseite machen sollst? Lesen! Vor allem das Beispiel - und das dann auf deine Situation übertragen.
Wenns dabei konkrete Probleme gibt, rühr dich.

Grüße,
Harald


Du hast natürlich recht, nur hab ich leider die Toolbox nicht Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2011, 20:53     Titel:
  Antworten mit Zitat      
Hallo,
also ich würde es gerne mit dem "nlinfit" probieren. Wenn das der wenigere aufwand ist, ich habe nun mal versucht das "erklärungsfenster" zu verstehen, mein problem is nur das es auf englisch ist...
da versteh ich ja noch weniger wie von der deutschen mathematik.
Wie könnte ich als nächstes Vorgehen um die Aufgabe zu lösn?
LG
 
Harald
Forum-Meister

Forum-Meister


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

ich darf mich zitieren:
Zitat:
Such doch übrigens mal in diesem Forum nach nlinfit. Da gibts haufenweise Beiträge dazu und sicher einiges, was dir hilft.


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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2011, 21:59     Titel:
  Antworten mit Zitat      
Ich bin durchaus einen Schritt weitergekommen, endlich. Smile
Habe folgendes mal geschrieben:
Code:

 X = [t(:),ones(size(t(:)))];
 b = log(I(:));
 a = X\b;
 tau = -1 / a(1);
 I0  = exp(a(2));
 


Und habe natülich zuvor die Zahlenpool von I(t) und t angegeben.
Der Gedanke dahinter war die Ausgangsfunktion zu logarithmisieren.
Laut einer Lektüre müsste ich nun das ganze noch fitten um dann auf tau und I0 zu stoßen, aber da is au wieder mein nächstes Problem.
Wie soll ich das denn machen?
Ist mein Weg den bis hierhin korrekt?
LG
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2011, 22:20     Titel:
  Antworten mit Zitat      
Der Code lautet natürlich so:

X = [t( : ),ones(size(t( : )))];
b = log(I( : ));
a = X\b;
tau = -1 / a(1);
I0 = exp(a(2));

Die Smiley hattn da nichts zu suchen Wink
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.452
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.01.2011, 22:30     Titel:
  Antworten mit Zitat      
Hallo,

das sieht doch auf den ersten Blick gut aus. Zwar ein anderer Weg als der von mir gedachte, aber macht ja nix.

Fitten musst du nichts mehr, tau und I0 sind deine berechneten Parameter.

Um zu sehen, wie gut der Fit ist, solltest du nun mal die Daten zusammen mit der Kurve plotten. Wenns in etwa passt, ists gut - wenn nicht, ist Fehlersuche angesagt.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2011, 22:36     Titel:
  Antworten mit Zitat      
Ehrlich gesagt hab ich komplett den überblick verloren und weiß nicht wirklich wie ich das ganze zu einem qualitativ guten plot zusammen schreiben soll...?
Ich suche ja einen Wert für I0 und tau. Wie bekomm ich denn den nun? Smile
soll ich mit polyfit plotten?
LG
 
Harald
Forum-Meister

Forum-Meister


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

du hast tau und I0 doch schon berechnet. Du musst das also nur noch in dein Modell einsetzen. polyfit hat da absolut nichts zu suchen.

Code:
plot(t, I, t, I0*exp(-t/tau))

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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