Verfasst am: 17.07.2009, 19:12
Titel: Schleifenproblem in Matlab
Code:
Ich habe folgendes Problem: Ich habe die Funktion x(t)=2.2*heaviside(t-3) und habe folgendes m-file gestaltet:
function x = Heaviside(t,s)
x=2.2*heaviside(t-3) if3<=t<=8
x=2.2;
else
x=0;
end
ich möchte ihm hiermit nur sagen, dass er nach der Funktion x=2.2*heaviside(t-3) rechnen soll und speziell im Intervall zw. 3 u. 8 x=2.2 sonst x=0 ausgeben soll!
Das funktioniert aber leider nicht!
Hat hier jemand eine Idee wie ich die Schleife gestalten könnte oder soll man das Bsp ohne Schleife lösen! Vielen Dank schon mal jetzt für Eure Hilfe!
3. Die if- Schleife checkt den Wertebereich von t.
Aber ganz egal wie diese Prüfung ausgeht, x wird immer überschreiben ( entweder ist x = 2.2 oder 0). Vor der Schleife berechnest Du ja schon ein x!!
Erkläre mir bitte was für eine Funktion 'heaviside' sein soll/ ist, was und wie groß (einzelner Wert oder mehrere 100 Werte) t sein soll und was und wie groß s (einzelner Wert oder mehrere 100 Werte) sein soll.
_________________
Auch wenn ich den Sinn der Funktion nicht verstehe, da du das auch ohne heaviside realisieren könntest, weil die Funktion ja mit deinen Anweisungen komplett überschrieben wird:
Die Eingabe für t ist dann ein Vektor, welcher wohl auch bei deiner Funktion, das Problem sein dürfte da die if-anweisung einen Vektor komplett mit einsen bräuchte um ausgeführt zu werden.
_________________
>> why
The computer did it.
Poko1
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.07.2009, 21:40
Titel:
Code:
Hallo Leute!
Das ist nur ein Teil eines Beispiels-ich wollte nicht gleich das ganze Beispiels ins Forum stellen;=)!
Die ganze Fragestellung lautete: Die Eintrittskonz. ist gegeben durch x(t)=2.2*U(t-3), die Mischungscharakteristik k(t)=0.5*t^2*exp(-t/10)-->mittels des Faltungssatzes sollte man nun y(t) im Intervall [0100] ausrechnen!
Dafür habe ich auch bereits einen Lösungsweg mit folgenden Befehlsablauf, der mir plausibel erschien:
Ich habe die beiden Multiplikanten separat laplace-transformiert und das Produkt dann wieder zurücktransformiert!
Bestimmt gibt es da auch elegantere Lösungen!
Command window
>> tspan=[0100];
>> syms t s k x
>> x=Heaviside(t);
>> k=Polynom(t);
>> F=laplace(x,t,s);
>> G=laplace(k,t,s);
>> H=F*G
ad heaviside-fkt.:
Mir ist schon klar, dass x durch die Schleife überschrieben wird-Ich hatte jedoch das Problem, dass wenn ich die Funktionszeile mit x=2.2*heaviside(t-3) im m-File weggelassen hatte, dass er dann im command window keine Funktion finden konnte (function undefined)!
Danke für Eure Antwort - ich werde es mal eingeben!
Das ist nur ein Teil eines Beispiels-ich wollte nicht gleich das ganze Beispiels ins Forum stellen;=)!
Die ganze Fragestellung lautete: Die Eintrittskonz. ist gegeben durch x(t)=2.2*U(t-3), die Mischungscharakteristik k(t)=0.5*t^2*exp(-t/10)-->mittels des Faltungssatzes sollte man nun y(t) im Intervall [0100] mit den Einschränkungen [x(t)=2.23<=t<=8, sonst x(t)=0]ausrechnen!
Dafür habe ich auch bereits einen Lösungsweg mit folgenden Befehlsablauf, der mir plausibel erschien:
Ich habe die beiden Multiplikanten separat laplace-transformiert und das Produkt dann wieder zurücktransformiert!
Bestimmt gibt es da auch elegantere Lösungen!
Command window
>> tspan=[0100];
>> syms t s k x
>> x=Heaviside(t);
>> k=Polynom(t);
>> F=laplace(x,t,s);
>> G=laplace(k,t,s);
>> H=F*G
ad heaviside-fkt.:
Mir ist schon klar, dass x durch die Schleife überschrieben wird-Ich hatte jedoch das Problem, dass wenn ich die Funktionszeile mit x=2.2*heaviside(t-3) im m-File weggelassen hatte, dass er dann im command window keine Funktion finden konnte (function undefined)!
Danke für Eure Antwort - ich werde es mal eingeben!
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.