Trying to plot 3-d
2 次查看(过去 30 天)
显示 更早的评论
My equation is
dxdt=N0*sin(omega*t)*x*(1-x/K);
N0=1:1:10;
omega=1:1:10;
I want to plot 3-D for N0,omega,Xmax and Xmean.
I am trying with the following code but it does not work.
function RunOsciliationsky3D
N0all= 1:1:10;
N=length(N0all);
omegaall= 1:1:10;
M=length(omegaall);
Pmax=zeros(N,M);
Pmean=zeros(N,M);
Pall=[Pmax,Pmean];
x=size(Pall);
for i=1:N
for j =1:N
[t,x]=ode45(@osciliation,[0 100],0.1,[],N0all(i),10,omegaall(j));
Pall(i,j)=x;
end
end
[N0x,omegay]=meshgrid(N0all,omegaall);
h=mesh(N0x,omegay,Pall);
1;
1 个评论
Andy L
2014-8-8
What error are you getting? I have tried copying and pasting but the function in your optimisation function isn't included.
采纳的回答
Yu Jiang
2014-8-8
See the files I revised as attached. It can generate Pmean. Similarly you can plot Pmax. Notice that it is not clear what K is, so I let it be 0.15. I also force N0 to take negative values since positive values make the system unstable.
Hope it helps.
- Yu
2 个评论
Yu Jiang
2014-9-3
When N0 is positive, the system can easily become unstable. Therefore, the initial condition should be reduced.
Please make the three changes based on the code I provided.
Line 12 of RunOsciliationsky3D.m : Change 0.1 to 0.01 or less
Line 2 of oscillation.m: Change K = 1 to K = 10
Line 3 of oscillation.m: Change x/0.15 to x/K.
This should work.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!