0

Matlabを使用してオイラー法の「ダム」バージョンを作成しようとしましたが、常に何も思いつきませんでした。私のコードはゴミでした:-(

このメソッドについては、次の擬似コードを参照してください。

‘set integration range
xi = 0
xf = 0
‘initialize variables
x = xi
y = 1
‘set step size and determine
‘number of calculation steps
dx = 0.5
nc = (xf – xi) / dx
‘ output initial condition
PRINT x, y
‘Loop to implement Euler’s method
‘and display results
DOFOR I = 1, nc
dydx = -(2X**3) + (12X**2) - (20X) + 8.5
y = y + dydx . dx
x = x + dx
PRINT x, y
END DO

この擬似コードは私が実装する必要があるものであると確信していますが、Matlabコードに変換できませんでした。何か助けてください?

4

1 に答える 1

1

どこで失敗しているのかわかりません。どのように失敗しているのか、何が問題なのかを知ることは本当に役に立ちます。そうでなければ、これはあなたの宿題をしているように見えます。

これがMATLABコードでの私の試みです。(注:このコンピューターにはMATLABがなく、テストもしていません)

i = 0;
stepsize = .1; % Define as what you want it to be
y = 1; % Initial value condition given 
t = 0; % Initial time value
yout = [zeros(1,20)]; % Assuming you want 20 outputs, can change
fvec = [zeros(1,20)];

for i = 1:20 % Time range, can change to correspond to what you want
fvec(i) = 2 - exp(-4*t) - 2*yout(i); % Just loops calculating based on Euler's method
yout(i+1) = yout(i) + stepsize*fvec(i)
t = t+stepsize % Time has passed, increment the time.
end

このコードは完全にはわかりませんが、これを実行する方法の例が示されているはずです。何か問題があればコメントしてください。

于 2011-06-03T16:16:56.177 に答える