分类 默认分类 下的文章

用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$时的结果作为初值代入,则顺利得到结果。

下面给出两个程序。

- 阅读剩余部分 -

拍的音频演示

一个质点同时做两个简谐振动,两个简谐振动的方向在同一直线上,但频率略有不同,假设振幅相同,初相位都是0。假设两个简谐振动分别为

\begin{equation*} x_1=A\cos (\omega_1 t) \end{equation*}

\begin{equation*} x_2=A\cos (\omega_2 t) \end{equation*}

则合振动为

\begin{equation*} x=x_1+x_2=A\cos (\omega_1 t)+A\cos (\omega_2 t)=2A\cos\left(\frac{\omega_1-\omega_2 }{2} t\right)\cos\left(\frac{\omega_1+\omega_2 }{2}t \right) \end{equation*}

如果$latex \omega_1 \approx \omega_2$,于是$\omega_1-\omega_2 \ll \omega_1+\omega_2$,所以合振动可看作是振幅缓变的近似简谐振动。合振动振幅周期变化的现象叫,合振幅每变化一个周期叫做一拍。

下面通过声音演示一下拍现象。声音来自密歇根大学音乐物理讲义

两频率分别为100Hz和120Hz的声音,如下图所示:

两声音叠加,可听到
[audio wav="http://joyfulphysics.scholarnet.cn/wp-content/uploads/2016/04/beatdemo.wav"][/audio]

上述文件中依次听到100Hz和120Hz的声音之后才是拍的声音。

下面是从Youtube上下载的演示视频