Integration using trapz method

13 vues (au cours des 30 derniers jours)
Elle Rae
Elle Rae le 16 Avr 2021
I need to integrate the following function using the trapz method in MATLAB and keep getting errors:
here is my code:
d = 30; E0=8.85e-12; c=.1; P=3.14159265;
a = 0; b = 1;
x = a:dx:b;
N = length(x);
f = @(x) ((d)./(4.*p.*E0))*(c./((sqrt(c.^(2)+x.^(2))).^(3));
y = f(x);
S = 0;
for k = 1:N-1
S = S + 0.5*(y(k+1) + y(k))*(x(k+1) - x(k));
end
S_trap = trapz(x,y);
S_int = integral(f,a,b);
% print results to pdf
fprintf('INTEGRAL #1\n')
fprintf('Matlab''s integral function yields: %.3f\n',S_int);
fprintf('Matlab''s trapezoid function yields: %.3f\n',S_trap);
fprintf('My trapezoid method yields: %.3f\n\n',S);
% plot integrand and print my trapezoid integration value
figure(1); fplot(f,[a,b])
xlabel('x'); ylabel('f(x)')
title([{'Coulombs Law'},...
'The approximate area using my trapezoid method is: ',...
num2str(S,6)]);
grid on
Thank you for any help!

Réponse acceptée

Stephan
Stephan le 16 Avr 2021
1 missing bracket and you missed to define dx:
d = 30;
E0=8.85e-12;
c=.1;
dx = 0.1;
a = 0; b = 1;
x = a:dx:b;
N = length(x);
f = @(x) ((d)./(4.*pi.*E0))*(c./((sqrt(c.^(2)+x.^(2))).^(3)));
y = f(x);
S = 0;
for k = 1:N-1
S = S + 0.5*(y(k+1) + y(k))*(x(k+1) - x(k));
end
S_trap = trapz(x,y);
S_int = integral(f,a,b);
% print results to pdf
fprintf('INTEGRAL #1\n')
fprintf('Matlab''s integral function yields: %.3f\n',S_int);
fprintf('Matlab''s trapezoid function yields: %.3f\n',S_trap);
fprintf('My trapezoid method yields: %.3f\n\n',S);
% plot integrand and print my trapezoid integration value
figure(1); fplot(f,[a,b])
xlabel('x'); ylabel('f(x)')
title([{'Coulombs Law'},...
'The approximate area using my trapezoid method is: ',...
num2str(S,6)]);
grid on

Plus de réponses (0)

Catégories

En savoir plus sur Numerical Integration and Differentiation dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by