Wie Bestimme ich ein t-Wert bei dem als erstes der Wert y2=-0.5) unterschritten wird numerisch ?
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Ich soll den t-Wert t2 numerisch bestimmen bei dem als erstes der Wert y2=-0.5 unterschritten wird also nur durch Auswerten der Zahlenwerte von y,t. Ich habe es so Probiert ohne erfolg
t=0:0.1:5; y=1+2*cos(0.2*t.^2);
plot(t,y) xlabel('t[s]') ylabel('y[V]')
y2=find(y==-0.5,1)
Im Command Windows wird folgendes angezeigt y2 =
1×0 empty double row vector
Viel dank im Vorraus
0 Commenti
Risposta accettata
Niels
il 18 Gen 2017
Hi,
der Grund warum du eine leere Menge erhälst ist, dass find einen Wert in deinem Vector y2 sucht, der genau -0.5 ist. Ist sehr unwahrscheinlich, dass du den Wert "zufällig triffst". Da deine Bedingung lautet "<" solltest du also auch y<-0.5 verwenden. find wird auch den ersten index zurückgeben für die Bedingung zutrifft.
ich hätte das persönlich mit einer for oder while Schleife gelöst und bei erfüllung der Bedingung ein break gesetzt.
1 Commento
Niels
il 19 Gen 2017
Wenn du einen genaueren Wert haben willst, wann y2=-0.5 ist kann du das auch in ein Nullstellenproblem umwandeln und fzero benutzen:
f=@(x) 1+2*cos(0.2*x.^2)+0.5;
y2=fzero(f,0);
y2 wird dann allerdings mehrere Lösungen beinhalten (ist also ein Vektor) da f persiodisch ist und mehrere Nullstellen hat, bzw deine Funktion mehrmals -0.5 ist.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Curve Fitting Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!