我最近在应用数值方法课上完成了一个作业集,并且做得很好。但是,我的教授做了一个说明,说我不应该使用feval()函数,因为它已经过时了。
我只是想知道我应该使用什么。
以下是有问题的代码
%% function file
function E=euler(f,a,b,ya,h)
t=a:h:b;
y(1)=ya;
for i=1:length(t)-1
y(i+1) = y(i) + h*(feval(f,t(i),y(i)));
end
t = t';
y = y';
E=t;
plot(t,y)
xlabel('t')
ylabel('y')
end
%% script file
h = 0.01;
figure(2)
y1=euler(f, a, b, ya, h);
h = 0.001;
figure(3)
y2=euler(f, a, b, ya, h);
h = 0.0001;
figure(4)
y3=euler(f, a, b, ya, h);
如何在不使用feval函数的情况下编写此代码以正确评估Euler函数。
答案 0 :(得分:6)
在blog post Loren 中指出,在2004年 Release 14 之前,您必须使用feval
来评估函数句柄。
在版本14中,我们删除了使用
feval
来评估函数的需要 处理。相反,它们可以直接评估。
现在您只需使用f(t(i),y(i))
代替feval(f,t(i),y(i))
。