Форум сайта python.su
вот код,надо написать программу,чтобы считала интеграл методом рунги.программа есть,но она однопоточная,а надо распоточить,помогите пожалуйста.ну и грамотность кода тоже проверьте,если не сложно)from math import* def f(x) return 2*x integrate(a,b): с=(a+b)/2 return ((f(a)+f(b)+4*f(c))/6) a=0.0 b=2.0 h=0.1 eps=0.01 n=4 s1=1.0 s2=0.0 t=0 while (fabs(s2-s1)>eps): s2=s1 t+=1 print t s1=0 n*=2 h=(b-a)/n for i in range(0,n): s1+=integrate(a+i*h,a+(i+1)*h) s1+=h print 'Result='+str(s1)
Отредактировано wondebar (Дек. 17, 2013 19:30:05)
Офлайн
wondebar
грамотнасть никакая, синтаксические ошибки, некорректные отступы функция f это вообще шедевр кодоплетства. Ваш код копипастом не проверить - это уже большой минус вам. Такое ощущение что вы его откуда то неумело вытащили и попытались под свои нужны приспособить.
По теме: в общем то рискну предположить что такие алгоритмы слабо поддаются распараллеливанию. Гипотетически можно выстроить очередь из итераций цикла while и worker'ами ее обслуживать. Но думаю что кто то предложит вариант лучше
Офлайн
В питоне многопоточность для математических вычислений ничего не даст, даже наоборот притормозит программу.
Офлайн
plusplus
В питоне многопоточность для математических вычислений ничего не даст, даже наоборот притормозит программу.
Офлайн
Budulianin
Если только не пользоваться специальными модулями, типа NumPy
Офлайн
plusplus
Интересно, а можно поподробней?
Отредактировано Budulianin (Дек. 18, 2013 10:46:57)
Офлайн