注册 登录
编程论坛 Matlab

求助:关于数值仿真的内容

阿福福 发布于 2006-12-12 16:29, 825 次点击

用龙格库塔法编了一个程序,在进行数值仿真时出了一个问题,主要内容如下
函数:
function R=rk4(f,a,b,ya,N)
h=(b-a)/N;
T=zeros(1,N+1);
Y=zeros(1,N+1);
T=a:h:b;
Y(1)=ya;
for j=1:N
k1=h*feval(f,T(j),Y(j));
k2=h*feval(f,T(j)+h/2,Y(j)+k1/2);
k3=h*feval(f,T(j)+h/2,Y(j)+k2/2);
k4=h*feval(f,T(j)+h,Y(j)+k3);
Y(j+1)=Y(j)+(k1+k2+k3+k4)/6;
end
R=[T' Y'];
命令:
>> syms t
>> f=t^2;
>> a=0;
>> b=10;
>> ya=0;
>> N=100;
>> rk4(f,a,b,ya,N)
??? Error using ==> feval
Argument must contain a string or function_handle.

Error in ==> D:\matlab\rk4.m
On line 8 ==> k1=h*feval(f,T(j),Y(j));
请问这是怎么一回事?

1 回复
#2
hitzhang2006-12-15 18:16
rk4(f,a,b,ya,N)这句可能有问题
这样行不
f=inline('t^2');
然后再调用rk4,另外你的f函数好像少变量
1