Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:

Error. Page cannot be displayed. Please contact your service provider for more details. (25)


Специальные функции (часть 1)

Поиск:
Специальные функции


arccos x (x - real)

Код

//////////////////////////////////////////////////////////////////////////////
//
//  arccos x function calculating.
//  (c) Johna Smith, 1996
//
//  Method description:
//    Calculating arccos x using the following formula:
//                                        2n+1
//              Pi       N  1*3*5..(2n-1)x
//   arccos x = - - x - SUM ------------------ , |x|<1
//              2       n=1 2*4*6..(2n)(2n+1)
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

#define Pi      3.1415926536
#define N       30

double Arccos(double x)
{
  double arccos=x;
  double a=x;

  for (int i=1;i<N;i++)
  {
    a*=x*x*(2*i-1)*(2*i-1)/((2*i+1)*2*i);
    arccos+=a;
  }
  return Pi/2-arccos;
}

void main(void)
{
  printf("C++ arccos(0.5)=%g, this arccos(0.5)=%g.",acos(0.5),Arccos(0.5));
}



arccos z (z - complex)

Код

//////////////////////////////////////////////////////////////////////////////
//
//  Calculactin function arccos z, where z is a complex value
//  (c) Johna Smith, 1996
//
//  Method description:
//       1            2    2     1            2    2
//    A= - sqrt( (x+1)  + y  ) + - sqrt( (x-1)  + y  )
//       2                       2
//
//       1            2    2     1            2    2
//    B= - sqrt( (x+1)  + y  ) - - sqrt( (x-1)  + y  )
//       2                       2
//                                       2
//    arccos z = acrcos B - i*ln(a+sqrt(a  -1))
//
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

struct complex
{
  float re;
  float im;
};

void show_complex(complex c) // this functions displays complex value
{
  printf("%f%+fi",c.re,c.im);
}

complex Arccos(complex z)
{
  complex c;
  float A,B;

  A=sqrt((z.re+1)*(z.re+1)+z.im*z.im)/2 +
         sqrt((z.re-1)*(z.re-1)+z.im*z.im)/2;
  B=sqrt((z.re+1)*(z.re+1)+z.im*z.im)/2 -
         sqrt((z.re-1)*(z.re-1)+z.im*z.im)/2;

  c.re=acos(B);
  c.im=-log(A+sqrt(A*A-1));

  return c;
}

complex z={3,2};

void main(void)
{
  printf("Arccos(");
  show_complex(z);
  printf(") = ");
  show_complex(Arccos(z));
}



arch x

Код

//////////////////////////////////////////////////////////////////////////////
//
//  arcch x function calculating.
//  (c) Johna Smith, 1996
//
//  Method description:
//    Calculating arccos x using the following formula:
//
//                       N  1*3*5..(2n-1)       1
//   arcch x = ln(2x) - SUM --------------- * ------  , x>1
//                      n=1 2*4*6..(2n)(2n)   x^(2n)
//
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

#define N       30

double Arch(double x)
{
  double arch=1/(2*x*2*x);
  double a=1/(2*x*2*x);

  for (int i=2;i<N;i++)
  {
    a *= (2*i-1)*(2*i-2)/(2*i*2*i*x*x);
    arch += a;
  }
  return log(2*x)-arch;
}

void main(void)
{
  printf("C++ arch(6.13229)=2.5, this arccos(6.13229)=%g.",Arch(6.13229));
}



arch z

Код

//////////////////////////////////////////////////////////////////////////////
//
//  Calculactin function arccos z, where z is a complex value
//  (c) Johna Smith, 1996
//
//  Method description:
//       1            2    2     1            2    2
//    A= - sqrt( (x+1)  + y  ) + - sqrt( (x-1)  + y  )
//       2                       2
//
//       1            2    2     1            2    2
//    B= - sqrt( (x+1)  + y  ) - - sqrt( (x-1)  + y  )
//       2                       2
//                            2
//    arch z = +/- ln(a+sqrt(a  -1)) +/- i*acrcos B
//
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

struct complex
{
  float re;
  float im;
};

void show_complex(complex c) // this functions displays complex value
{
  printf("%f%+fi",c.re,c.im);
}

complex Arch(complex z)
{
  complex c;
  float A,B;

  A=sqrt((z.re+1)*(z.re+1)+z.im*z.im)/2 +
         sqrt((z.re-1)*(z.re-1)+z.im*z.im)/2;
  B=sqrt((z.re+1)*(z.re+1)+z.im*z.im)/2 -
         sqrt((z.re-1)*(z.re-1)+z.im*z.im)/2;

  c.re=log(A+sqrt(A*A-1));
  c.im=-acos(B);

  return c;
}

complex z={3,2};

void main(void)
{
  complex c;

  printf("Arch(");
  show_complex(z);
  c=Arch(z);
  printf(") = +/- %f +/-i%f",c.re,c.im);
}
 


arcsin x

Код

//////////////////////////////////////////////////////////////////////////////
//
//  arcsin x function calculating.
//  (c) Johna Smith, 1996
//
//  Method description:
//    Calculating arcsin x using the following formula:
//                                      2n+1
//                     N  1*3*5..(2n-1)x
//    arcsin x  = x + SUM ------------------, |x|<1
//                    n=1 2*4*6..(2n)(2n+1)
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

#define N       30

double Arcsin(double x)
{
  double arcsin=x;
  double a=x;

  for (int i=1;i<N;i++)
  {
    a *= x*x*(2*i-1)*(2*i-1)/((2*i+1)*2*i);
    arcsin += a;
  }
  return arcsin;
}

void main(void)
{
  printf("C++ arcsin(0.5)=%g, this arcsin(0.5)=%g.",asin(0.5),Arcsin(0.5));
}



arcsin z

Код

//////////////////////////////////////////////////////////////////////////////
//
//  Calculactin function arcsin z, where z is a complex value
//  (c) Johna Smith, 1996
//
//  Method description:
//       1            2    2     1            2    2
//    A= - sqrt( (x+1)  + y  ) + - sqrt( (x-1)  + y  )
//       2                       2
//
//       1            2    2     1            2    2
//    B= - sqrt( (x+1)  + y  ) - - sqrt( (x-1)  + y  )
//       2                       2
//                                       2
//    arcsin z = acrsin B + i*ln(a+sqrt(a  -1))
//
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

struct complex
{
  float re;
  float im;
};

void show_complex(complex c) // this functions displays complex value
{
  printf("%f%+fi",c.re,c.im);
}

complex Arcsin(complex z)
{
  complex c;
  float A,B;

  A=sqrt((z.re+1)*(z.re+1)+z.im*z.im)/2 +
  sqrt((z.re-1)*(z.re-1)+z.im*z.im)/2;
  B=sqrt((z.re+1)*(z.re+1)+z.im*z.im)/2 -
  sqrt((z.re-1)*(z.re-1)+z.im*z.im)/2;

  c.re=asin(B);
  c.im=log(A+sqrt(A*A-1));

  return c;
}

complex z={3,2};

void main(void)
{
  printf("Arcsin(");
  show_complex(z);
  printf(") = ");
  show_complex(Arcsin(z));
}



arctg x

Код

//////////////////////////////////////////////////////////////////////////////
//
//  arctg x function calculating.
//  (c) Johna Smith, 1996
//
//  Method description:
//    Calculating arctg x using the following formulas:
//                              2n+1
//                  N      n   x
//     arctg x  =  SUM (-1)  --------, |x|<1
//                 n=0         2n+1
//
//
//                  N      n+1       1
//     arctg x  =  SUM (-1)    --------------, |x|>1
//                 n=0         (2n+1)x^(2n+1)
//
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

#define N       100
#define Pi      3.1415926536

double Arctg(double x)
{
  double arctg;
  double a;

  if (fabs(x)<1)
  {
    a=x;
    arctg=x;
    for (int i=1;i<N;i++)
    {
       a *= -x*x;
       arctg += a/(2*i+1);
    }
  }
  else
  {
    a=-1/x;
    arctg=-1/x;
    for (int i=1;i<N;i++)
    {
       a *= -1/(x*x);
       arctg += a/(2*i+1);
    }
    arctg += (x>0?Pi/2.0:-Pi/2.0);
  }

  return arctg;
}

void main(void)
{
  printf("C++ arctg(0.5)=%g, this arctg(0.5)=%g.",atan(0.5),Arctg(0.5));
}



arctg z

Код

//////////////////////////////////////////////////////////////////////////////
//
//  arctg z function calculating, where z is a complex value
//  (c) Johna Smith, 1996
//
//  Method description:
//
//                 1          2x          1    x^2+(y+1)^2
//     arctg z  =  - arctg(---------) + i - ln(-----------)
//                 2       1-x^2-y^2      4    x^2+(y-1)^2
//
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

struct complex
{
  float re;
  float im;
};

void show_complex(complex c) // this functions displays complex value
{
  printf("%f%+fi",c.re,c.im);
}

complex Arctg(complex z)
{
  complex c;
  
  c.re=atan(2*z.re/(1-z.re*z.re-z.im*z.im))/2;
  c.im=log((z.re*z.re+(z.im+1)*(z.im+1))/(z.re*z.re+(z.im-1)*(z.im-1)))/4;

  return c;
}

complex z={0.3,0.2};

void main(void)
{
  printf("Arctg(");
  show_complex(z);
  printf(") = ");
  show_complex(Arctg(z));
}
Сайт: forum.vingrad.ru






Просмотров: 3615

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную