How to define variables in the main program instead of in the function file
조회 수: 2 (최근 30일)
이전 댓글 표시
I want to use a loop in the main program to make
a
the different value, and then get different graphics, but without defining
a
in the function file it can't run, how to solve, thank you!
codes are as this
function file
function f = rigid(t,y)
syms a
f = zeros(2,1); % a column vector
f(1) = a*y(2) * y(1);
f(2) = -y(1) * y(2);
main program
a=1;
options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4]);
[T,Y] = ode45(@rigid,[0 12],[1 1],options);
plot(T,Y(:,1),'-',T,Y(:,2),'-.')
댓글 수: 0
채택된 답변
madhan ravi
2019년 8월 3일
function f = rigid(t,y,a)
% syms a %% not needed
f = zeros(2,1); % a column vector
f(1) = a*y(2) * y(1);
f(2) = -y(1) * y(2);
%-------
a=1;
options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4]);
[T,Y] = ode45(@(t,y)rigid(t,y,a),[0 12],[1 1],options);
plot(T,Y(:,1),'-',T,Y(:,2),'-.')
댓글 수: 3
madhan ravi
2019년 8월 3일
편집: madhan ravi
2019년 8월 3일
That was also an example you can change other parameters too , it's called parameterization see the link below:
for a = 1:10
options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4]);
[T,Y] = ode45(@(t,y)rigid(t,y,a),[0 12],[1 1],options);
plot(T,Y(:,1),'-',T,Y(:,2),'-.')
end
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Function Creation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!