我想解決使用bvp4c(邊界條件)的微分方程系統。我使用兩個for循環來解決bvp4c的功能,但問題是循環先完成,然後只有最後一個值用於第二循環的迭代,是否有辦法讓它們同時工作?這意味着第一個for循環的第一次迭代使用第二個循環的第一次迭代值(而不是最後一次)。感謝兩個For循環同時工作? bvp4c
function RTrajfoll(X,Y)
clf;
for i = 1:length(X)-1
init = bvpinit(linspace(X(i),X(i+1),10),[0 0]);
sol = bvp4c(@Kpath1,@bcpath,init);
x = linspace(X(i),X(i+1),100);
BS = deval(sol,x);
plot(x,BS(1,:),'linewidth',2)
axis([-2 6 -2 6])
hold on
end
function bv = bcpath(L,R)
for j = 1:length(Y)-1
bv = [L(1)-Y(j) R(1)-Y(j+1)];
end
end
end
%Differential equations dy/dx and dtheta/dx
function dx = Kpath1(~,c)
L = 0.12;
r = 0.1;
WL = 0.25;WR = 0.25;
y = c(1);th = c(2);
dy = tan(th);
dth = (2*((r*WR)-(r*WL)))/(L*cos(th)*((r*WR)+(r*WL)));
dx = [dy;dth];
pose = [y;th];
end
「X」和「Y」長度相同。即,對於i = 1:長度(X)-1'和'對於j = 1:長度(Y)-1'是否應該彼此對應? –
是的,X和Y的長度都是一樣的 –