Discussion:
[SciPy-Dev] (no subject)
Qianhui Wan
2017-03-19 02:32:30 UTC
Permalink
Hi all,

I'm a senior undergraduate in US. My direction is in applied math and
numerical analysis so I want to contribute to our suborg this year :) This
is my first time to apply for GSoC.

As I mentioned above, I've already had some background in related math and
I have some experience in solving PDEs numerically with classical schemes.
In the ideas list, I'm more interested in "implement scipy.diff (numerical
differentiation)" and "improve the parabolic cylinder functions". For
programming languages, I'm a intermediate learner in Python, MATLAB and R,
also having some skills in C/C++.

If anyone can give me some tips in the requirements of these two projects
and proposal writing I'll be very appreciate, and if you have suggestions
in choosing projects or developing ideas please let me know. Thanks!

Best,
Qianhui

Qianhui Wan, senior
Fall 2016 - Spring 2017, visiting, Math Department, University of
Wisconsin, Madison, US
Spring 2016, visiting, Math Department, University of California, Berkeley,
US
Fall 2013 - Spring 2017, Math School, Sun Yat-sen University, Guangzhou,
China
Matt Haberland
2017-03-22 22:35:06 UTC
Permalink
Hi Qianhui,

I'm Matt; I'll be co-mentoring the scipy.diff project if a proposal is
selected, so my answer is geared towards that.

It seems that you have found
https://github.com/scipy/scipy/wiki/GSoC-2017-project-ideas as you
wrote "implement scipy.diff (numerical differentiation)". If you haven't
already followed the recommended reading links, I would continue with
those. Read carefully, researching things you're not familiar with.

I suggest that you adopt the liberal interpretation of 'numerical
differentiation' - the evaluation of the numerical values of derivatives -
rather than the more restrictive definition of 'finite differences'. Please
research and consider the pros and cons of the various methods of
evaluating the numerical values of derivatives, including automatic
differentiation and complex step methods.

Before writing a proposal, consider the following:
What are some common applications that require numerical derivatives, what
differentiation methods are most suitable for these applications, and how
does that information suggest what capabilities scipy.diff should have?
What algorithms can you find (in academic literature and textbooks), and
under what determines which is best for a particular application? Which can
you hope to implement, given constraints on time and expertise? (Your
mentors may not be differentiation experts - I am not - so you might have
to find answers about complicated algorithms on your own!)
What existing code can you draw from, and what shortcomings of that code
will you need to address? (Check bug reports, for example.)
With all that in mind, synthesize a schedule for creating the most useful
scipy.diff in the time you'll have available, and outline a path for future
work.

I'll say that I'm particularly interested in derivatives for nonlinear
programming, especially for solving optimal control problems using direct
methods. In particular, I have Python code for evaluating the objective
function and constraints, and accurate derivates can greatly improve
convergence rates, so automatic differentiation (AD) is the natural choice.
However, other applications may have black box functions, in which case AD
is not an option. Are there situations in which AD is not possible but
complex step methods can be used and would outperform (real) finite
differences?

You can find more general thoughts about writing good GSoC proposals
online; I but these are the things that come to my mind when I think about
a scipy.diff proposal.

Matt
Post by Qianhui Wan
Hi all,
I'm a senior undergraduate in US. My direction is in applied math and
numerical analysis so I want to contribute to our suborg this year :) This
is my first time to apply for GSoC.
As I mentioned above, I've already had some background in related math and
I have some experience in solving PDEs numerically with classical schemes.
In the ideas list, I'm more interested in "implement scipy.diff (numerical
differentiation)" and "improve the parabolic cylinder functions". For
programming languages, I'm a intermediate learner in Python, MATLAB and R,
also having some skills in C/C++.
If anyone can give me some tips in the requirements of these two projects
and proposal writing I'll be very appreciate, and if you have suggestions
in choosing projects or developing ideas please let me know. Thanks!
Best,
Qianhui
Qianhui Wan, senior
Fall 2016 - Spring 2017, visiting, Math Department, University of
Wisconsin, Madison, US
Spring 2016, visiting, Math Department, University of California,
Berkeley, US
Fall 2013 - Spring 2017, Math School, Sun Yat-sen University, Guangzhou,
China
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
--
Matt Haberland
Assistant Adjunct Professor in the Program in Computing
Department of Mathematics
7620E Math Sciences Building, UCLA
Loading...