1.У вас подсчет многочлена в точке не оптимальный(Надо по схеме Горнера за
).
Я не математик, а только экспериментатор. Можно то же самое, но более простыми словами? Вы имеете ввиду что надо использовать
s?
2. При интегрировании будут нецелые коэффициенты(Это замедляет?), надо в начале умножить на
а потом интегрировать.
Я вынес
за интеграл и проверил. Скорость та же.
3.
f2(j,i,x,v2[j]) -оно что строит сам многочлен по его коэффициентам после интегрирования?
?
Да, тут я чуть-чуть не доглядел. Ваша
f3(n,l,A)=intformal((n-l)^2*A) здесь очень кстати.
Наверное так быстрее? Ни когда не прогал на PARI/GP. Как сделать for по убыванию?
Да, использование
f3 (и если я правильно понял, то еще и схемы Горнера) ускоряет процесс. Но все равно
первых значений за минуту на моем ноуте прога не считает. Кажется
for по убыванию нет, но можно просто вычислять вот так:
Код:
for(j=0,n,v[n-j+1]=A+B)
А зачем вы поправили код? Он же вычислял все правильно:
Код:
f1(n,l,m,A)={s=0;for(j=0,n-l,s=s*m+polcoeff(A,n-l-j));s}
f2(n,l,m,A)=my(B=intformal((n-l)^2*A)); s=0;for(j=0,n-l,s=s*m+polcoeff(B,n-l-j));s
f3(n,l,A)=intformal((n-l)^2*A)
b(n)=my(v1, v2); v1=vector(n+1,i,i--; i!*x^i); v2=v1; for(i=1,n,for(j=i,n,v2[j+1]=f3(j,i,v2[j])+f1(j,i-1,i,v1[j+1])-f2(j,i,i,v2[j])); v1=v2); v1
А вот ваша конечная версия уже дает ошибочные значения.
P.S. Ой, не заметил что вы поменяли
f2. Тогда все считается правильно, да.