フィルターのクリア

How to calculate the area under the curve with data given on an excel file, and not using the function "trapz"?

26 ビュー (過去 30 日間)
Create a MATLAB program to calculate the area under the curve for the strain-stress. The goal of the project is to have a MATLAB script that automatically reads the experimental data set. The MATLAB script must not use native functions like “trapz” in the calculation of the area. The goal is to calculate the area under the stress-strain curve.
  4 件のコメント
James Tursa
James Tursa 2021 年 8 月 3 日
I meant are you supposed to write your own area calculator function from scratch? (be it Euler or trapezoid or whatever)
Andres Gustavo Ambriz Gudiel
Andres Gustavo Ambriz Gudiel 2021 年 8 月 3 日
Yes, indeed. Everything from scratch. Thank you.

サインインしてコメントする。

採用された回答

Scott MacKenzie
Scott MacKenzie 2021 年 8 月 3 日
編集済み: Scott MacKenzie 2021 年 8 月 3 日
f = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/702117/Steel6150Tens.csv';
T = readtable(f);
T(end,:) = []; % remove last row, outlier
x = T.Strain;
y = T.Stress;
plot(x,y)
% compute area the hard way
a0 = 0;
for i=2:length(x)
a0 = a0 + (x(i)-x(i-1)) * (y(i)+y(i-1))/2;
end
fprintf('Area: %f\n', a0);
Area: 163.079188
% verify result using trapz
a1 = trapz(x, y);
fprintf('Area using trapz: %f\n', a1);
Area using trapz: 163.079188
  8 件のコメント
Andres Gustavo Ambriz Gudiel
Andres Gustavo Ambriz Gudiel 2021 年 8 月 3 日
Thank you. I appreciate it . I”ll do it next time.
Wan Ji
Wan Ji 2021 年 8 月 10 日
By using 'type trapz' command, one can see the vectorized trapz method, the code is simplified as:
z = diff(x,1,1).' * (y(1:end-1,:) + y(2:end,:))/2;

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNumerical Integration and Differentiation についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by