Skip to main content

Split Newton Solver

Project description

SplitNewton

Downloads Coverage

Bounded, SPLIT Newton with pseudo-transient continuation and backtracking

Good for ill-conditioned problems where there are two different sets of systems

Particular applications include

What does 'split' mean?

The system is divided into two and for ease of communication, let's refer to first set of variables as "outer" and the second as "inner".

  • Holding the outer variables fixed, Newton iteration is performed till convergence using the sub-Jacobian

  • One Newton step is performed for the outer variables with inner held fixed (using its sub-Jacobian)

  • This process is repeated till convergence criterion is met for the full system (same as in Newton)

How to install and execute?

Just run

pip install splitnewton

There is an examples folder that contains a test function and driver program

How good is this?

Consider the test problem

$\lambda_{a} = 10^{6}$, $\lambda_{b} = 10^{2}$

and the second system $\lambda_{c} = 10^{-1}$ $\lambda_{d} = 10^{-4}$

and using logspace for variation in $\lambda_{i}$

$$ F(u) = \lambda_{a} u^{4}{1} + ... + \lambda{b} u^{4}{\lfloor N/2 \rfloor} + \lambda{c} u^{4}{\lceil N/2 \rceil} + ... + \lambda{d} u^{4}_{N}$$

$$ J(u) = 3 * \begin{bmatrix} \lambda_a & \dots & 0 & 0 & \dots & 0 \newline \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \newline 0 & \dots & \lambda_b & 0 & \dots & 0 \newline 0 & \dots & 0 & \lambda_c & \dots & 0 \newline \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \newline 0 & \dots & 0 & 0 & \dots & \lambda_d \end{bmatrix} u^{2} $$

For N=5000 (with no backtracking and pseudo-transient continuation),

Method Time Iterations
Split Newton 20 seconds 45
Newton not converged > 1 min NA

How to test?

You can run tests with the pytest framework

The coverage reports can be generated with pytest-cov using pytest --cov=splitnewton

Whom to contact?

Please direct your queries to gpavanb1 for any questions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SplitNewton-0.2.1.tar.gz (7.5 kB view details)

Uploaded Source

File details

Details for the file SplitNewton-0.2.1.tar.gz.

File metadata

  • Download URL: SplitNewton-0.2.1.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.1

File hashes

Hashes for SplitNewton-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6ebb83fa1d3f5cf4f5084bf32d322d7774f46ed029e19fb1d0e32232aa4235a8
MD5 dbd1352d70feb345471da9381fc29d8d
BLAKE2b-256 6cdd8e1caf48aa9ade0437eda0b7e53351b78b5d49e556f6c76b350c03f30d18

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page