Я пытаюсь решить это упражнение из курса, который нашел в Интернете. (если вы узнаете вопрос, скажите мне, что вы думаете о курсе). Я ищу, как решить эту проблему, но у меня все еще возникают ошибки в моих вычислениях, и я думаю, что это в основном потому, что я не уверен в том, каким будет результат, а также как написать определенные части функции. Я смиренно приму любое любезное объяснение и совет, мне еще предстоит пройти долгий путь, так что я буду рядом.
Вот вопрос,
Полиномы Лежандра определяются:
????????(????)=∑????????=0(−1)????(2????−2????)!2????????!(????−????)!(????−2????)!????????−2????
где ???? = ???? / 2, если n четное, или (???? − 1) / 2, если ???? нечетное. ????! означает "факториал m", например 4! = 1 * 2 * 3 * 4 = 24. Вы можете вычислить это так: из математики import factorial factorial (4) 24
Вот полезная функция для вычисления ????:
import numpy as np
def M(n):
if np.mod(n, 2) == 0: # this means n is even.
return int(n / 2)
else:
return int((n - 1) / 2)
Напишите функцию, которая вычисляет P (x, n), и постройте график функции для n = 3 и n = 4 в диапазоне от x = -1 до x = 1.
import scipy as sp
P_tot = []
x = np.linspace(-1,1,10)
n = [3,4]
def P(x,n):
return ((-1)**M(n))*((factorial(2*n-2*M(n)))/((2**n)*factorial(M(n))*factorial(n-M(n))*factorial(n-2*M(n))))*(x**(n-2*M(n)))
x = np.linspace(-1,1,10)
n = [3,4]
Px,pn = P(x,n)
P_tot += [Px,pn]
ValueError Traceback (последний вызов последнего ValueError: истинное значение массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all ()
Не могу дождаться, чтобы увидеть, как легко это было, и что я упустил.
Спасибо за ваше время.
n = [3, 4]
if np.mod(n, 2) == 0
. Чего вы ожидали от этого? - person mkrieger1   schedule 12.03.2020M(n)
было бы простоn//2
(при условии, чтоn
является массивом int или NumPy с целочисленным dtype). Однако это не сработает, еслиn
- это список целых чисел; сначала конвертируйте в массив NumPy, если вы действительно хотите работать с несколькимиn
одновременно. (Хотя, вероятно, проще оставитьn
скаляр повсюду и сгенерировать графики дляn=3
иn=4
в двух отдельных вызовах.) - person Mark Dickinson   schedule 14.03.2020