Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plotting External Rays on the Mandelbrot Set #23425

Closed
bbarros50 mannequin opened this issue Jul 13, 2017 · 12 comments
Closed

Plotting External Rays on the Mandelbrot Set #23425

bbarros50 mannequin opened this issue Jul 13, 2017 · 12 comments

Comments

@bbarros50
Copy link
Mannequin

bbarros50 mannequin commented Jul 13, 2017

This is the second ticket for my Google Summer of Code project (the first was #23257: Plotting the Mandelbrot set). I have added the external_ray function to the Complex Dynamics folder. This function allows the user to pass in an angle or list of angles and returns the plot of the external rays for the given angles on the Mandelbrot set. For more information on my Google Summer of Code Project you can visit the following link: ​https://benbarros.wordpress.com/

Depends on #23257

CC: @bhutz @sagetrac-atowsley

Component: dynamics

Keywords: GSoC2017, ComplexDynamics

Author: Ben Barros

Branch/Commit: 7a7d890

Reviewer: Ben Hutz

Issue created by migration from https://trac.sagemath.org/ticket/23425

@bbarros50 bbarros50 mannequin added this to the sage-8.1 milestone Jul 13, 2017
@bbarros50 bbarros50 mannequin added c: fractals labels Jul 13, 2017
@bbarros50
Copy link
Mannequin Author

bbarros50 mannequin commented Jul 13, 2017

Branch: u/bbarros/23425

@bbarros50
Copy link
Mannequin Author

bbarros50 mannequin commented Jul 13, 2017

Commit: 6280217

@bbarros50
Copy link
Mannequin Author

bbarros50 mannequin commented Jul 13, 2017

Last 10 new commits:

6a9f95323257: Fixed documentation and syntax
f74fac8Merge branch 'master' into 23257
e1a379123257: Changed to lazy_import in complex_dynamics/all.py
1afa33223257: Fixed merge conflict and doctests
9b6738b23257: Cython, Python 3 improvements, Color widget added
a1d02e423257: Changed fast_mandel_plot to fast_mandelbrot_plot
8aae69c23257: Changed default for interact to False
f52fb3f23257: Added complex_dynamics to dynamics/index.rst
607cc2dMerge branch 'develop' of git://trac.sagemath.org/sage into ExternalRays
628021723425: Added external_ray function, helper functions.

@bbarros50 bbarros50 mannequin added the s: needs review label Jul 13, 2017
@bhutz
Copy link

bhutz commented Jul 16, 2017

comment:3

I haven't had a chance to do much testing yet. So far it appears to work well in the notebook, but I need to do a thorough code review. Here is at least one error:

sage: external_ray(3/7,D=70)
ValueError: cannot convert float NaN to integer

if you zoom in, it looks like something is going wrong with the later Newton's methods

sage: external_ray(3/7,D=60, image_width=0.1, x_center=-1.75)

here are a few minor things I picked out:

  • need to input check 0<= ray <=1

  • need to wrap the long lines (90 characters is the typical limit)

  • add a ray color example

  • change the first long example to a decimal

  • in warning:

    • typo 'specify the which'
  • you shouldn't need to keywords for the mandelbrot set here.

It would be cleaner to default image to None. Then after you .pop image you check if 'is None' and if true mandelbrot_plot. If you use .get() instead of .pop() you can pass kwds directly to mandelbrot_plot.

  • you can just say, theta = list(theta) instead of
    if type(theta) != list:
        theta = [theta]
  • put something in the doc about: if the ray doesn't reach the boundary increase D, if the ray looks jagged increase S. Has a speed penalty

@bhutz
Copy link

bhutz commented Jul 16, 2017

Reviewer: Ben Hutz

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 26, 2017

Changed commit from 6280217 to 9aabbed

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 26, 2017

Branch pushed to git repo; I updated commit sha1. New commits:

9aabbed23425: Bug fixes, edited examples

@bbarros50
Copy link
Mannequin Author

bbarros50 mannequin commented Jul 26, 2017

comment:6

The following code didn't work:

theta = list(theta)

Since it returns the following error:

TypeError: 'sage.rings.integer.Integer' object is not iterable

@bbarros50 bbarros50 mannequin added s: needs review and removed s: needs work labels Jul 26, 2017
@bhutz
Copy link

bhutz commented Jul 27, 2017

comment:7

Just one very minor comment

In the description of the input R there is an extra word or something. Also, I'd add the comment similar to the other parameters that if R is too small Newton's method may not converge to the correct ray.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 27, 2017

Branch pushed to git repo; I updated commit sha1. New commits:

7a7d89023425: Updated documentation

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 27, 2017

Changed commit from 9aabbed to 7a7d890

@vbraun
Copy link
Member

vbraun commented Aug 4, 2017

Changed branch from u/bbarros/23425 to 7a7d890

@vbraun vbraun closed this as completed in bf9df0d Aug 4, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants