对于matlab来说,我的方程式是否过于复杂?

时间:2014-06-30 08:49:54

标签: matlab integral

我有一个代码需要评估下面的弧长方程:

syms x

a = 10; b = 10; c = 10; d = 10;

fun = 4*a*x^3+3*b*x^2+2*c*x+d

int((1+(fun)^2)^.5)

但所有返回的内容如下:

ans = int(((40*x^3 + 30*x^2 + 20*x + 10)^2 + 1)^(1/2), x)

为什么不通过matlab评估这个积分?我在下面加了一行来检查它是否会改变int(x)并返回所需的结果。

1 个答案:

答案 0 :(得分:0)

涉及函数平方根的问题可能很难整合。我不确定积分是否存在,但如果你查看二阶多项式的积分,你会发现这个已经非常混乱了。你会有什么,你会扩展平方根内的函数,将是一个九阶多项式。如果实际上存在这个积分,那么计算它可能太复杂了。

无论如何,如果你考虑一下,通过找到这个的分析解决方案,任何人真的会变得更聪明吗?如果不是这种情况,那么数值解就足够了。

修改

作为thewaywewalk said in the comment,计算这些积分的一般规则是有价值的,但要知道特定积分的原始函数可能是过度的(如果可以找到解决方案)。

而是将函数定义为匿名函数

fun = @(x) sqrt((4*a*x.^3+3*b*x.^2+2*c*x+d).^2+1);

并使用integral来评估某个范围之间的函数,例如

integral(fun,0,100);

用于评估闭区间[0,100]中的函数。