使用带有等式的函数句柄和Simpson的规则

时间:2014-04-27 02:49:20

标签: matlab

我正在研究应用光度方程的问题:

E = 64.77 * T ^-4∫x^ -5(e ^(1.432 / Tx)-1)^ - 1 dx

T = 3500;

简化儿子的规则,这是一些总和等等。

问题17.8:http://my.safaribooksonline.com/book/computer-aided-engineering/9780123748836/-introduction-to-numerical-methods/ch17lev1sec10


我所做的是一个功能simpson(fn,a,b,h)正确运行simp son的规则。 然而,问题是将积分方程转化为有效的函数句柄。我已经让它适用于像

这样的简单函数句柄
f = @x x.^2

但是当我尝试将积分变成函数时:

fn = @(x)(64.77/T^4).*integral((x.^(-5)).*((exp(((1.432)./(3500.*x)))).^(-1)), 4e-5, 7e-5);
simp(fn, 5, 15, 1)
 function s = simp(fn, a, b, h)

 x1 = a + 2*h:2*h:b-2*h;
 sum1 = sum(feval(fn, x1));
 x2 = a + h:22*h:b-h;
 sum2 = sum(feval(fn, x2));

 s = h/3*(feval(fn, a) + feval(fn, b) + 4*sum2 + 2*sum1);

它没有用。错误信息是Integral:第一个输入必须是函数句柄。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用Simpsons规则评估积分,而使用integral计算积分,则fn不是x的函数。你想这样做:

fn = @(x)(x.^(-5)).*((exp(((1.432)./(3500.*x)))).^(-1));
I=simp(fn,a,b,h);
E=(64.77/T^4)*I;