Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Какое условие добавить в метод трапеций, для обх..


Автор: ЧерныйМальчик 26.12.2008, 23:52
Ищу интеграл функции (a1*sin(a2*x)*sin(a3*x)+a4*sin(a5*x)*cos(a6*x))/ (b1*sin(b2*x)*cos(b3*x)) методом трапеций. В некоторых х у функции резко увеличивается значение и кол-во таких экстремумов увеличивается с увелечением количества точек интегрирования. А эти экстремумы сильно влияют на итоговое значение интеграла. Т.е. при 100 и 200 точках интегрирования получаются разные значения интеграла. 

Как можно обходить эти "скачки" ?

Заранее спасибо кто что хорошего подскажет.
Цитата

h:=(x2-x1)/(n-1);
xv[1]:=x1; //нижняя граница интегрирования
null:=false;
prom:=0;//результат интеграла накапливает
h1:=h;

for i:=1 to n do
begin
fx[i]:=F(xv[i], a1, a2, a3, a4, a5, a6, b1, b2, b3);
if i<>1 then
prom:=prom+(fx[i-1]+ fx[i])*h1/2;

xv[i+1]:= xv[i]+h;
end;

end; //for i 


Автор: hkdkest 27.12.2008, 23:45
вот функция вроде норм работает : http://codingrus.ru/readarticle.php?article_id=563

Автор: THandle 28.12.2008, 00:05
hkdkest, вообще этот материал взят из drkb, который я бы посоветовал скачать ТС. Там много чего полезного есть. 

Автор: ЧерныйМальчик 28.12.2008, 11:02
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)