Why is there a jagged line when I plot this function?
조회 수: 7 (최근 30일)
이전 댓글 표시
Hi guys,
I am trying to plot an implicit function and am getting strange results. I understand the smooth part of the function, but not the jagged part. Why is the jagged part there at all? Also, what can I do to eliminate it?
Here's the code:
f1=(@(x,y) (5.*y.^(1./2) -3)./(2.5.*y.^(1./2)+2.5.*x.^(1./2)-3)-y);
fimplicit(f1,[0 4 0 4],'black')
댓글 수: 0
답변 (2개)
tmarske
2020년 3월 16일
It's because fimplicit is using too few evaluation points, resulting in too coarse an interpolation (by default it uses 151). You can override this using the 'MeshDensity' argument:
f1=(@(x,y) (5.*y.^(1./2) -3)./(2.5.*y.^(1./2)+2.5.*x.^(1./2)-3)-y);
fimplicit(f1,[0 4 0 4],'black', 'MeshDensity', 5000)
댓글 수: 6
Walter Roberson
2020년 3월 17일
편집: Walter Roberson
2020년 3월 17일
If you have the symbolic toolbox, you can solve f1 for x in term of y to get a single x for each y. you can then linspace() for y and put those through the equation to derive x, and then plot(x,y)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!