0
我需要繪製這個簡單的系統:採用中點歐拉二階系統中點歐拉法,不能讓它的工作
X「」 = -x
。
U1 = -x和u2 = -x」
U1' = U2
U2' = -x
U1(N + 1)= U1(N)+ H +?我們不知道u1(n + 1)和u2(n + 1)= u2(n)+ h * f((1/2)*(u1(n)+ u2(n + 1) (n + 1)= u1(n)+ h * u2(n)
u2(1 + i)= u2(i)+ h *(( - 1/2)* (u1(n)+ u1(n + 1))
然後我們有u2(i + 1)和u2(i)。中點值是(u2(1 + i) - u(i))/ 2
U1(q + 1)= U1(ⅰ)+ H *中點
當我繪製這樣的結果是一些可怕發散林e,不是振盪功能。哪裏不對?
clear all, close all, clc
h = 0.0005; % steplength
nos = 500000; % number of steps
x = zeros(1,nos);
xp = zeros(1,nos);
energy=zeros(1,nos);
% Starting positions
x(1) = 1;
xp(1) = 0;
for i=1:nos-1
xpp = -x(i);
xTAYLOR = x(i) + h*xp(i);
xp(1+i) = x(i) + (-1*((1/2)*(x(i) + xTAYLOR)));
xpHALF = (xp(1+i) - x(i))/2;
x(1+i) = x(i) + h*xpHALF;
end
plot(x)
當我運行你最小的例子,我得到[這個數字](http://oi39.tinypic.com/35hqsm1.jpg) - 是你的*可怕的分歧線*? – Schorsch
爲什麼當一個簡單的歐拉能夠完成這項工作時,你使用中點歐拉方法 – Rasman