ode45와 같은 ODE 솔버를 사용할 수 있습니까? 여전히 호출 된 함수 내에서 매개 변수의 값을 '변경'할 수 있습니까? 예를 들어ODE 솔버와 함께 사용할 함수 내의 파라미터 변경
, 나는 다음과 같은 기능을 사용하는 경우 :이 스크립트
function y = thisode(t, Ic)
% example derivative function
% parameters
a = .05;
b = .005;
c = .0005;
d = .00005;
% state variables
R = Ic(1);
T = Ic(2);
y = [(R*a)-(T/b)+d; (d*R)-(c*T)];
을 : 내가 기대하는 것처럼
clear all
% Initial conditions
It = [0.06 0.010];
% time steps
time = 0:.5:10;
% ODE solver
[t,Ic1] = ode45(@thisode, time, It);
모든 작품. 그러나 매개 변수 값을 쉽게 변경하는 방법을 원하지만 하나의 함수와 하나의 스크립트로 ODE 해석기를 여러 번 반복 실행하십시오. 그러나, 난 그냥 예를 들어, ODE 솔버에 더 많은 조건을 추가 할 수 있습니다 아닌 것 같아 :
function y = thisode(t, Ic, P)
% parameters
a = P(1);
b = P(2);
c = P(3);
d = P(4);
% state variables
R = Ic(1);
T = Ic(2);
y = [(R*a)-(T/b)+d; (d*R)-(c*T)];
을이 스크립트 :
clear all
% Initial conditions
It = [0.06 0.010];
P1 = [.05 .005 .0005 .00005]
% time steps
time = 0:.5:10;
% ODE solver
[t,Ic1] = ode45(@thisode, time, It, [], P1);
이 작동하지 않습니다. 나는 이것이 작동하지 않아야한다는 것을 알지만, 나는 해결책을 찾을 수 없었다. 또한 함수 내에서 if 문을 고려한 다음 사용하도록 기반으로 된 여러 매개 변수 집합을 하드 코딩했습니다 (예 : P == 1 일 때 1을 사용하고 P == 2 일 경우 2를 설정). 그러나이 또한 작동하지 않습니다. ODE와 함께 사용할 집합을 호출 할 위치가 아닙니다. 매개 변수 값을 변경할 수있는 동안 하나의 함수와 하나의 스크립트를 ODE 해결사와 함께 사용하는 방법에 대한 조언이나 제안 사항은 많은 도움이됩니다.
는 마이크
ode45에서 Matlab 도움말을 열고 설명 아래에 "매개 변수화 함수"에 대한 도움말 링크가 표시됩니다.이 함수는 내가 원하는 것으로 생각합니다. – Bitwise