|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Dmitry Pankov 2:5022/58.27 01 Oct 2001 17:20:40 To : Eugeny Gnedov Subject : вычисление интегралов -------------------------------------------------------------------------------- 29 сентября 2001 года (а было тогда 23:02) Eugeny Gnedov в своем письме к All писал: EG> Какие, all, знает *быстрые(очень быстрые) И точные(очень точные)* методы EG> вычисления интегралов... EG> Приветствуются алгоритмы и исходники :) Лови! ======== Hачало integral.cpp ======== #include <iostream.h> #include <stdlib.h> #include <math.h> //**************************************************************************** // Функция от которой берется интеграл double f(double x) { return (cos(x)/x); } //**************************************************************************** // Вычисление определенного интеграла по квадратурной формуле Гаусса // Вход: // a - начало интервала // b - конец интервала // Выход: // значение интеграла double GaussI(double a, double b) { int i; double t[8],d[8],x[8]; double m=8, // число узлов integral=0; t[0]=-0.96028986; t[1]=-0.79666648; t[2]=-0.52553142; t[3]=-0.18343464; t[4]=-t[3]; t[5]=-t[2]; t[6]=-t[1]; t[7]=-t[0]; d[0]=0.10122854; d[1]=0.22238104; d[2]=0.31370664; d[3]=0.36268378; d[4]=d[3]; d[5]=d[2]; d[6]=d[1]; d[7]=d[0]; for(i=0; i<m; i++) { x[i]=((b+a)/2)+((b-a)/2)*t[i]; integral+=(d[i]*f(x[i])); } integral*=(b-a)/2; return integral; } //**************************************************************************** void main() { cout.precision(8); cout << "Gauss:" << endl; cout << "I=" << GaussI(1,2) << endl; } ======== Конец integral.cpp ======== С наилучшими пожеланиями, Dmitry *e-mail: panda@tula.net* . Тишина ... Желаю вам моря удачи и дачи у моря! --- Win95 UpTime: 00d 02h 35m * Origin: Казалось, нам 3.14здец. Оказалось, не казалось (2:5022/58.27) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33783bb8a68d.html, оценка из 5, голосов 10
|