Coder Social home page Coder Social logo

darkeclipz / calcupy Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 1.65 MB

Calculus powered graphical calculator.

Python 39.55% HTML 24.29% Batchfile 0.27% CSS 2.10% JavaScript 33.79%
sympy cas math mathematics algebra calculus linear-algebra symbolic-computation symbolic computation

calcupy's Introduction

Hello, and welcome to my GitHub repository! ๐Ÿ‘‹

I have lots of repositories with completed projects, uncompleted projects, proof-of-concepts, ideas, and course notes.

To make this a bit more navigatable, this is a list of my most interesting projects. Not all projects are finished, and actually, when is software really finished?

C#

Python

JavaScript/TypeScript

GLSL

My ShaderToy profile contain many more GLSL doodles.

Machine Learning/Statistics

C++

Other

Other

Competitions

  • Participated in Google Hash Code 2020 and got rank 366 out of 10,724 participants world wide and rank 6 out of 141 participants in The Netherlands, with a total score of 26,883,344.

calcupy's People

Contributors

darkeclipz avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

calcupy's Issues

Parametric curves

Support for two and three dimensional parametric curves.

A paramatric curve can be recognized if the expression is a 2x1 or 3x1 matrix with a single variable.

Degree matrix

The function that creates the degree matrix counts self-loops as 1 degree, this should be 2.

Extensions

  • csp solver
  • lp solver
  • gradient descent (1+ var)
  • graph theory
  • mst
  • tsp

Support for statistics

Add basic functionality for statistics. No support for categorical data.

If an expression is 1,2,3,4,5,6,7 it is a list X.
If an expression is [1,2,3,4], [5,6,7,8] it is a list of pairs X and Y.
If an expression is [1,2,3], [4,5,6], [7,8,9] is a list of pairs X, Y, and Z.

  • Box plot (1, 2, or 3 boxplots)
  • Scatter plots (2D/3D)
  • Histogram (only for X)
  • Summary (mean, sd, ...)
  • Correlation between X and Y (or X~Y, X~Z, Y~Z)
  • Linear regression
  • Quad. regression
  • Testing distributions (normal, exp, pois, ...)
  • Other tests...

List generators

There should be a few functions that generate a list of elements.

See: https://stackoverflow.com/questions/27960965/parsing-an-equation-with-custom-functions-in-python

Possible generators are:

  • Range(a,b,n,step)
  • Random(a,b,n)
  • Repeat(what, n)
  • Normal(mean, sd, n)
  • Exp(a, n)
  • Poisson(lambda, n)
  • Bin(pi, n)

Either the generator is expanded client-side (with javascript), but preferable the API should be able to evaluate custom functions. In the latter case, this also makes it possible to support other functions such as statistical distributions, e.g. InvNorm(0.95, mean, lambda), NormalCdf(-inf, 10, mean, sd), ...

Directional derivatives

Support for directional derivatives. For functions of two variables.

  1. Select point and a direction (angle, vector, or use gradient).
  2. Draw a surface plot with the directional derivative.
  3. Find the line and create a line plot.

Vector fields

Support for vector fields. Create a plot of the vector field.

Extremas

Find extremas (minima/maxima) of a function. For function with one or two variable(s).

  • For functions with one variable, an interval should be defined for the global extrema.
  • For functions with two variables, a region should be defined for the global extrema.
  • Create a plot (line plot / contour plot) and mark the extremas.

Matrices

Add support for matrices.

  • Gaussian elimination to solve the system.
  • Find the transpose.
  • Find the inverse.
  • Find the determinant.
  • Find the eigenvectors and eigenvalues.
  • For 2x2 matrices: create a plot to show the transformation.
  • Detection and methods for markov matrices?

Support for graphs

Add support for graphs.

A graph G can be represented with an adjacency matrix of G. If the matrix is symmetrical the graph is undirected. If the coefficients of the matrix are only 0 or 1, then G is an unweighted graph.

Determine basic properties from Graph Theory:

  • Degrees of G, diameter of G, connected components of G, Cycles, Bipartite, Eulerian cycles, semi-Eulerian cycles, Hamilton cycles, semi-Hamilton cycles, trees (MST), shortest path heuristic.
  • Plotting can be with a spectral graph plot, or try to implement a visualization with GraphViz.

Gradient search procedure (optimization)

Implement a gradient search procedure which requires any function of 1 or more variables, and a starting point. Then find the local minima or maxima for that point with the gradient descent procedure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.