0
我需要在matlab中編寫for循環來解決使用前向差分方法的導數。使用0.25的步長從0到10導出的函數是10 + 15x + 20x^2。我一直在使用Matlab微分
h=.25;
x=[0:h:10];
y = 10+15*x+20*x.^2;
y(1) = 45; size(x)
for i=2:47,
y(i) = y(i-1) + h*(15+40*x);
end
我需要在matlab中編寫for循環來解決使用前向差分方法的導數。使用0.25的步長從0到10導出的函數是10 + 15x + 20x^2。我一直在使用Matlab微分
h=.25;
x=[0:h:10];
y = 10+15*x+20*x.^2;
y(1) = 45; size(x)
for i=2:47,
y(i) = y(i-1) + h*(15+40*x);
end
我願意做這樣的嘗試,作爲一個開始,
h=.25;
x=[0:h:10];
y = 10+15*x+20*x.^2;
diff(y)./diff(x)
,或者作爲替代,
syms x;
y = 20.*x.^2 + 15.*x + 10;
dy = diff(y,1);
h=.25;
xx=[0:h:10];
res = subs(dy,xx);
你做到了。所以呢?首先'x'是41個元素長。爲什麼你把47放在你的循環中?你也應該把'x(i)',而不僅僅是'x'。 – anandr
但在任何情況下,這都是**不是**轉發差異 - 請參閱[http://en.wikipedia.org/wiki/Finite_difference](http://en.wikipedia.org/wiki/Finite_difference)。因爲這是前向差異,所以不能使用預先計算的導數,只應使用原始函數。 – anandr
與47錯誤。但是當我做了這些改變,你告訴我它吐出[1 41]的矩陣。這是我應該期待的嗎? – Trevor