inflection point on sum of sinusoids
1 次查看(过去 30 天)
显示 更早的评论
Hi, I have a problem that may have a neat solution but I'm not certain of the approach. I'd like to find the inflection points of a function which is the sum (superposition) of sinusoids (tidal data).Its formulated like this:
y = A1*sin(w1*t + p1) + A2*sin(w2*t + p2) + ... + An*sin(wn*t + pn)
where A1..An is the component Amplitude; w1..wn is the component frequency; p1..pn is the component phase. And each of these is known.
I think you can find the inflection by finding where the second derivative of y is zero. ie
y'' = 0 = -A1*w1^2*sin(w1*t +p1)+ A1*cos(w1*t +p1) + ..
Is there a fast way to determine the values of t (within a range) for which y'' =0? The timeseries is long (around 1 million points) so recreating the entire timeseries is time consuming.
0 个评论
采纳的回答
Andrew Newell
2015-3-3
If you define a vector A = [A1 A2 ... An], and analogous vectors w and p, then in MATLAB
y = sum(A.*sin(w*t+p));
and the second derivative is
ypp = -sum(A.*w.^2.*sin(w*t+p));
f = @(t) -sum(A.*w.^2.*sin(w*t+p));
inflection_point = fzero(f,[x0 x1])
for a solution between x0 and x1.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!