g=@(t,x,y) sin(8*t)+8*t*cos(8*t);
f=@(t,x,y) 16*cos(8*t)-64*x;
y=g;
t = 0;
x = 0;
y = 0;
h=10;
for a=1:5
h=h/10;
while t<20
k1x = h.*g(t,x,y);
k1y = h.*f(t,x,y);
k2x = h.*g(t+h./2,x+k1x./2, y+k1y./2);
k2y = h.*f(t+h./2,x+k1x./2, y+k1y./2);
k3x = h.*g(t+h./2,x+k2x./2, y+k2y./2);
k3y = h.*f(t+h./2,x+k2x./2, y+k2y./2);
k4x = h.*g(t+h,x+k3x,y+k3y);
k4y = h.*f(t+h,x+k3x,y+k3y);
x = x + (k1x + 2*k2x + 2*k3x + k4x)/6;
y = y + (k1y + 2*k2y + 2*k3y + k4y)/6;
t=t+h;
hold on
if h==0.1
plot(t,x,'+');
hold on
else
plot(t,x,'+');
hold on
end
end
end
hold off
我使用runge kutta法畫這個方程式
想比較取不同的區間大小對應出的x,t圖的差異
所以我的h有5個
可是我不管怎麼設定
圖都只會畫一個
沒有迴圈在畫第二個圖
想請問我該怎麼做呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.216.21
推
01/17 22:55, , 1F
01/17 22:55, 1F