matlab学习笔记第七章——常微分方程(ODE)的数值解

  1.我们通过调用ODE32函数来求解ODE:

    [t,y] = ode23('func_name', [start_time, end_time], y(0))

  ode45函数使用更高阶的Runge-Kutta公式。

  首先我们定义函数,我们创建一个.m文件,输入下面的内容。

  function ydot = eq1(t,y)
  ydot = cos(t);

  调用的语句是:

    >> [t,y] = ode23('eq1',[0 2*pi],2);

    >> f = 2 + sin(t);

    >> plot(t,y,'o',t,f),xlabel('t'),ylabel('y(t)'),axis([0 2*pi 0 4])

    >> err = zeros(size(y));

  现在我们使用for循环遍历数据,计算每个点上的相对误差:

    >> for i = 1:1:size(y)
      err(i) = abs((f(i)-y(i))/f(i));
      end

posted @ 2015-06-24 17:12  xiaobing小兵  阅读(1514)  评论(0编辑  收藏  举报