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
0 件のコメント
採用された回答
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
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 Exchange で Curve Fitting Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!