Wie Bestimme ich ein t-Wert bei dem als erstes der Wert y2=-0.5) unterschritten wird numerisch ?
4 次查看(过去 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!