matlab中怎么使用微分方程

这个例子展示了如何用MATLAB建立和求解三种不同类型的微分方程。MATLAB提供了几种数值算法来求解各种各样的微分方程。

东西/原料

  • matlab软件
  • 电脑

方式/步调

  1. 1

    初值问题

    范德波德莫是界说范德波尔方程的函数。

    type vanderpoldemo

  2. 2

    按“Enter”键。

    如图1所示。

  3. 3

    方程被写当作一个二阶一阶赋格。对于参数Mu的分歧值,对它们进行计较。为了加速积分速度,我们按照参数μ的值来选择合适的求解器。

    对于μ=1,肆意一个MATLAB的ODE解算器都能有用地求解范德波尔方程。下面利用的ODE45求解器就是这样一个例子。方程在[0,20]域内求解。

    tspan = [0, 20];

    y0 = [2; 0];

    Mu = 1;

    ode = @(t,y) vanderpoldemo(t,y,Mu);

    [t,y] = ode45(ode, tspan, y0);


    % Plot of the solution

    plot(t,y(:,1))

    xlabel('t')

    ylabel('solution y')

    title('van der Pol Equation, \mu = 1')

  4. 4

    按“Enter”键。

    得图2所示。

  5. 5

    对于较大的μ量级,问题变得棘手。快速积分需要特别的数值方式。ODe15S、ODe23S、ODe23T和ODe23Tb能有用地解决刚性问题。

    这里是一个解决范德波尔方程的μ=1000利用ODe15S。

    tspan = [0, 3000];

    y0 = [2; 0];

    Mu = 1000;

    ode = @(t,y) vanderpoldemo(t,y,Mu);

    [t,y] = ode15s(ode, tspan, y0);


    plot(t,y(:,1))

    title('van der Pol Equation, \mu = 1000')

    axis([0 3000 -3 3])

    xlabel('t')

    ylabel('solution y')

  6. 6

    按“Enter”键。

    得图3所示。

  7. 7

    边值问题

    Bvp4C求解常微分方程边值问题。

    示例函数TWOODE有一个微分方程,它被写当作二阶一阶ODEs系统。

    type twoode

  8. 8

    TWOBC的鸿沟前提。

    type twobc

  9. 9

    在利用Bvp4C之前,我们必需为我们想要在网格上暗示的解决方案供给一个猜测。然后求解器调整网格以细化解决方案。

    BVPINIT以求解器Bvp4C所需的形式调集了最初的猜测。对于初始网格[0 1 2 3 4]和常量猜测的y(x)=1,y'(x)=0,像这样挪用BVPINIT:

    solinit = bvpinit([0 1 2 3 4],[1; 0]);

  10. 10

    有了这个初步的猜想,我们就可以解决Bvp4C的问题。

    溶液溶胶(如下图),然后用DEVAL计较并绘制。

    sol = bvp4c(@twoode, @twobc, solinit);


    xint = linspace(0, 4, 50);

    yint = deval(sol, xint);

    plot(xint, yint(1,:),'b');

    xlabel('x')

    ylabel('solution y')

    hold on

  11. 11

    按“Enter”键。

    得图4所示。

  12. 12

    这个特别的边值问题正好有两个解。获得的另一个解是对

     y(x) = -1, y'(x) = 0

    像以前一样绘图。

    solinit = bvpinit([0 1 2 3 4],[-1; 0]);

    sol = bvp4c(@twoode,@twobc,solinit);


    xint = linspace(0,4,50);

    yint = deval(sol,xint);

    plot(xint,yint(1,:),'r');

    hold off

  13. 13

    按“Enter”键。

    得图5所示。

  14. 14

    偏微分方程

    PDEPE在一个空间变量和时候内求解偏微分方程。

    示例PDex1、PDex2、PDex3,PDex4,PDex5形当作了一个关于利用PDEPE的小型教程。浏览这些函数以获取更多示例。

    此示例问题利用了函数PDex1Pde、PDex1IC和PDex1BC。

    PDex1Pde界说微分方程。

    type pdex1pde

  15. 15

    PDex1IC设置初始前提。

    type pdex1ic

  16. 16

    PDex1BC设置鸿沟前提。

    type pdex1bc

  17. 17

    PDEPE需要x(空间离散化)和t(但愿获得解决方案快照的时候矢量)。我们利用20个节点的网格来解决这个问题,并在5个t值处请求解决方案。最后,我们提取并绘制溶液的第一组分。

    x = linspace(0,1,20);

    t = [0 0.5 1 1.5 2];

    sol = pdepe(0,@pdex1pde,@pdex1ic,@pdex1bc,x,t);


    u1 = sol(:,:,1);


    surf(x,t,u1);

    xlabel('x');

    ylabel('t');

    zlabel('u');

  18. 18

    按“Enter”键。

    得图6所示。

    END
原作者:matlabj教程举报
  • 发表于 2020-02-13 20:00
  • 阅读 ( 1224 )
  • 分类:其他类型

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具