0

私はカーブ フィッティング ect に関するいくつかの問題に取り組んでおり、50 ポイントの 3 次フィットの導関数を見つける必要があります。質問は、与えられたデータからバクテリアの成長率を見つけることを求めています。私の現在のコードは

time = [1,2,4,5,7,9];
bacteria = [2000,4500,7500,15000,31000,64000];

rcubic = polyfit(time,bacteria,3);
newTime = linspace(1,7,50);
vrcubic = polyval(rcubic,newTime);

growthRate = [diff(vrcubic)./diff(newTime)];
derivative = diff(vrcubic)

この問題に対して growthRate または微分が正しいのか、それとも両方が間違っているのか疑問に思っています。彼らは著しく異なる値を与えたからです。また、ベクターの長さが短くなります。

乾杯

4

1 に答える 1

0

時間に関する vrcubic の導関数は、実際には次の式で与えられます。

growthRate = [diff(vrcubic)./diff(newTime)];

あなたの derivative表現は、隣接するデータポイント間の違いにすぎません。

ここで分析的微分を使用することもできます

growthRate = polyval( polyder(rcubic), newTime );

newTime ポイントが非常にまばらにサンプリングされている場合でも、後者が正しい派生物であるため、私は常に後者を好みます。

于 2016-04-30T07:52:01.187 に答える