Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2013, 14:19   #1
Nick08
Новичок
Джуниор
 
Регистрация: 01.11.2012
Сообщений: 2
По умолчанию Двойной интеграл методом Гаусса

Неправильный результат выдаёт. Помогите найти в чём ошибка.
Uses CRT;
Const
AA : Real = 1; {low limit}
BB : Real = 2; {high limit}
CC : Real = 3; {low limit}
DD : Real = 4; {high limit}
NN : Word = 8; {Kolichestvo iteracii}

Function F(X:Real):Real; {Podintegralinaya function}
Begin
F := x;
End;

Function GaussMethod(A,B,C,D:Real; N:Word):Real;

Const
Xi : Array [1..8,1..8] of Real = (
(0.5 ,0 ,0 ,0 ,0 ,0 ,0,0),
(-0.577350,0.577350 ,0 ,0 ,0 ,0 ,0,0),
(-0.774597,0 ,0.774597 ,0 ,0 ,0 ,0,0),
(-0.861136,-0.339981,0.339981 ,0.861136 ,0 ,0 ,0,0),
(-0.906180,-0.538470,0 ,0.538470 ,0.906180,0 ,0,0),
(-0.932470,-0.661210,-0.238620,0.238620 ,0.661210,0.932470,0,0),
(-0.949108,-0.741531,-0.405845,0 ,0.405845,0.741531,0.949108,0),
(-0.960290,-0.796666,-0.525532,-0.183434,0.183434,0.525532,0.796666 ,0.960290)
);

Ci : Array [1..8,1..8] of Real = (
(2,0,0,0,0,0,0,0),
(1,1,0,0,0,0,0,0),
(0.555555,0.888889,0.555555,0,0,0,0 ,0),
(0.347855,0.652145,0.652145,0.34785 5,0,0,0,0),
(0.236927,0.478629,0.568889,0.47862 9,0.236927,0,0,0),
(0.171324,0.360761,0.467914,0.46791 4,0.360761,0.171324,0,0),
(0.129485,0.279705,0.381830,0.41796 0,0.381830,0.279705,0.129 485,0),
(0.101228,0.222381,0.313707,0.36268 4,0.362684,0.313707,0.222 381,0.101228)
);
Var
Sum,Sum1,Sum2 : real;
I : Byte;
Begin
Sum := 0;
Sum1 := 0;
Sum2 := 0;
For I := 1 to N do
Sum1 := Sum1 + F( (a+b)/2+((b-a)/2)*Xi[n,I])*Ci[n,I];
Sum2 := Sum2 + F( (d+c)/2+((d-c)/2)*Xi[n,I])*Ci[n,I];
Sum := Sum1+Sum2;
GaussMethod := Sum*((d-c)*(b-a)/4);
End;

Begin
WriteLn('Kvadraturnaya formula Gaussa : ',GaussMethod(AA,BB,CC,DD,NN):0:3);
ReadLn;
End.
Nick08 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойной интеграл. Монте-Карло Astaroth~ Общие вопросы C/C++ 0 23.05.2012 02:14
Решение СЛАУ методом Гаусса и методом Крамера. R1k1 Помощь студентам 0 24.03.2012 19:17
интеграл методом трапеций _SatanA_ Общие вопросы Delphi 2 24.02.2012 13:21
двойной интеграл в maple sofija Помощь студентам 0 11.01.2011 23:03
Интеграл методом левых прямоугольников murzic28 Помощь студентам 1 17.05.2010 10:17