2018年5月
社会物理学
原文链接:Sociophysics
原作者:Frank Schweitzer,瑞士苏黎世联邦理工学院系统设计系教授。
本文已发表于《世界科学》杂志。
如果社会个体之间的相互作用可以描述,那么社会集体行为可以建模和分析。
用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)$。
程序如下:
动物集体行为背后,到底是何机制?
为《知识分子》翻译的文章,链接为: