Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

GSoC 2012 Application Saurabh Jha: Implementing Algorithm for Series Expansion

Sean Vig edited this page · 1 revision
Clone this wiki locally

IMPLENTING ALGORITHM FOR SERIES EXPANSION

NAME: Saurabh jha UNIVERSITY/CURRENT ENROLLEMENT: Guru Nanak Dev University, Gurdaspur, India Computer Science and Engineering 2nd year student

ABSTRACT: Sympy is a computer algebra system implemented in Python. Currently, Sympy is using Gruntz algorithm for series expansion, which is not suitable for certain kinds of expressions{for example-nested expressions}. My proposal is to implement Manuel Kauer's algorithm described in the abstract and poster "Computing Limits of Sequences".

BENEFITS TO COMMUNITY: 1. The implentation of this algorithm can find limits to some series (like nested sums and products) which current algorithm cannot do at all. 2. It can provide help in the implementation of new algorithms (like limits of reimenn sums for calculating integrals) 3. It can facilitate in some calculations HOW IT WILL BE DONE: The implentation of this algorithms breaks up into following subtasks: 1. Implenting a function for l' hospital' s rule A function for discrete analogan to l'hospital's rule is to be implemented. This implementation in turn needs other functions: 1.1 checking numerator and denominator We need a function to check if numerator and denominator approaches infinity as n approaches infinity. This function can be implemented by finding the derivative of numerator and denominator separately using diffrentiation module and checking if the derived functions are greater than zero or not. 1.2 Δ operator We need to define Δ operator along with all it's properties(addition, subtraction, multiplication and division) are needed to be implemented. Checking that denominator is asympotically strictly montonous Since this algorithm only works if the denominator is asympotically strictly monotonous, we need a function to check it as well.

  1. A function for finding dominant terms of expansions We need a function to find the dominant terms of both numerator and denominator. We can implement this function by the following algorithm-

  2. Take the first term of the expression

  3. Divide it with following term

    if the ratio appraches infinity as n approaches infinity:

    go to step 2

    else

    go to step 1 and try the algorithm with next term

SUCCESS CRITERIA: The Kauer's abstract gives some examples under the heading “Some Examples”, which can be used to test if the algorithm is correctly working or not.

TIMELINE: BEFORE 21st of may Familirising myself completely with the codebase, Reading documentation in more depth, getting input and feedack from sympy community, attaining more mathematical background, if required First 3 weeks Implenting the following functions- - A function to check if numerator and denominator approaches infinity as n appraches infinity. - A function to check if the denominator is asympotically strictly monotonous. 3rd to 6th week - Implementing a function for finding dominant terms of expansions - Implenting Δ operator along with all it's properties. 6th to 9th week - Implementing the main algorithm using these functions 9th to 12th week -Checking inconsistensies -Writing documentation

ABOUT ME: I am studying Computer Science and Engineering at Guru Nanak Dev University, Gurdaspur, India. I am in my second year. I am pretty much intrested in mathematics. In my high school, I had studied calculus for single variable. In college, I studied multivariable calculus as well as infinite series. I introduced myself to programming with lisp from Structure and Interpretation of Computer Programs and moved to Python from Peter Norvig's article "Python for Lisp Programmers." I have read manuel kauer's abstract and poster “Computing limits of series” and completely understood the main points of the paper. I have no other commitements besides summer of code this summer, so I can devote myself fully to the work.

Something went wrong with that request. Please try again.