GithubHelp home page GithubHelp logo

gg2002 / schwarz-crank-nicolson-fisher-kpp Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 2.15 MB

重叠型Schwarz算法利用Crank-Nicolson格式解Fisher-kpp方程

Python 0.29% Jupyter Notebook 99.71%
crank-nicolson schwarz fisher-kpp

schwarz-crank-nicolson-fisher-kpp's Introduction

重叠型Schwarz算法利用Crank-Nicolson格式解Fisher-kpp方程

Fisher-kpp方程有如下的形式和解析解:

Fisher-kpp Equation

这份代码解的是如下的Fisher-kpp方程: $$\frac{\partial u}{\partial t} = \alpha\frac{\partial^2 u}{\partial x^2} + \beta u(1-u)$$

这份代码使用了如下的Crank-Nicolson格式:

其中 $$f(u) = \beta u(1-u)$$ 对上式差分得

易知,在每一时间步长需要求解如下方程组:

其中 $$r = \alpha\frac{\tau}{h^2}$$ 由于 $U^n_0,U^n_{J}$ 已知且 $U^n_0,U^n_{J} \neq 0$ 简化上式得

其中

为简化表达,由于 $\overrightarrow{U}^{n}$ 已知,不妨令 $$D=B\overrightarrow{U}^{n}+\frac{\tau}{2}F(\overrightarrow{U}^{n})+C$$$D$ 已知,只需求解以下方程组: $$A\overrightarrow{U}^{n+1}-\frac{\tau}{2}F(\overrightarrow{U}^{n+1})=D$$ 考虑Newton迭代法: $$f(x)=0 \ x_{n+1}=x_n-\frac{f(x)}{f'(x)}$$ 而矩阵形式的Newton迭代法为: $$\overrightarrow{x}_{n+1}=\overrightarrow{x}_n - J^{-1}_n F(\overrightarrow{x}_n)$$ 其中

这里,使 $$G(\overrightarrow{U})=A\overrightarrow{U}^{n+1}-\frac{\tau}{2}F(\overrightarrow{U}^{n+1})-D=0$$$\overrightarrow{U}_0=\overrightarrow{U}^n$ ,则Newton迭代法过程如下:

$$\overrightarrow{U}_{n+1}=\overrightarrow{U}_n-J^{-1}_nG(\overrightarrow{U}_n)$$

其中

迭代2次就可取得不错的结果,最后令 $\overrightarrow{U}^{n+1}=\overrightarrow{U}_2$ ,进行下一个时间步长的运算。

schwarz-crank-nicolson-fisher-kpp's People

Contributors

gg2002 avatar

Stargazers

 avatar

Watchers

 avatar

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.