我想在matlab中實現有限差分法。我做了一些計算,我知道y(i)是y(i-1)和y(i+1)的函數,當時我知道y(1)和y(n+1)。但是,我不知道如何實現這個,所以y的值更新是正確的。我嘗試使用2 for s,但它不會那樣工作。 EDIT 這是腳本,結果是不正確的 n = 10;
m = n+1;
h = 1/m;
x = 0:h:1;
y = zeros(m+1,1);
y(1)
我試圖實現euler's method來近似py的值e。這是我到目前爲止有: def Euler(f, t0, y0, h, N):
t = t0 + arange(N+1)*h
y = zeros(N+1)
y[0] = y0
for n in range(N):
y[n+1] = y[n] + h*f(t[n], y[n])
f
這個代碼是找到歐拉法MATLAB的 function [x,y]=euler_forward(f,xinit,yinit,xfinal,n)
h=(xfinal-xinit)/n;
% Initialization of x and y as column vectors
x=[xinit zeros(1,n)]; y=[yinit zeros(1,n)];
% Calculation