Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Python для новичков
  • » Напишите свою функцию, которая интегрирует правильные дроби, реализовав метод Остроградского. ( не работает) [RSS Feed]

#1 Дек. 22, 2016 14:19:52

coverss
Зарегистрирован: 2016-12-22
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Напишите свою функцию, которая интегрирует правильные дроби, реализовав метод Остроградского. ( не работает)

Здравствуйте, нужно написать функцию которая интегрирует правильные дроби. Есть код, но не работает, не понимаю почему. Могли бы вы, пожалуйста, подправить и объяснить что не так?

 def dzt(p,q,x=x):
    T=PolynomialRing(QQ,1,'x')
    x=var('x')
    q=q*x^0
    q=q.full_simplify()
    p=p*x^0
    p=p.full_simplify()
    l=list(T(q).factor())
    h3=1
    h4=1
    for n in range(len(l)):
        h3=(h3*l[n][0])^(l[n][1]-1)
    for n in range(len(l)):
        h4=(h4*l[n][0])
    k=h4.degree()+h3.degree()
    if (h3.degree()==1):
        h1=A0
    else:
        A=var(['A%d' %n for n in range(h3.degree())])
        h1=sum([A[n]*(x^n) for n in range(h3.degree())])
    if (h4.degree==1):
        h2=B0
    else:
        B=var(['B%d' %n for n in range(h4.degree())])
        h2=sum([B[n]*(x^n) for n in range(h4.degree())])
    h=(diff((h1/h3),x)+h2/h4-p/q)
    h=h.full_simplify()
    m=[]
    for n in range(k+len(l)):
        if (q.subs(x=n))!=0:
            m=m+[n]
    v=A+B
    y=solve([h.subs(x=m[n]) for n in range(k)],v)
    h1=h1.subs(y[0])
    h2=h2.subs(y[0])
    d=denominator(h2)
    h2=h2*denominator(h2)
    C=PolynomialRing(RR,1,'x')
    h2=C(h2)
    h4=C(h4)
    h1=h1/h3
    h2=h2/h4
    C.<w>=RR[]
    h2=h2.subs(x=w)
    z1=h2.partial_fraction_decomposition()
    z=0
    for n in range(len(z1[1])):
        z=z+integral(z1[1][n],w)
    z=z.subs(w=x)
    f=h1+z/d
    f=f.subs(x=x)
    return f

Отредактировано coverss (Дек. 22, 2016 14:22:20)

Офлайн

#2 Дек. 22, 2016 15:01:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Напишите свою функцию, которая интегрирует правильные дроби, реализовав метод Остроградского. ( не работает)

coverss
не понимаю почему.
Потому что это не ваш код и вы его не писали.
А если его всё-таки писали вы, то поздравляю - вы нереальной тупизны баран, который думает, что можно взять кусок sage-кода, вставить его в питонью функцию и она заработает.



Офлайн

#3 Дек. 22, 2016 15:02:46

coverss
Зарегистрирован: 2016-12-22
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Напишите свою функцию, которая интегрирует правильные дроби, реализовав метод Остроградского. ( не работает)

FishHook
Благодарю за объяснение и оскорбление.

Офлайн

  • Начало
  • » Python для новичков
  • » Напишите свою функцию, которая интегрирует правильные дроби, реализовав метод Остроградского. ( не работает)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version