Unable to plot two functions to find the intersection points
조회 수: 12 (최근 30일)
이전 댓글 표시
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?
댓글 수: 0
채택된 답변
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
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
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 Center 및 File Exchange에서 Title에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!