В MATLAB, как сделать определенную интеграцию вектора f(i)
с точки зрения x(i)
где x(i)
варьируется от zero
к infinity
т.е. что-то в этом роде f(i)dx(i)
?Определенная интеграция векторов
ответ
установлен ли схема интеграции себя чем-то вроде:
- вычислить
x
иf(x)
вектор - CALCulate
dx
с помощью функцииdiff
- умножить его с е (х) и принять сумма всех элементов
Или вы используете встроенные функции Matlab q = integral(fun,xmin,xmax,Name,Value)
.
С наилучшими пожеланиями
Немного дополнение к M_Tornack's answer:
1) если вы знаете функцию f(x)
вы можете вычислить его в некоторых из этих способов:
CALCulate символически
syms x f
f=1./x; % for example
integral(f,x,-inf,0);
или другим способом: с использованием quadgk function - численная оценка интегральная, адаптивная квадратура Гаусса-Кронрода
2) другой способ: используя небольшие значения вместо Inf
и zero
, а затем использовать встроенную функцию trapz
. Или вы можете использовать первый алгоритм от M_Tornack's answer, используя некоторый допуск - не используя Inf
значения x
, но увеличивайте его при увеличении интеграла результата меньше толерантности.
Надеюсь, это поможет!