Unable to plot two functions to find the intersection points

조회 수: 12 (최근 30일)
ImNew Matlab
ImNew Matlab 2012년 11월 6일
Here is what I'm doing:
x=linspace(0, 1);
y1=abs(x).^-5 .* exp(x.^2) - atan(9976+1000);
y2=besselj(0,x);
plot(x, y1, x, y2);
When I plot this I get a graph with one line. How do I get both lines and then find there intersection points?

채택된 답변

Matt Fig
Matt Fig 2012년 11월 6일
편집: Matt Fig 2012년 11월 6일
Try this way. You have to pay attention to the ylimits!
x=linspace(0, 5,1000);
y1=abs(x).^-5 .* exp(x.^2) - atan(9976+1000);
y2=besselj(0,x);
plot(x, y1, x, y2);
ylim([-10 10]) % Set the ylimit to a reasonable value!
Now you can look and guess at their intersection points. Say about x=1 and x=2. We can use FZERO to get a more exact location.
f = @(x) besselj(0,x)-(abs(x).^-5 .* exp(x.^2) - atan(9976+1000));
[fzero(f,1),fzero(f,2)]
  댓글 수: 2
Azzi Abdelmalek
Azzi Abdelmalek 2012년 11월 6일
Thanks Matt, I thought x=linspace(0, 1) generate just two values. Next time I will check before writting false things
Matt Fig
Matt Fig 2012년 11월 6일
No worries, Azzi. My first thought was the same as yours, it is only because I remember checking this once that I knew...

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Title에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by