Finding all the zeroes of a discontinuous function in a particular range

3 ビュー (過去 30 日間)
Aleem Andrew
Aleem Andrew 2020 年 10 月 27 日
コメント済み: Star Strider 2020 年 10 月 27 日
I am trying to find the zeroes of the following symbolic function.
syms x
moment =20*heaviside(x - 8)*(x - 8) - (3*x^2*heaviside(x))/4 + 5*heaviside(x - 20)*(x - 20) +...
(3*heaviside(x - 20)*(x - 20)^2)/4;
fplot(diff(moment,1),[-2 20])
solve(diff(moment,1) == 0, x, 'MaxDegree', 4);
extrema = vpa(ans, 6)
subs(moment,extrema)
Matlabs outputs
extrema =
-1.0
ans =
0.0
However, the first derivative of the above moment function has a number of zeroes located at points other than -1, for example at approximately x = 13. Could someone please explain how all the zeroes or the zeroes in a particular range can be found?

採用された回答

Star Strider
Star Strider 2020 年 10 月 27 日
It may be version-dependent.
In R2020b (Update 1), I get:
extrema =
13.3333
-1.0
ans =
-26.666666666666666666666666670975
0
Plotting the function as well as the derivative:
figure
fplot(diff(moment,1),[-2 20])
hold on
fplot(moment,[-2 20])
hold off
supports those.
  2 件のコメント
Aleem Andrew
Aleem Andrew 2020 年 10 月 27 日
Thank you for your answer
Star Strider
Star Strider 2020 年 10 月 27 日
As always, my pleasure!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeEquation Solving についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by