matlab中的快速积分技术?

matlab中的快速积分技术?,matlab,calculus,Matlab,Calculus,因此,我需要编写以下函数: Lm=1/d积分[exp(-i(a(x)t+mKx))dx(从0到d) 我现在得到的是: L = (1/period) * int(exp(- 1i*(ax*t+(m*K*x))),x,0,period); subs(L,[t,m],[beta0,tt]); 所有东西都是象征性的。如果ax具有挑战性(sin(x)),这需要很长时间。因此,我想找出一种简化方法。我有一个数组a_x(xi),同事们让我研究quad函数,但到目前为止我不确定如何使用它 谢谢如果您的被积函数

因此,我需要编写以下函数:

Lm=1/d积分[exp(-i(a(x)t+mKx))dx(从0到d)

我现在得到的是:

L = (1/period) * int(exp(- 1i*(ax*t+(m*K*x))),x,0,period);
subs(L,[t,m],[beta0,tt]);
所有东西都是象征性的。如果ax具有挑战性(sin(x)),这需要很长时间。因此,我想找出一种简化方法。我有一个数组a_x(xi),同事们让我研究
quad
函数,但到目前为止我不确定如何使用它


谢谢

如果您的被积函数没有改变(变量不是
x
的函数),那么我看不出您没有理由在不执行积分的情况下不能获取符号积分的输出并以数字形式使用它:

kmp = K.*m.*period/2
L = exp(-1i*(ax.*t+kmp)).*sin(kmp)./kmp
否则,是的,您应该查看Matlab–它们的工作原理与
sym/int
类似,但用于数值和函数。在较新版本的Matab中,请尝试或使用。类似于以下内容:

fun = @(x)exp(-1i*(ax*t+(m*K*x)));
L = (1/period)*integral(fun,0,period);

请注意,对于高度振荡的函数,大多数求积方法都有困难。在这种情况下,您应该检查您的结果是否确实正确。如果Matlab的内置求积例程有问题,您可以研究方案,或者可能。

因此
ax
是一个符号函数(
symfun
)?是的,根据我的需要而有所不同