可以借助于嵌套函数或匿名函数实现附加参数的传递,例如
function main
y0 = [14; 01; 01];
A = linspace(eps, 10, 20);
Y = A NaN;
for ii = length(A)
a = A(ii);
y = ode45(@eq2, [0 a], y0);
Y(ii) = y(end, 1);
end
plot(A, Y)
function dy=eq2(t,y)
dy = y0;
dy(1)=-(ay(2))/(4exp(at/4));
dy(2)=-(a/4)(exp(at/4))(y(1)+05)+(a/4)y(2)-y(3)((exp(at/4))^2);
dy(3)=4y(2);
end
end
但微分方程组似乎是刚性的,不过换用ode15s、ode23s等适合刚性系统的算法效果也不理想(可以调用ode函数时不返回参数,观察求解的过程)。
omega是个啥?常数还是变量?
clear all
clc
gamma=01;
kapa=1;
xi=1;
F=01;
omega=5;
f=@(t,x)([x(2);-gammax(2)+kapax(1)-xix(1)^3+Fcos(x(3));omega]);
[t,X]=ode45(f,0:1:4,[0 1 0]);
plot(X(:,1),X(:,2))
xlabel('x(1)'),ylabel('x(2)')
%%%(4)题:绝对可以出那个分岔图
aa=[1:002:25,2505:0005:35,3501:0001:4]; %节约计算,变变长
n=200;
plotn=5;
savex=[];
for a=aa
x=05;
for i=2:n
x(i)=ax(i-1)(1-x(i-1));
end
savex=[savex;x((n-plotn+1):n)];
end
plot(aa,savex,'');
以上就是关于matlab 数组微分方程全部的内容,包括:matlab 数组微分方程、MATLAB ode45 杜芬方程的相图 哪里出错了、紧急求助duffing算子的幅频分岔曲线及整个方程的分岔图matlab代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)