标签 matlab 下的文章

4阶泊松-费米方程数值求解

常见于离子液体等带电软物质体系的4阶泊松-费米方程:

\begin{equation} \frac{d^2\phi}{dx^2}-\delta_c^2\frac{d^4\phi}{dx^4}=\frac{\sinh \phi}{1+2\gamma \sinh^2 \phi/2}=\rho(\phi) \label{Poisson-Fermi2} \end{equation}

边界条件:

\begin{equation} \begin{split} \phi(0)=&V_0 \\ \phi'''(0)=&0 \\ \phi(\infty)=&0\\ \phi'(\infty)=&0 \end{split} \label{BC2} \end{equation}

下面我们用bvp4c 解方程,重复出文献 Double Layer in Ionic Liquids: Overscreening versus Crowding中 FIG. 2(a) 中的虚线。

依次取 $V_0=1, 10, 100$,解方程,程序如下:

- 阅读剩余部分 -

泊松-费米方程数值求解

常见于离子液体等带电软物质体系的泊松-费米方程

\begin{equation} \frac{d^2\phi}{dx^2}=\frac{\sinh \phi}{1+2\gamma \sinh^2 \phi/2}=\rho(\phi) \label{Poisson-Fermi2} \end{equation}

边界条件:

\begin{equation} \begin{split} \phi(0)=&V_0 \\ \phi(\infty)=&0 \end{split} \label{BC2} \end{equation}

下面我们用bvp4c 解方程,重复出文献 Double Layer in Ionic Liquids: Overscreening versus Crowding中 FIG. 2(a) 中的虚线。

依次取 $V_0=1, 10, 100$,解方程,程序如下:

- 阅读剩余部分 -

matlab 合并绘图,如何加图例?

用语句 legend('-DynamicLegend') 和 hold all ,请看下面的例子:

1
2
3
4
5
x=0:.01:10;
plot(x, sin(x), 'DisplayName','sin');
legend('-DynamicLegend');
hold all; % add new plot lines on top of previous ones
plot(x, cos(x), 'DisplayName','cos');

用Matlab bvp4c 解带未知参数的常微分方程边值问题,怎么给出合适的初值?



用算出来的一个结果做为初值,即continuation 方法。下面用具体的例子作为说明。例子来自Solving ODEs with Matlab

方程为:

\begin{equation*} \begin{split} f'''-R[(f')^2-ff'']+RA=&0\\ R''+Rfh'+1=&0\\ \theta ''+P_ef\theta '=&0 \end{split} \end{equation*}

边界条件为:

\begin{equation*} \begin{split} f(0)=f'(0)=&0\\ f(1)=f'(1)=&1\\ h(0)=h(1)=&0\\ \theta(0)=&0\\ \theta(1)=&1 \end{split} \end{equation*}

方程描述流体描述流体流过竖直管道的问题,其中 $R$ 为常数,在模型中为雷诺数。常数$P_e=0.7R$,在模型中为佩克莱特数。$A$ 为我们要计算的未知常数。

给定 $R=100, 1000, 10000$,分别解方程。$R=100$时,很容易得到结果,$R=1000, 10000$时程序不收敛,可以把$R=100$时的结果作为初值代入,则顺利得到结果。

下面给出两个程序。

- 阅读剩余部分 -

用Matlab bvp4c 解带未知参数的常微分方程边值问题




要求解的方程选自Data-Driven Modeling Scientific Computation 一书的§7.7。

方程为:

\begin{equation*} y''+(100-\beta)y+\gamma y^3=0 \end{equation*}

边界条件:

\begin{equation*} \begin{split} y(-1)=&0\\ y(1)=&0\\ y(-1)=&0.1 \end{split} \end{equation*}

给定$\gamma=1$ 解 $\beta$ 和 $y(x)$。

程序如下:

- 阅读剩余部分 -