Skip to content

PetrPraveky/JavaMath

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaMath

This is program for some math function created by me. They are not exactly efficient, they are just for education purposses. No other information is not now provided.

Complex numbers and functions

What complex operations it can perform?

  • Nearly all my knowledge about complex numbers and their operations is taken from wikipedia: https://en.wikipedia.org/wiki/Complex_number.
  • There is also something named BigComplexNumbers. This is just complex numbers but with more precision using BigDecimal. I need it for some functions like stieltjes constants or hurwitz zeta function. It's needed because java double has small limit for those functions.
  • My algorithms for complex numbers currently supports:
    • Addition & Subtraction
    • Multiplicaton & Division
    • Square & Square root
    • Exponential function
    • Natural logarithm
    • Sine & Cosine; Tangent & Cotangent; Secant & Cosecant
    • Arctan
    • Sinh & Cosh; Tanh & Coth; Sech & Csch
    • Exponentiation
    • Mod

What complex functions are now working?

What complex function can it plot?

  • Gamma function ("src/lib/java/math/plotter/complex_function_plotter/complex_gamma_plotter.java") - Plotted thanks to domain coloring: https://en.wikipedia.org/wiki/Domain_coloring. Color is assigned to angle θ of complex number. Pictures down there are not plotted with this setting, insted there is used product of real and imaginary value as color. Its not exactly precise, but it do it's job. You can choose between printing 22k, 90k or 360k points, this picture is printed with 360k points
    plot plot
  • Zeta function ("src/lib/java/math/plotter/complex_function_plotter/complex_gamma_plotter.java") - Plotted again thanks to domain coloring with old settings. All properities stay the same as for Gamma function. Its not presize with big numbers, its just approximation for smaller numbers. You can choose to plot 5.5k, 20k, 90k, 360k points, which takes something about 10 minuts to print. This picture is prited with 360k points.
  • Beta function ("src/lib/java/math/plotter/complex_function_plotter/complex_beta_plotter.java") - Plotted with domain coloring with old settings. There are two plots. Both are plotted from -5 to 5 on both axis and. First plot of beta function B(x,y), where x = a+bi and y = b+ai (b, a are areal numbers).
    plot plot
  • Eisenstein series ("src/lib/java/math/plotter/complex_function_plotter/fourier_series/eisenstein_plotter.java") - Plotted with domain coloring with old settings. Plot of Eisenstein series with choosable value k. You can plot this with 3.7k, 14,4k or 58k points and this plot is made with 58k points. Warning - for more points it takes a huge amount of time. There are plots of G4 and G10.
    plot plot
  • Hurwitz zeta function ("src/lib/java/math/plotter/complex_function_plotter/complex_hurwitz_plotter.java") - Can be plotted with new domain coloring (described at gamma function section). It takes a huge amount of time to plot, because it's computation is pretty hard. When I add here an image of this plot, it will be made with rather unprecise values, it will take less amount of time.
  • Digamma function ("src/lib/java/math/plotter/complex_function_plotter/complex_digamma_plotter.java") - Plotted with new domain coloring algorithm. Image below is plotted with 130k points
  • Trigamma function ("src/lib/java/math/plotter/complex_function_plotter/complex_trigamma_plotter.java") - Plotted with domain coloring mencioned above. Image below is plotted with something about 90k points.
    plot plot

Trigonometric functions

Hyperbolic function

About

- Java project of math function and counting

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published