MATLAB HELP ME PLS

close all
clear
clc
format long
a=0;
b=10;
function [Distance] = trapezoidal(Speed, a, b, n)
h = (b-a)/n;
result = 0.5*Speed*a + 0.5*Speed*b;
for i = 1:(n-1)
result = result + Speed*(a + i*h);
end
[Distance] = h*result;
fprintf('ans=%6.6ff\n',Distance)
end

Respuestas (1)

TADA
TADA el 18 de Jul. de 2019
Editada: TADA el 18 de Jul. de 2019

0 votos

The trapezoidal integration method is a numeric calculation which approximates the area trapped between the curve and the x axis by dividing the curve to segments. the area of each segment is calculated by calculating the area of a trapeze entrapped by the coordinates of that segment.
function [auc, integration] = trapezoidal(x,y)
dx = diff(x);
integration = ((y(1:end-1)+y(2:end)) .* dx) / 2;
auc = sum(integration);
end
Or simply use trapz
The accuracy of this method is limited mainly by the size of the segments. smaller dx means more accurate results
so define your time vector with more elements:
t = linspace(0,10,1000);

1 comentario

TADA
TADA el 18 de Jul. de 2019
to iteratively improve the approximation as required, I would start from a small number of segments, lets say 10 segments like you did
then check the error of the calculated distance
To calculate the actual distance you can integrate the polynomial:
% velocity polynomial coefficients
vp = [0.0011, -0.02928, 0.2807, -1.1837, -0.8283, 41.234, -3.3549];
tRange = [0 10];
nSegments = 10;
% call this in a loop that improves the precesion
while logical condition
% do something to improve precesion here
% calculate distance and error again
[d, err] = tryTrapz(tRange, vp, nSegments);
fprintf('Your message');
end
function [d, err] = tryTrapz(tRange, vp, nSegments)
t = linspace(tRange(1), tRange(2), nSegments);
d = trapz(t, polyval(vp, t));
% distance polynomial coefficients = integrated velocity
dp = polyint(vp);
theoreticalDist = polyval(dp, t(end));
err = 100*(theoreticalDist - d)/theoreticalDist;
end

Iniciar sesión para comentar.

Categorías

Productos

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

el 18 de Jul. de 2019

Comentada:

el 19 de Ag. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by