Вычисление интеграла. Построение графика интеграла
Доброго времени суток!
Пытаюсь получить решение интеграла в виде функции и отобразить его график.
Возникают проблемы с интегралом,т.к.при вычислении появляются дробные числа.
Появляется ошибка: Array indices must be positive integers or logical values.
Если решение для интегралов с дробными числами, может индексация этих значений?
Не совсем понимаю, как это можно реализовать.
Привожу свое решение:
F1=50;
F2=200;
Z=-0.3:0.3;%
m=0;
s=0.3;
a=1./(s*sqrt(2*pi));
h=a*exp(-(pow2(x)./(2*(pow2(s)))));% функция Гаусса
u=(F2*(x-Z)+(F1+F2)*Z)./(F1+F2);
x = -50:1:50; % диапазон интегрирования
y =u(x).*h(x) ; % значения подынтегральный функции
F = cumtrapz(x,y); % постепенный расчет интеграла
% график
plot(x,y,'b',x,F,'r'), grid on
Прошу помочь, кто встречался с такими вычислениями.
Ответы
Проблема возникает не из-за дробных чисел, а из-за отрицательных индексов, которые вы задаете в переменной x.
u(-50) - вы просите дать вам минус 50й элемент из вектора u, такого не бывает.
Возможно вам стоит посмотреть примеры из Symbolic Math Toolbox.
У вас должна была первой появиться ошибка, что переменная или функция "х" не определена, так как вы используете её в функции h, не присвоив "х" никакого значения.
Вам надо функции записать в виде анонимных функций.