2014-02-16 18 views
0

這是我的代碼:錯誤關於元素在數量for循環

%Initial Conditions: 

y(1)=1; 
Dy(1)=0; 
DDy(1)=0; 
t(1)=0; 

%Parameters: 
dt = 0.1; 
nsteps =10/dt; 

for i=1:nsteps 
    t(i+1) = t(i) + dt; 
    DDy(i+1) = 12*t.*y(i) + (18*t.^2 - 6).*(y(i).^2).*Dy(i); 
    Dy(i+1) = Dy(i) + DDy(i)*dt; 
    y(i+1) = y(i) + Dy(i+1)*dt; 
end 

這裏是錯誤消息:

在一個分配A(I)= B, 元件的數目在B和我必須是相同的。

錯誤euler_croemer_de(第20行) DDY第(i + 1)= 12 * T * Y(I)+。(18 * T^2 - 。 6)。*(Y(I)^ 2 )*鏑(ⅰ)。


我試過在互聯網上搜索,我可以自己解決這個問題。但是,我真的找不到有用的東西。

我希望有人幫助。

回答

1

在線路

DDy(i+1) = 12*t.*y(i) + (18*t.^2 - 6).*(y(i).^2).*Dy(i); 

t包含i+1元素,所以右手側是長度i+1的向量。但是,左側是指單個值,即DDy的一個條目。因此,您正在嘗試將矢量分配給DDy的單個條目。因此錯誤。

也許你的意思是t(i+1)而不是t就行了?

+0

哦,所以錯誤是我忽略了在我的for循環中索​​引向量t? – Mack

+1

@Mack它取決於你打算做什麼。但是,當然,如果你給矢量't'編制索引,錯誤將會消失 –