Как интегрировать функцию с высокой точностью ⇐ Python
Как интегрировать функцию с высокой точностью
Я пытаюсь интегрировать произведение функций sin и cos. Результаты, которые я получаю, совпадают, когда речь идет об относительно больших числах, таких как мощность e-02....e-04. Тем не менее, дробные числа, составляющие степень е-11.....е-32, далеки от идеала, а иногда даже противоположны (если это положительное число, я получаю отрицательное).
импортировать numpy как np импортировать scipy.integrate как spi # Определим подынтегральную функцию защита f0(x,n): если n == 1: возврат (1-х) элиф n == 2: вернуть х еще: вернуть np.sin((n - 2) * np.pi * x) def f00(x, m, n): вернуть f0(x,m)*f0(x,n) # Определим размеры тензора НМНТ_0 = 12 # Создаем тензор I00 = np.zeros((NMHT_0, NMHT_0)) # Выполняем интеграцию для м в диапазоне (NMHT_0): для n в диапазоне (NMHT_0): результат1, ошибка1 = spi.quad(f00, 0, 1, args=(m, n)) I00[m, n] = результат1 Сначала я попытался интегрировать с помощью функции scipy.integrate.quad_vec, но все дробные числа не совпадают. Я заменил функцию quad_vec на scipy.integrate.quad, и ей удалось добиться совпадения некоторых дробных чисел, но большинство дробных чисел по-прежнему не совпадают. Есть ли способ получить более точные результаты или мне следует попробовать другую библиотеку?
Я пытаюсь интегрировать произведение функций sin и cos. Результаты, которые я получаю, совпадают, когда речь идет об относительно больших числах, таких как мощность e-02....e-04. Тем не менее, дробные числа, составляющие степень е-11.....е-32, далеки от идеала, а иногда даже противоположны (если это положительное число, я получаю отрицательное).
импортировать numpy как np импортировать scipy.integrate как spi # Определим подынтегральную функцию защита f0(x,n): если n == 1: возврат (1-х) элиф n == 2: вернуть х еще: вернуть np.sin((n - 2) * np.pi * x) def f00(x, m, n): вернуть f0(x,m)*f0(x,n) # Определим размеры тензора НМНТ_0 = 12 # Создаем тензор I00 = np.zeros((NMHT_0, NMHT_0)) # Выполняем интеграцию для м в диапазоне (NMHT_0): для n в диапазоне (NMHT_0): результат1, ошибка1 = spi.quad(f00, 0, 1, args=(m, n)) I00[m, n] = результат1 Сначала я попытался интегрировать с помощью функции scipy.integrate.quad_vec, но все дробные числа не совпадают. Я заменил функцию quad_vec на scipy.integrate.quad, и ей удалось добиться совпадения некоторых дробных чисел, но большинство дробных чисел по-прежнему не совпадают. Есть ли способ получить более точные результаты или мне следует попробовать другую библиотеку?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Лучший способ заснуть или сделать паузу в Unity с высокой точностью времени
Anonymous » » в форуме C# - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Лучший способ заснуть или сделать паузу в Unity с высокой точностью времени
Anonymous » » в форуме C# - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Эффективно импортировать большие файлы Excel в PostgreSQL с высокой точностью
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-