How to define variables in the main program instead of in the function file
1 次查看(过去 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!