zoukankan      html  css  js  c++  java
  • 数值分析+函数ode45学习

      对于常微分方程,其解的主要形式有两类:解析解、数值解。

      解析解,由字面意思可知是一种微分方程的解析式解。得到了微分方程的解析式解,再根据其解析式即可得出解在定义域内的任何点对应的解。

      然而对于微分方程,就本人目前所学过的高数方面的,只有少数既定类型的微分方程有特定形式的解析解。所以对于绝大多数微分方程,在一定条件下得出其解析解是十分困难的。对于这类微分方程,前人想出一种得到其有限数值点的解,在计算机的计算中,在条件充足的前提下得到了能忽略其误差的解——数值解。数值解在工程实践中得到了充分的应用,虽然没有解析解的精确度但是其更容易得到,常见微分方程一般来说都能快速得到其数值解。

      接下来简单记录一下对数值解的理解。

      数值分析之欧拉法:

      用老师讲解的一个例子。

      

    原方程为Y'=-Y^2,  即f(t,y)=-Y^2;

    lim(n-->n+1) Y'=(Yn+1-Yn)/(Tn+1-Tn)       。。。导数定义式  (将函数y分为n点,n趋于无穷)

    递推公式为Yn+1=Yn+hf(tn,yn)=Yn(1-0.1yn)

    解析解 Y=1/(1+T)

    数值解即上述递推公式。当然这是最基础的解法,其解的精确度较低,精度好一点的如改进的欧拉法。。。

      接下来说一下对matlab求解常微分方程封装的函数ode45的理解。

      ode45表示四阶-五阶Runge-Kutta算法,它用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,其整体截断误差为(Δx)^5。

      用法:sol =(t,y)= ode45(odefun,tspan,y0)                          odefun为封装的待求解函数

                                 tspan表示求解的定义域

                                 y0表示微分方程初值

                                 (t,y)表示求得的数值解向量,t是向量时间点,定义点;y表示向量的值。

      

      x=deval(sol,ti):计算由0de45得到的解在ti的值。

      

      Matlab中求微分方程数值解的函数有七个:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb 。其中ode23为带有延时的微分方程的求解函数。

  • 相关阅读:
    自顶向下的单元测试策略
    孤立的测试策略
    单元测试
    控制流与数据流,信息流
    白盒测试的特点
    白盒测试
    黑盒测试优缺点
    appium对博客园APP进行自动化测试
    招聘测试人员,我在面试什么?
    测试开发这一年
  • 原文地址:https://www.cnblogs.com/xiaotn/p/14719511.html
Copyright © 2011-2022 走看看