Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:

type
  TDummyArray = array[1..1] of double;
 
{filon_cos}
function filon_cos(const numPoints: integer;
                   const t: double;
                   var pX; var pF
                  ): double;
{
      1                                        F2 - F1   cos(t*X2) - cos(t*X1)
Ii = --- * [ F2 * sin(t*X2) - F1 * sin(t*X1) + ------- * --------------------- ]
      t                                        X2 - X1             t
}
var
  i: integer;
  sum, tmp: double;
  h, Xi, Xi1, Fi, Fi1: double;
  F: TDummyArray absolute pF;
  X: TDummyArray absolute pX;
begin
  i := 2;
  h := X[i] - X[1];
  sum := 0.e0;
  for i := 1 to numPoints-1 do begin
    Xi := X[i];
    Xi1 := X[i+1];
    Fi := F[i];
    Fi1 := F[i+1];
    tmp := cos(t*Xi1) - cos(t*Xi);
    tmp := tmp * (Fi1 - Fi);
    tmp := tmp / h; //(Xi1 - Xi);
    tmp := tmp / t;
    tmp := tmp + Fi1 * sin(t*Xi1) - Fi * sin(t*Xi);
    sum := sum + tmp;
  end;
 
  Result := sum / t;
end;
{/filon_cos}
 
{filon_sin}
function filon_sin(const numPoints: integer;
                   const t: double;
                   var pX; var pF
                  ): double;
{
      1                                        F2 - F1   sin(t*X2) - sin(t*X1)
Ii = --- * [ F1 * cos(t*X1) - F2 * cos(t*X2) + ------- * --------------------- ]
      t                                        X2 - X1             t
}
var
  i: integer;
  sum, tmp: double;
  h, Xi, Xi1, Fi, Fi1: double;
  F: TDummyArray absolute pF;
  X: TDummyArray absolute pX;
begin
  i := 2;
  h := X[i] - X[1];
  sum := 0.e0;
  for i := 1 to numPoints-1 do begin
    Xi := X[i];
    Xi1 := X[i+1];
    Fi := F[i];
    Fi1 := F[i+1];
 
    tmp := sin(t*Xi1) - sin(t*Xi);
    tmp := tmp * (Fi1 - Fi);
    tmp := tmp / h; //(Xi1 - Xi);
    tmp := tmp / t;
    tmp := tmp + Fi * cos(t*Xi) - Fi1 * cos(t*Xi1);
 
    sum := sum + tmp;
  end;
 
  Result := sum / t;
end;
{/filon_sin}


Всего записей: 24122 | Зарегистр. 06-12-2002 | Отправлено: 21:45 27-11-2008 | Исправлено: akaGM, 21:51 27-11-2008
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru