Problem using ode45
이전 댓글 표시
I have two files: 1 file has this code: function xprime = lorenz(t,x); alfa = 0.017; beta = 0.067; tau_e = 0.017; tau_l = 0.0001; tau_j =0.00000001; tau_k =0.00000001; c = 0.000001; p = 0.000001; d = 0.000001; A = 475; xprime = zeros(6,1); t0=20.0; xprime(1) =A*( c1*x(2) + x(3)*tau_k -(tau_l*x(1) - tau_j*x(1))); and so on
second file has this code clear all; x0 = [0 0 0.8 0.2 0 0]; tspan = [0 500]; [t,x]=ode45(@lorenz,tspan,x0); save('A475.mat','x','t')
Because I want to calculate a lot of ode but each with different A - how can i put A value in my second file ?
I was trying like clear all; x0 = [0 0 0.8 0.2 0 0]; tspan = [0 500]; A=475; [t,x]=ode45(@lorenz,tspan,x0,[],A); save('A475.mat','x','t')
but it gives me an error. Undefined function or variable 'A'.
Error in lorenz (line 107) xprime(1) =A*( c1*x(2) + x(3)*tau_k -(tau_l*x(1) - tau_j*x(1)));
Error in odearguments (line 90) f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 115) odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Error in run (line 5) [t,x]=ode45(@lorenz,tspan,x0,A);
I'm using matlab version R2017a
답변 (1개)
Star Strider
2018년 5월 28일
Include ‘A’ in the argument list to ‘lorenz’, then pass it as an extra parameter in your ode45 call.
Function:
function xprime = lorenz(t,x,A);
...
end
Calling script:
...
A = 475;
[t,x] = ode45(@(t,x)lorenz(t,x,A) ,tspan,x0);
카테고리
도움말 센터 및 File Exchange에서 Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!