0
我想在3D繪製範德波爾方程的解:如何3D繪圖範德波爾方程在MATLAB
t
爲x
軸mu
爲y
軸;y(t)
asz
axis。
我使用ode23s
來解決方程式。
我的二維碼是:
tspan = [0, 6000];
y0 = [1; 1];
Mu = 1000;
ode = @(t,y) vanderpoldemo(t,y,Mu);
[t,y] = ode23s(ode, tspan, y0);
plot(t,y(:,1))
xlabel('t')
ylabel('y(t)')
我想有這樣的事情對於3D繪圖:
tspan = [0, 6000];
y0 = [1; 1];
Mu = 1:1000; %Mu variate from 1 to 1000 on the y axis
ode = @(t,y) vanderpoldemo(t,y,Mu);
[t,y] = ode23s(ode, tspan, y0); %error : Dimensions of matrices being concatenated are not consistent.
plot3(t,Mu,y(:,1))
xlabel('t')
ylabel('mu')
zlabel('y(t)')
但這代碼沒有工作,所以我試圖把穆如像這樣的論點:
ode = @(t,y,Mu) vanderpoldemo(t,y,Mu)
[t,y,Mu] = ode23s(ode, tspan, y0);
%error : Not enough input arguments
但它也沒有工作。
我不知道是不是因爲我使用了Jupyter,但我仍然有錯誤「矩陣的連接維度不一致」。在「ode23」之後。 我認爲這是因爲't(i,:)'是'0 100 200 .... 6000',在ode23中需要的參數可能是'0 100'。所以我嘗試了一次迭代 'ode = @(t,y)vanderpoldemo(t,y,1); [t,y_i] = ode23s(ode,tspan,y0); y(1,:) = y_i;' 現在,我收到錯誤「訂單分配維度不匹配」。 – Hanabi
基於[matlab文檔](https://nl.mathworks.com/help/matlab/ref/ode23s.html#inputarg_tspan),您應該能夠指定所有的中間點。我不知道Jupyter,也許你可以查看它的文檔。 – m7913d