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