Opened 10 years ago
Last modified 8 months ago
#7165 needs_review defect
sage fails to plot a quarter circle when it should
Reported by: | fmaltey | Owned by: | was |
---|---|---|---|
Priority: | major | Milestone: | sage-duplicate/invalid/wontfix |
Component: | graphics | Keywords: | |
Cc: | kcrisman | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
I use sage 4.1.2alpha4. This plot is right with this version :
parametric_plot([real(exp(i*m)),imaginary(exp(i*m))],m,0,7)
I apply the patch 7122 by copy/paste in emacs and run sage -br. Now this plot is also right, it draw a half-circle :
parametric_plot([real(m+sqrt(m^2-1)),imaginary(m+sqrt(m^2-1))],m,-5,5)
I also get it by this function :
def solve2pplot (eq) : return [real(eq.rhs()),imaginary(eq.rhs())] res = solve(z^2+2*m*z+1,z) parametric_plot (solve2pplot (res[0]), m, -5,5)
Now I solve this 4 degree equation. The solve is right with sqrt at 2 levels.
But I get an error in the parametric_plot :
res = solve(z^4+2*m*z^2+1,z) parametric_plot (solve2pplot (res[0]), m, -5,5)
The local solve2pplot(res[0])
generates a long formula.
real axe and imaginary axe are right.
But sage doesn't plot the quarter-circle between axes at position 1=(1,0) and i=(0,1) and claims failed to evaluate function at 40 points
. So the plot is a line between the 2 axes.
Change History (10)
comment:1 Changed 10 years ago by
- Milestone changed from sage-4.1.2 to sage-4.1.3
comment:2 Changed 10 years ago by
- Summary changed from an other bug in plot, real_part, imaginary_part and sqrt. to a
comment:3 Changed 10 years ago by
- Report Upstream set to N/A
- Summary changed from a to sage fails to plot a quarter circle when it should
The plot (real(sqrt(m)+i+1),m,-3,3)
now works, probably as a result of #7614. However, I don't think the original question is addressed.
comment:4 Changed 9 years ago by
- Cc kcrisman added
comment:5 Changed 6 years ago by
- Milestone changed from sage-5.11 to sage-5.12
comment:6 Changed 6 years ago by
- Milestone changed from sage-6.1 to sage-6.2
comment:7 Changed 6 years ago by
- Milestone changed from sage-6.2 to sage-6.3
comment:8 Changed 5 years ago by
- Milestone changed from sage-6.3 to sage-6.4
comment:9 Changed 8 months ago by
- Milestone changed from sage-6.4 to sage-duplicate/invalid/wontfix
- Status changed from new to needs_review
Now this does work
m = SR.var('m') parametric_plot([real(exp(i*m)),imaginary(exp(i*m))], (m,0,7))
comment:10 Changed 8 months ago by
This needs a doctest.
I browse the two previous expressions real(...) and imaginary(...), and test real(sqrt(...)).
Theses calculus are right and remain real.
But this one is the shorter that contains complex expressions :
The outer sqrt(...) assume that the inner sqrt is obvious ; so sqrt(m)+i+1 remains, even if it's a complex expression. Then plot fails with this internal complex computation.