2014 dxdy logo

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

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




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


17/02/15
87
Нужно найти неопределенный интеграл в 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
9416
Цюрих
А что имели в виду Вы? То, что 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
87
Конечно, имелся в виду корень квадратный из выражения!

Спасибо, теперь после применения 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
1654
Аязьма
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
87
Вопрос был про log и ln. В питоне log и ln одно и тоже, получается?

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


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

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


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

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
9416
Цюрих
A.M.V. в сообщении #1655463 писал(а):
Как понять полученный ответ?
Открыть документацию. Там есть список special functions, в нём есть и Ваша $F_1$.
И заворачивайте, пожалуйста, код в блок syntax, а формулы в доллары, иначе сложно читать.

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


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

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

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



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

Сейчас этот форум просматривают: granit201z


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

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