Demo entry 6353189

good

   

Submitted by Max Yao on Mar 31, 2017 at 04:07
Language: Matlab. Code size: 3.0 kB.

\documentclass[UTF8]{ctexart}

\title{常微分方程数值解}
\author{姚雨星~2015011861}
\date{2017 3 8}

\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{geometry}
\usepackage{listings}

\geometry{left=3cm,right=3cm,top=3cm,bottom=3cm}
\lstset{language=Matlab}
\lstset{breaklines}

\begin{document}
  \maketitle
  \tableofcontents
  \section{实验目的}
    \noindent
    1 练习数值微分的计算;\\
    2 掌握用MATLAB 软件求微分方程初值问题数值解的方法;\\
    3 通过实例学习用微分方程模型解决简化的实际问题;\\
    4 了解欧拉方法和龙格-库塔方法的基本思想和计算公式及稳定性等概念。\\

  \section{Ch4P5~放射性废物处理}
    \subsection{建模与分析}          					本题的数学模型是一个质点在流体粘滞力下的运动,粘滞力和速度呈正比。通过列出物理学的运动常微分方程,代入初值条件可以解出质点位移和速度对时间的关系的解析解或者数值解,再计算当位移达到300ft时,速度是否超过题目给出的40ft/s,从而推断圆桶子是否会破裂。该方程是一个简单的分离变量方程。
    \subsection{数学方法的应用和计算}
      \paragraph{理论计算}  
	    该运动的理论计算如下:设G为物体所受重力,F为物体所受浮力,m为物体的质量,x为运动位移,v为运动速度,k为粘滞力比例系数,根据运动学基本规律,
        \begin{gather}
          \frac{dx}{dt}=v\\
          \frac{dv}{dt}=\frac{G-F-kv}{m}
        \end{gather}
        积分,并代入初值条件$v(0)=x(0)=0$,可以得到解析解
        \begin{gather}
          v=\frac{G-F}{k}(1-e^{-kmt})\\
          x=\frac{G-F}{k}(t-\frac{1}{km}+\frac{e^{-kmt}}{km})
        \end{gather}
        在$x=300$时,解出$t=13.3s$,代入速度表达式得到$v=44.6ft/s>40ft/s$,超过了理论极限速度,因而有可能与海底发生冲撞而破裂。
      \paragraph{Matlab实现}Matlab自带的常微分方程组数值解工具,编程求解在一段时间内的速度和位移,得到一系列数据,并找到在$x=300$时对应的速度,看是否超过最高值。详细方法和结果如下。
    \subsection{程序运行及结果分析}
      \includegraphics{P5_graph.PNG}\\
      \includegraphics{P5_result.PNG}\\
      结果如上。可以直观看出在位移达到300ft时速度已经明显超过了40ft/s,因而这场官司工程师胜出。
    \subsection{源代码}
    \lstinputlisting{xx.m}\lstinputlisting{xx.m}%

\section{Ch4P6 小船渡河}
\subsection{建模与分析}
通过速度矢量分析,建立xy坐标关于时间t的运动微分方程,并分别用数值和解析的方法解方程,绘制运动轨迹,比较结果。
\subsection{数学方法的应用和计算}
\includegraphics{P6_graph1.PNG}
简要示意图如上。以终点为原点建立直角坐标系,竖直方向为y轴,水平方向为x轴,在任意时刻船的运动可以用一下两个微分方程来刻画:
\begin{gather}
\frac{dx}{dt}=v_1-\frac{xv_2}{\sqrt{x^2+y^2}}\\
\frac{dy}{dt}=\frac{-yv_2}{\sqrt{x^2+y^2}}\\
\end{gather}
初始值条件为$x(0)=0,y(0)=-d$.
在上两式中消去dt,进行整理,可以得到
\begin{equation}
\frac{ydx-xdy}{y^2}=\frac{v_1}{v_2}\sqrt{1+(\frac{x}{y})^2}dlny\\
\end{equation}x/y=z,方程变为
\begin{equation}
\frac{dz}{1+z^2}=-\frac{v_1}{v_2}dlny\\
\end{equation}
方程两侧对zy分别积分,再带入z=x/y,可以得到最终解析表达式
\begin{equation}
\sqrt{1+(\frac{x}{y})^2}=-\frac{v_1}{v_2}ln(\frac{-y}{d})\\
\end{equation}
以上即为运动的解析解。根据解析解可以算出小船渡河时间为67秒。要得到matlab数值解,思路相同,只需使用matlab自带的龙格库塔方法即可,具体解法如下。
\subsection{程序运行及结果分析}
小船运动轨迹图\\
\includegraphics{P6_graph2.PNG}\\
小船运动位移-时间图\\
\includegraphics{P6_graph3.PNG}
如图,在67秒左右的时候小船将到达对岸终点,轨迹如上所示,与解析解接近。\\
变更速度,只需在matlab中修改参数,看看情况是否有所改变:\\
当$v_1=0 m/s$时,小船将直线到达终点。时间为50s\\
当$v_1=0.5 m/s$时,小船轨迹如下,到达终点需要53.5s\\
\includegraphics{P6_graph4.PNG}\\
当$v_1=1.5 m/s$时,小船轨迹如下,到达终点需要114.3s\\
\includegraphics{P6_graph5.PNG}\\
当$v_1=2 m/s$时,即使小船向左开也不可能抵抗水的流速,永远不能到达终点。\\
最后附上源代码。
\subsection{源代码}
\includegraphics{P6_code.PNG}\\
\section{实验小结}
这次的实验是关于数值方法解微分方程,其基本思想就与插值的方法类似,以离散代替连续,将微分方程转化成数值递推方程,从而在分点很密的情况下得到与解析解相近程度良好的解。
\end{document}	

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).