zoukankan      html  css  js  c++  java
  • 数模学习笔记(三)

    本讲主要说一下微分方程的数值解法,在数模中常微分方程是经常会碰到的问题,我们还会附带说一下差分方程和偏微分方程的数值解法。

    微分方程的数值解法:

    1)显示解:dsolve

    example:

    1 %farmat:dsolve('diff_equation''condition1,condition2,…''var')
    2 %example%
    3 y=dsolve('D3y-D2y=x','y(1)=8,Dy(1)=7,D2y(2)=4','x');

    介绍数值解前先做两个铺垫

    a.高阶微分方程初值问题化为一阶常微分方程组:

     通过换元,化成标准形式:

     y’=F(t,y),y(0)=y0

    b.匿名函数:

    %F=@(x,y)[......]

    2)Euler法:离散化思想

    3)Runge-Kutta法:ode23/ode45

    %Farmat:[T,Y]=solver('F',tspan,y0)

    若把F写成匿名函数的形式则没有引号!!!

    Practice:Verderpol微分方程

    Solution:

    将二阶问题化成标准的一阶形式:

    [y1’;y2’]=F[y2;7(1-y1^2)y2-y1];y1(0)=1,y2(0)=0

    1 F=@(t,y)[y(2);7*(1-y(1)^2)*y(2)-y(1)];
    2 [T,Y]=ode45(F,[0 40],[1;0]);
    3 plot(T,Y(:,1));

  • 相关阅读:
    初学者常用的LINUX命令
    logging模块全总结
    logging模块初识
    xpath知多少
    selenium常用的API
    系统测试基础(适合入门)
    JavaScript正则表达式(一)
    webpack2学习(二)
    webpack2学习(一)
    SQL语句学习
  • 原文地址:https://www.cnblogs.com/wl142857/p/3172700.html
Copyright © 2011-2022 走看看