私たちは、MATLAB で独自の微分演算子を定義するように求められました。私は一連の手順に従ってそれを行いました。次に、微分演算子を使用して境界値の問題を解決する必要があります。
-y'' + 2y' - y = x、y(0) = y(1) =0
私のコードは次のとおりで、これを計算するために使用されました(一次および二次導関数)
h = 2;
x = 2:h:50;
y = x.^2 ;
n=length(x);
uppershift = 1;
U = diag(ones(n-abs(uppershift),1),uppershift);
lowershift = -1;
L= diag(ones(n-abs(lowershift),1),lowershift);
% the code above creates the upper and lower shift matrix
D = ((U-L))/(2*h); %first differential operator
D2 = (full (gallery('tridiag',n)))/ -(h^2); %second differential operator
d1= D*y.'
d2= ((D2)*y.')
ここに投稿した後、これに変更し、Identity Matrix の使用を奨励する 1 つの応答を得ましたが、まだどこにも到達していないようです。
h = 2;
n=10;
uppershift = 1;
U = diag(ones(n-abs(uppershift),1),uppershift);
lowershift = -1;
L= diag(ones(n-abs(lowershift),1),lowershift);
D = ((U-L))/(2*h); %first differential operator
D2 = (full (gallery('tridiag',n)))/ -(h^2); %second differential operator
I= eye(n);
eqn=(-D2 + 2*D - I)*y == x
solve(eqn,y)
y と x を定義する必要があるか、正確には何を定義する必要があるかなど、これをどのように進めればよいかわかりません。私は無知です!