Help with coding (integral)

21 visualizzazioni (ultimi 30 giorni)
leyla ahmed
leyla ahmed il 10 Nov 2020
Risposto: Stephan il 10 Nov 2020
How can i solve this integral ((1/5*x)+1)*sqrt(1+exp(-2x)) by using Simpsons method? The upper limit is 1 and the lower limit is 0. I know how to solve it, but i keep getting these errors. It says "Invalid expression. Check for missin multiplication operator...".
  3 Commenti
leyla ahmed
leyla ahmed il 10 Nov 2020
clear all
a = 0;
b = 1;
n = 20;
m = n/2;
dx = (b-a)/n;
x = a;
sum_f = ((1/5*a)+1).*sqrt(1+exp(-2*a));
eqn = @(x) ((1/5*x)+1).*sqrt(1+exp(-2*x));
for i = 1:m-1
x = x + dx;
sum_f = sum_f + 4*((1/5*x)+1).*sqrt(1+exp(-2*x));
x = x + dx;
sum_f = sum_ f + 2*((1/5*x)+1).*sqrt(1+exp(-2*x));
end
x = x + dx;
sum_f = sum_f + 4*((1/5*x)+1).*sqrt(1+exp(-2*x));
sum_f = sum_f + b/((1/5*b)+1).*sqrt(1+exp(-2*b));
leyla ahmed
leyla ahmed il 10 Nov 2020
This is what i got now, but i still get the same error.

Accedi per commentare.

Risposta accettata

Stephan
Stephan il 10 Nov 2020
Typo in line 18 - use sum_f instead of sum_ f
a = 0;
b = 1;
n = 20;
m = n/2;
dx = (b-a)/n;
x = a;
sum_f = ((1/5*a)+1).*sqrt(1+exp(-2*a));
eqn = @(x) ((1/5*x)+1).*sqrt(1+exp(-2*x));
for i = 1:m-1
x = x + dx;
sum_f = sum_f + 4*((1/5*x)+1).*sqrt(1+exp(-2*x));
x = x + dx;
sum_f = sum_f + 2*((1/5*x)+1).*sqrt(1+exp(-2*x));
end
x = x + dx;
sum_f = sum_f + 4*((1/5*x)+1).*sqrt(1+exp(-2*x));
sum_f = sum_f + b/((1/5*b)+1).*sqrt(1+exp(-2*b));

Più risposte (1)

David Hill
David Hill il 10 Nov 2020
a = 0; b = 1; n = 20;
h = (b-a)/n;
x = linspace(a,b,n+1);
f = ((1/5*x)+1).*sqrt(1+exp(-2*x));
F = h/3*(f(1)+2*sum(f(2:2:end-1))+4*sum(f(1:2:end-1))+f(end));

Categorie

Scopri di più su Numerical Integration and Differential Equations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by