Форум сайта python.su
Здравствуйте, нужно написать функцию которая интегрирует правильные дроби. Есть код, но не работает, не понимаю почему. Могли бы вы, пожалуйста, подправить и объяснить что не так?
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)
Офлайн
coverssПотому что это не ваш код и вы его не писали.
не понимаю почему.
Офлайн
FishHookБлагодарю за объяснение и оскорбление.
Офлайн