2017-09-16 11 views
0

私の教授は台形ルールを使ってv=-300*t.^2+2700*tの面積をt=[0:dt:9]とに近似させるためにmatlabを使用したいと考えています。私は関数trapzを使用することはできません。台形ルールを使用して正しい結果を得ることができません

Iは

v1=v(1:end-1) 
v2=v(2:end) 
x_total=1/2*range(t)*dt*sum(v1+v2) 

を使用して試みたが、また36450

の実際の面積ほど遠いしない

x_total = 

3.2801e+05 

になってしまった、私は手動部分区間10のための台形公式を計算し36085.5を得ました。

私は間違っていますか?

答えて

1

台形式は範囲(t)を含まない。ステップサイズdtはすでに区間の長さを反映しています。だから、私が正しく覚えていれば、Fのリーマン和(x)がXの=のA0から矩形領域の合計にほぼ等しいであるX = A1を、であり、曲線下

0.5*dt*sum(v(1:end-1) + v(2:end)) 
+0

正確平均(Answer_A + Answer_B)に出てくるようだ、私は信じることができません私は逃しました。ありがとう! – user125918

0

領域を使用期間はdtである。 Sooo ...

これも他の男と同じ回答になります。

申し訳ありませんが、私は素早く日付、40、と持っている煙....

おっと、私の悪いを持っていました。答えが同じであれば、以下はゼロになります。

sum(v(:) * dt) - 0.5*dt*sum(v(1:end-1) + v(2:end)) = 7.27596e-12 

だから、私は答えを比較: Answer_A = 36450から0.5 * DT *和(V(1:エンド-1)+ V(2:エンド))。 Answer_B = 36450 - sum(v(:) * dt);

% Answer_X defines the difference from the truth 
% If Answer_A < Answer_B 
% "0.5*dt*sum(v(1:end-1) + v(2:end))" is closer to truth 
% elseif Answer_A > Answer_B 
% "sum(v(:) * dt)" is closer to truth 

Answer_A < Answer_B resolves false 
Answer_A > Answer_B resolves true 

これが当てはまらない問題がない限り、私は私の答えと一緒に行きます。多分、上記の解は、解の差が正の数になったことを考慮すると、不要であったかもしれません。

sum(v(:) * dt 

私はあなたがまた36085.5

を取得するために間違っている可能性がどこ見つけるために、絵や何かのように、あなたの仕事を見ることに興味があります、ここでtrapzへのパスです。私はあなたがそれを使用することが許されていないことを知っていますが、ファイルはクリアテキストです。ascii dot m。その後、MATLABがどのようにそれを行うのかを学び、必要に応じて関連部分を使用することができます。

${MATLAB_APP_PATH}/toolbox/matlab/datafun/trapz.m 

疑わしい不正行為は私のゲームです:)

また、関数trapz()はWOW/2

関連する問題