Wie Bestimme ich ein t-Wert bei dem als erstes der Wert y2=-0.5) unterschritten wird numerisch ?

5 ビュー (過去 30 日間)
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

採用された回答

Niels
Niels 2017 年 1 月 18 日
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 件のコメント
Niels
Niels 2017 年 1 月 19 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCurve Fitting Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by