Help with coding (integral)

20 次查看(过去 30 天)
leyla ahmed
leyla ahmed 2020-11-10
回答: Stephan 2020-11-10
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 个评论
leyla ahmed
leyla ahmed 2020-11-10
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 2020-11-10
This is what i got now, but i still get the same error.

请先登录,再进行评论。

采纳的回答

Stephan
Stephan 2020-11-10
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));

更多回答(1 个)

David Hill
David Hill 2020-11-10
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));

类别

Help CenterFile Exchange 中查找有关 Numerical Integration and Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by