matlab怎样建立一个函数,如何在matlab中创建一个函数数组? |
您所在的位置:网站首页 › 如何创建函数function › matlab怎样建立一个函数,如何在matlab中创建一个函数数组? |
我试图通过使用RK2和RK4的方法来解决matlab中的Lorenz系统。我有一个脚本的两种方法,现在的问题是如何能够收敛到以下简单的列向量:如何在matlab中创建一个函数数组? y(1) = @(t,y) 10*(y(2)-y(1)); y(2) = @(t,y) y(1)*(28-y(3))-y(2); y(3) = @(t,y) y(1)*y(2)-8*y(3)/3; 只是一个列向量y。 这是我所期待的,它从来没有工作过: y = zeros(3,1); y(1) = @(t,y) 10*(y(2)-y(1)); y(2) = @(t,y) y(1)*(28-y(3))-y(2); y(3) = @(t,y) y(1)*y(2)-8*y(3)/3; 和下面是我的RK2功能。我的RK4与这个RK2很相似,但这可以帮助你理解为什么我真的需要一个函数向量。 function y = RK2(fcn,lrange,urange,step,init) %fcn = vector of functions %lrange = lower bound %urange = upper bound %step = number of steps %init = initial value row = size(fcn,1); stepsize = (urange-lrange)/step; y = zeros(row,step); %initializing vector of y y(:,1) = init; %initial condition t = zeros(1,step+1); %initializing vector of t if row ~= size(init,1) disp('number of functions and number of initial values do not match'); end for n = 1:step t(n) = (n-1)*stepsize; t(step+1) = urange; y1 = stepsize.*fcn(t(n),y(:,n)); y2 = stepsize.*fcn(t(n) + stepsize/2, y(:,n) + y1./2); y(:,n+1) = y(:,n) + y2; end 感谢亚勒这么多!!!!!!!!! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |