用R编写的洛伦兹63模型的程序如下:
#### FUNCTION: Lorenz-63
lorenz63 = function(sigma,r,b,x)
{
f = function(x)
{dx = array(NA,c(3,1))
dx[1] = sigma*(x[2]-x[1])
dx[2] = r*x[1]-x[2]-x[1]*x[3]
dx[3] = x[1]*x[2]-b*x[3]
return(dx)}
## 四阶Runge-Kutta公式:
k1 = f(x)
k2 = f(x+k1*(h/2))
k3 = f(x+k2*(h/2))
k4 = f(x+k3*h)
return(x+(h/6)*(k1+2*k2+2*k3+k4))
}
请问这种嵌套的函数如何用matlab语言实现,跪谢~
自己试着写了函数,但着实捉襟见肘,漏洞百出,求助:
dx = zeros(3,1);
function [dx] = lorenz63(sigma,r,b,x)
dx(1) = sigma*(x(2)-x(1));
dx(2) = r*x(1)-x(2)-x(1)*x(3);
dx(3) = x(1)*x(2)-b*x(3);
function [x] = f(x)
%Runge-Kutta:
k1 = f(x)
k2 = f(x+k1*(h/2))
k3 = f(x+k2*(h/2))
k4 = f(x+k3*h)
return(x+(h/6)*(k1+2*k2+2*k3+k4))


雷达卡



京公网安备 11010802022788号







