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

Nummerisch ableiten....geht irgendwie nicht

 

xylofottl
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.04.2009, 19:40     Titel: Nummerisch ableiten....geht irgendwie nicht
  Antworten mit Zitat      
Code:

function [etheta ekonz]=numableit (theta,konz)
   
   for i=40:20:length(konz)
      if ((konz(i)-konz(i-20))==0)
      ekonzdist(i)=0;
      else  
      ekonzdist(i)=(konz(i)-konz(i-20))/(theta(i)-theta(i-20));
      endif
   endfor
   
   etheta(20)=theta(20);
   ekonz(20)=ekonzdist(20);
   for i=40:20:length(ekonzdist)
      ekonz(i)=ekonz(i-20)+((theta(i)-theta(i-20))*ekonzdist(i));
      etheta(i)=theta(i);
   endfor
   
endfunction


nicht wundern....is octave-code...syntaktisch also schon iO.

Also folgendes sollte die Funktion tun, tut sie aber nicht:
Aus dem Zeitvektor "theta" und dem Konzentrationsvektor "konz" soll sie mir ne Ableitungsfunktion erstellen und mit ner Schrittweite von 20 die ca 7000 Stützstellen langen Übergabevektoren bearbeiten. Die beiden Ausgabevektoren "etheta" und "ekonz" sollen natürlich gleich lang sein, so um die 350.

Falls sich jemand tatsächlich den Mist antun will....die Daten sind attached...

Tausend Dank schonmal...

theta_konz.txt
 Beschreibung:

Download
 Dateiname:  theta_konz.txt
 Dateigröße:  259.37 KB
 Heruntergeladen:  998 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.04.2009, 11:07     Titel:
  Antworten mit Zitat      
Was geht daran nicht? Wird eine Fehlermeldung erzeugt? Sind die Resultate nicht wie gewünscht, und wenn ja: inwiefern?

Hinweis: Die Funktion geht ziemlich verschwenderisch mit Speicher um, da (wenn ich das richtig sehe) in den Arrays ekonz und etheta nur jeder zwanzigste Wert belegt wird.
Private Nachricht senden Benutzer-Profile anzeigen
 
xylofottl
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2009, 14:46     Titel:
  Antworten mit Zitat      
Hallo.

Hab die Lösung. Die Problemlösung lag darin, die zweite Schleife einfach wegzulassen. Wasauchimmer mich da geritten hat....

Danke für die Antwort, trotzdem.
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 20.04.2009, 15:15 Uhr von Bijick
Von Programmierung nach Octave-Forum
 
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 - 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.