У меня есть функция вида a * x + b, и я хочу интегрировать эту функцию от 0 до t, где t будет многократно задаваться значениями очень большого (длиной 100000) вектора. Я использовал функцию quad в цикле for, но для вычисления интеграла для каждого значения в векторе требуется слишком много времени. Есть ли эффективный способ реализовать это в Matlab?Эффективная интегральная функция в Matlab
1
A
ответ
3
На самом деле, вам не нужно осуществить это самостоятельно, вы можете найти его с помощью «MatLab числовых функций интеграции» ...
Первого functons приходит в мой ум;
Trapezoidal --> trapz(X,Y)
Cumulative Trapezoidal --> cumtrapz(X,Y)
Adaptive Lobatto Quadrature --> quadl
Adaptive Gauss-Kronrod Quadrature --> quadgk
Vectorized Quadrature --> quadv
0
cumtrapz();
серьезно CumTrapz
Он вычисляет trapazoidal aproximation интеграла.
Разве это не сводится к вычислению 1/2 * a * t * t + b * t для всех элементов t вашего вектора? – jmhl