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?

 Réponse acceptée

Adam Danz
Adam Danz le 15 Nov 2019
Modifié(e) : Adam Danz le 16 Nov 2019

6 votes

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 commentaires

Daniel Matthew
Daniel Matthew le 15 Nov 2019
Thank you!
Adam Danz
Adam Danz le 16 Nov 2019
@Daniel Matthew, I just added "Method 1" to my answer. It uses the Symbolic Math Toolbox to solve your equation for y=0 and therefore does not depend on a 3rd party FEX function.
Abdennaser Hadab
Abdennaser Hadab le 15 Oct 2022
The second method pops an error:
Undefined function 'intersections' for input arguments of type 'double'.
Any idea what is wrong?
Adam Danz
Adam Danz le 17 Oct 2022
@Abdennaser Hadab, the sentence under the "Method 2" heading tells you the answer and has a link :)
Abdennaser Hadab
Abdennaser Hadab le 18 Oct 2022
Modifié(e) : Abdennaser Hadab le 18 Oct 2022
@Adam Danz thanks, I have been a bit confused but I realized I needed to download the file and put it in the same folder where my .m file is in order to call for the function with no issues.
I did not know I had to do this.
Adam Danz
Adam Danz le 18 Oct 2022
@Abdennaser Hadab, you figured it out! You can either add the file to the same folder containing the main m-file or you can store the file anywhere and make sure you add the path to the file using addpath in the m-file.
Abdennaser Hadab
Abdennaser Hadab le 19 Oct 2022
@Adam Danz thank for the tip!
Shyamini
Shyamini le 24 Jan 2024
@Adam Danz Thank you so much!! this helped tremendously

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange

Produits

Version

R2019b

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by