Plan for gsoc solvers project ...

93 views
Skip to first unread message

Muhammed abdul Quadir owais

unread,
Mar 9, 2020, 1:53:30 AM3/9/20
to sympy

Plan for gsoc solvers project



Overview: 


As per my knowledge linsolve, nonlinsolve(except trigonometric/transcendental equations) and solve_decomposition are already in a fully fledged mode and further we just need this functionality to be integrated with solveset .



So what I’ve decided is to integrate(link) solvers (linsolve, nonlinsolve, solve_decomposition) to solveset and resolve related (conflicting) dependencies over different modules (if we encounter). And further adding respective helper, check functions hence optimally designing the structure, ultimately to get faster solution. Finally an integrated form of linsolve, nonlinsolve, solve_decomposition, parallel with building respective set infrastructure( could be image set or multidimentional image set according to the nature of solution obtained ) can be established .


So the timeline could be anticipated as …


PHASE 1:

First week : 


Refactor the lambert equation (where I tried to do left part of {lambert solver for transolve #14972}  in {Rearranged Lambert solvers and resolving conflicting files #18759} . Here in this I tried to integrate some parts with _tsolve and solve to get outputs of failed tests in lambertW)



Second week : 


Here in modular equations, already it’s in  complete swing and no further work is required. Hence, it just have to be integrated with transolve function and resolve any resulting conflicts.



Third week : 


As mentioned above in overview, linear solve is to be integrated with solveset .



Fourth week : 


Documenting and finishing the remaining work .



1st week  : refactoring lambert equation (pr)

2nd week : modular equations 

3rd week  : linear solve

4th week  : documentation and left part 



PHASE 2:


Fifth week : 


solve_decomposition is to be integrated with solveset as mentioned in overview.



Sixth and Seventh week : 


In nonlinearsolve we have two tasks 

1. To make it more effective/improve in terms of trigonometric/transcendental equations which could be done through integrating effectively through solve function ( where it is able to solve this most of trigonometric/transcendental as it claims ) and finally manipulate optimally and more closely to develop this , and if it is not further able to solve then we have to add some bridges to make it fully fledged.

2.  To integrate this with solveset (as in overview).



Eight week:


Documenting and finishing the remaining work .

5th week : solve_decomposition

6th week : non lin

7th week : non lin

8th week : documentation and left part



PHASE 3:


Ninth and Tenth week : 


1. The differentiation of  complex and real part of solution and making of set infrastructure accordingly throughout code base where ever this might create conflicts more optimally.


Eleventh week and Twelfth week :

1. Documenting and finishing the remaining work .

2. Try to solve related issues or handle any unforeseen issue if encounter.


 9th week  : complex domain

10th week : complex domain

11th week : remaining part and documentation

12th week : try to solve related issues or handle any unforeseen issue if we come across



Problems which I came through :


1.  _is_lambert is not much perfect it should to be developed more, since it doesn’t return ‘pow’ rather ‘mul’ for 2a^x ( or 2*a**x) hence such expressions are not ultimately considered as lambert hence we obtain no lambert solution.


2.  It allows cos^3, sin^3 (or cos**3 , sin**3 ) as _is_lambert since it comes under pow, hence it is returning True , finally distorting the result by taking sin , cos as _is_lambert.






Sympy community, please give me suggestions and opinions on this rough estimated proposal .

Aaron Meurer

unread,
Mar 9, 2020, 4:26:23 PM3/9/20
to sympy
On Sun, Mar 8, 2020 at 11:53 PM Muhammed abdul Quadir owais
<quadiro...@gmail.com> wrote:
> parallel with building respective set infrastructure( could be image set or multidimentional image set according to the nature of solution obtained ) can be established .

I would discuss this point in more depth. I think a large reason why
multivariate solvers aren't implemented in solveset yet is that it
isn't clear how to represent the solutions.

Aaron Meurer

Muhammed abdul Quadir owais

unread,
Mar 9, 2020, 8:06:25 PM3/9/20
to sympy
IMO , it could be done in 2 ways 
1, We could just represent this in matrix form (lists in lists) and ultimately the solution of each dimension in each matrix .
2.  Extend the set by comma's and have the solutions after each comma as in figure....


Screen Shot 2020-03-10 at 5.33.52 AM.png

Muhammed abdul Quadir owais

unread,
Mar 9, 2020, 9:02:21 PM3/9/20
to sympy

I think we should separately design a function for this ...

Muhammed abdul Quadir owais

unread,
Mar 10, 2020, 8:16:19 PM3/10/20
to sympy
I think the work is also done on set infrastructure with nonlinsolve, linsolve, and solve_decompostion  there's no further requirement for this also , if necessary to get more vivid solutions for multivariate should work on this, as I proposed the 2 ways of it ...
I want to have opinion on this, for more better solution or any dark sides of doing the way I proposed it..

Looking forward for reply from sympy community :)
Reply all
Reply to author
Forward
0 new messages