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