2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Python и интегрирование
Сообщение18.09.2024, 12:20 


17/02/15
78
Нужно найти неопределенный интеграл в python
$\int (5+2x^2) dx$

from sympy import *
x= symbols('x')
display((2*x**2+5)**(1/2))
integrate((2*x**2+5)**(1/2), x)

Результат:
(2x2+5)0.5
2.23606797749979x2F1(−0.5,1232|2x2eiπ5)2.23606797749979x2​F1​(−0.5,21​23​​
​52x2eiπ​)

На самом деле правильный результат интегрирования - это сумма натурального логарифма и квадратного корня. Что имел в виду Python и как его заставить дать верный результат?

 Профиль  
                  
 
 Re: Python и интегрирование
Сообщение18.09.2024, 13:16 
Заслуженный участник
Аватара пользователя


16/07/14
9166
Цюрих
А что имели в виду Вы? То, что sympy выдает формулами, напишите формулами, иначе читать невозможно. И откуда взялось **(1/2), если был интеграл просто от $5 + 2x^2$?

Если же имелся в виду $\int \sqrt{5 + 2x^2}\, dx$, то $\sqrt\cdot$ надо писать как sympy.sqrt, или же $\cdot^{1/2}$ как **sympy.Rational(1, 2).
Иначе 1/2 преобразуется во float до того, как попадет в sympy, и дальше по сути интегрируется $\sqrt[a]{5+2x^2}$ для произвольного $a \approx \frac{1}{2}$, с последующей подстановкой (а вот упрощение не делается, потому что в точном равенстве sympy не уверен).

 Профиль  
                  
 
 Re: Python и интегрирование
Сообщение18.09.2024, 14:05 


17/02/15
78
Конечно, имелся в виду корень квадратный из выражения!

Спасибо, теперь после применения sympy.sqrt() результат верный.

-- 18 сен 2024, 16:47 --

Нужно найти такой интеграл
$\int \frac{e^x dx}{\sqrt{e^{2x}-1}}$

from sympy import *
x= symbols('x')
display(exp(x)/sympy.sqrt(exp(2*x)-1))
integrate(exp(x)/sympy.sqrt(exp(2*x)-1), x)

Результат Python $\log (2e^x+2\sqrt{e^{2x}-1)}$
Верный ответ: $\ln (e^x+\sqrt{e^{2x}-1)}$

В чем причина ошибки?

 Профиль  
                  
 
 Re: Python и интегрирование
Сообщение18.09.2024, 15:42 
Аватара пользователя


07/01/16
1612
Аязьма
A.M.V. в сообщении #1655259 писал(а):
Результат Python $\log (2e^x+2\sqrt{e^{2x}-1)}$
Верный ответ: $\ln (e^x+\sqrt{e^{2x}-1)}$

В чем причина ошибки?
Нету же ошибки, одно выражение равно другому плюс константа (предполагаю, что и $\log$ и $\ln$ Вы используете для обозначения натурального логарифма; лучше выбрать что-то одно). Гляньте определение неопределённого интеграла в учебнике, там есть одна тонкость

 Профиль  
                  
 
 Re: Python и интегрирование
Сообщение18.09.2024, 15:46 


17/02/15
78
Вопрос был про log и ln. В питоне log и ln одно и тоже, получается?

 Профиль  
                  
 
 Re: Python и интегрирование
Сообщение18.09.2024, 15:51 
Заслуженный участник
Аватара пользователя


16/07/14
9166
Цюрих
A.M.V. в сообщении #1655263 писал(а):
В питоне log и ln одно и тоже, получается?
Не смешивайте питон и sympy.
В sympy log - это натуральный логарифм, о чем написано в документации.

 Профиль  
                  
 
 Re: Python и интегрирование
Сообщение21.09.2024, 13:53 


17/02/15
78
При задании неберущегося в элементарных функциях интеграла

from sympy import *
x= symbols('x')
display(sympy.sqrt(1+x**3))
integrate(sympy.sqrt((1+x**3)), x)

получаем ответ через гамма-функцию и некую функцию 2F1 c особенным заданием аргументов этой функции
https://colab.research.google.com/drive ... CKORqpikF0

Как понять полученный ответ?

 Профиль  
                  
 
 Re: Python и интегрирование
Сообщение21.09.2024, 14:03 
Заслуженный участник
Аватара пользователя


16/07/14
9166
Цюрих
A.M.V. в сообщении #1655463 писал(а):
Как понять полученный ответ?
Открыть документацию. Там есть список special functions, в нём есть и Ваша $F_1$.
И заворачивайте, пожалуйста, код в блок syntax, а формулы в доллары, иначе сложно читать.

 Профиль  
                  
 
 Re: Python и интегрирование
Сообщение21.09.2024, 14:12 


27/08/16
10286
A.M.V. в сообщении #1655463 писал(а):
ак понять полученный ответ?
Специальные функции потому и "специальные", что через "элементарные" не выражаются. Но можете почитать литературу по свойствам нужной вам функции, или, например, построить её график. В пакете scipy.special есть нужные вам функции.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group