Simpsons Rule: With for loops
7 次查看(过去 30 天)
显示 更早的评论
Hi, So I have a question where I have to use Simpsons rule to integrate (1-x^3)*sin(x) + exp(x^2/20) between -1 and 4 with 20 intervals. The function has 4 inputs, f(x), a,b (start and end points) and n intervals
I know that I can make this code simpler with the sum function but unfortunately I have to use loops for this exercise.
My code looks like this:
function integral = simpsonsrule(f,a,b,n)
h = (b-a)/n;
x = linspace(a,b,n);
x4=0;
x2=0;
for j=2:2:b
x4 = x4 + f(x4);
end
for k=3:2:b
x2= x2 + f(x2);
end
integral = (h/3)*(f(a)+ f(b) + 4*(x4)+ 2*(x2));
end
And I'm calling it like this:
clear;
integral = simpsonsrule((1-x.^3)*sin(x) + exp(x.^2/20),-1,4,20)
But I'm getting the error: Undefined function or variable 'x'. but haven't I defined it with x=linspace(a,b,n)?
0 个评论
采纳的回答
Walter Roberson
2015-5-10
integral = simpsonsrule(@(x) (1-x.^3)*sin(x) + exp(x.^2/20),-1,4,20)
You need the @(x) to make an anonymous function
8 个评论
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File 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!