2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Медленно считается интеграл в MATLAB
Сообщение24.02.2019, 18:44 
Считаю интеграл
$$\int\limits_{0}^{40000} f(\mu,\sigma_1,x)+f(2\mu ,\sigma_2,x)+f(3\mu,\sigma_3,x)dx$$
$f$ - функция Гаусса
$\mu$ лежат от 1000 до 13000
Сигмы лежат от 1000 до 2000
Считается очень долго. Можно ли увеличить шаг интегрирования, скажем до 100? В хелпе указаны только AbsTol и RelTol - абсолютная и относительная погрешность.

 
 
 
 Re: Медленно считается интеграл в MATLAB
Сообщение24.02.2019, 20:43 
Вам обязательно так считать? Интеграл от $e^{-c x^2}$ выражается через $\operatorname{erf}$, а эту функцию матлаб должен знать.

 
 
 
 Re: Медленно считается интеграл в MATLAB
Сообщение24.02.2019, 23:26 
Vince Diesel
Функция будет сложнее и всё таки надо брать численно.

 
 
 
 Re: Медленно считается интеграл в MATLAB
Сообщение24.02.2019, 23:34 
blaZter в сообщении #1378192 писал(а):
Функция будет сложнее и всё таки надо брать численно.
Если вы собираетесь поменять функцию, то нет смысла обсуждать вопрос о том, можно ли менять шаг интегрирования. А сейчас это действительно стандартная задача, тем более что интеграл от функции ошибок легко выражается через нее саму, и организовывать закат Солнца вручную совершенно незачем.

 
 
 
 Re: Медленно считается интеграл в MATLAB
Сообщение25.02.2019, 10:00 
blaZter в сообщении #1378192 писал(а):
Функция будет сложнее

В смысле сложнее? Ответ искать? :-) Вот, например, первый интеграл.

 
 
 
 Re: Медленно считается интеграл в MATLAB
Сообщение25.02.2019, 10:48 
На самом деле эта функция умножается на другую, кусочно заданную.
И это произведение надо интегрировать.

 
 
 
 Re: Медленно считается интеграл в MATLAB
Сообщение25.02.2019, 11:53 
blaZter в сообщении #1378263 писал(а):
На самом деле эта функция умножается на другую, кусочно заданную.
И это произведение надо интегрировать.
Так, может быть, вы сформулируете ту задачу, которую вам требуется решить, а не что-то другое?

P.S. Уж сколько раз твердили миру... не надо, никогда не надо спрашивать не про то, что требуется получить, а про то, что спрашивающему кажется промежуточным полезным действием для получения итогового результата. Поскольку в 99% случаев это кажется ошибочно.

 
 
 
 Re: Медленно считается интеграл в MATLAB
Сообщение05.03.2019, 10:43 
Аватара пользователя
Конкретно эта задача считается не просто, а очень просто
$\int\limits_{0}^{40000} f(\mu,\sigma_1,x)+f(2\mu ,\sigma_2,x)+f(3\mu,\sigma_3,x)dx=F(\mu,\sigma_1,40000)+F(2\mu ,\sigma_2,40000)+F(3\mu,\sigma_3,40000)-F(\mu,\sigma_1,0)-F(2\mu ,\sigma_2,0)-F(3\mu,\sigma_3,0)$
где $F(m,s,x)$ есть функция нормального распределения с матожиданием m и СКО s.
А вот если это всё на что-то интересное умножается... Но если на кусочно-постоянную - то просто надо брать по этим кусочкам.

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group