Marking x intercepts on graph

297 ビュー (過去 30 日間)
Daniel Matthew
Daniel Matthew 2019 年 11 月 15 日
コメント済み: Shyamini 2024 年 1 月 24 日
Sorry everyone. I'm pretty new to matlab. My question was to graph an equation V against x for -4</= x </=4
This is the code I came up with:
x=linspace(-4,4);
V=(x.^3/3)-4*x;
plot(x,V)
xlabel('Position'),ylabel('Potential Energy')
I need to mark the x-intercepts on the graph. How do I go about doing that?

採用された回答

Adam Danz
Adam Danz 2019 年 11 月 15 日
編集済み: Adam Danz 2019 年 11 月 16 日
Method 1: solve equation for y=0
Use the Symbolic Math Toolbox to solve for y=0; see inline comments for details.
% Solve for y=0
syms x
eqn = x.^3/3-4*x == 0;
xInt = double(solve(eqn)); % X values where y=0
yInt = zeros(size(xInt)); % Corresponding y values (all 0)
% plot function and x-intercepts
x=linspace(-4,4);
V=(x.^3/3)-4*x;
plot(x,V,'k-')
hold on
plot(xInt,yInt, 'm*','MarkerSize', 10)
yline(0)
Method 2: use intersections() to find x-intercepts
This uses the intersections() function from the file exchange to find the (x,y) coordinates of the x-intercepts.
x=linspace(-4,4);
V=(x.^3/3)-4*x;
[xInt,yInt] = intersections(x,V,x,zeros(size(V)));
% ^^ ^^ There are your intercept coordinates
plot(x,V,'k-')
hold on
plot(xInt,yInt, 'm*','MarkerSize', 10)
yline(0)
Both methods produce this figure
  8 件のコメント
Abdennaser Hadab
Abdennaser Hadab 2022 年 10 月 19 日
@Adam Danz thank for the tip!
Shyamini
Shyamini 2024 年 1 月 24 日
@Adam Danz Thank you so much!! this helped tremendously

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeInteractive Control and Callbacks についてさらに検索

タグ

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by