Форум программистов, компьютерный форум CyberForum.ru

извлечения квадратного корня из комплексного числа - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
KDG94
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 32
27.12.2013, 14:04     извлечения квадратного корня из комплексного числа #1
Всем доброго времени суток.
такая проблема, не могу посчитать квадратный корень из комплексного числа, все остальное работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Complex 
{
   public:
      Complex();
      double re, im;
      Complex( double r, double i ) : re(r), im(i) {}
      Complex operator+( Complex &v );
      Complex operator*( Complex &v );
      void show() {   cout << re << ", " << im << endl; }
}; 
Complex gip(Complex a, Complex b);
Complex Complex::operator+(Complex &v) 
{
   return Complex( re+v.re, im+v.im );
}
 
Complex Complex::operator*(Complex &v) 
{
   return Complex( re*v.re, im*v.im );
}
 
Complex gip(Complex a, Complex b)
{
return sqrt((Complex)a*a+b*b);  // весь вопрос в этой строке. как посчитать корень?
}
 
int _tmain(int argc, _TCHAR* argv[])
{
           setlocale(LC_ALL,"Russian");
   Complex a = Complex(1.2, 3.4);
   Complex b = Complex(5.6, 7.8);
   Complex c = Complex(0.0, 0.0);
   c=gip(a,b);
   cout<<"Комплексные числа, гипотенуза: "<<endl;c.show();;
   system("PAUSE");
    return 0;
}
Complex::Complex() {}
такой вариант не работает, тк sqrt не поддерживает работу с комплексными числами.
у кого какие мысли, очень надо, помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2013, 14:04     извлечения квадратного корня из комплексного числа
Посмотрите здесь:

C++ Нужен алгоритм извлечения квадратного корня
C++ Разработать алгоритм вычисления корня n-ой степени из комплексного числа
C++ Вычисление корня квадратного из комплексного числа
Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного C++
C++ Определить функцию для извлечения квадратного корня из эдементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
27.12.2013, 15:51     извлечения квадратного корня из комплексного числа #2
Вообще есть два разных квадратных корня из комплексного числа.
(i*im + re)^2=a+bi
Считаются так
http://www.cyberforum.ru/cgi-bin/latex.cgi?im=+- \sqrt{\frac{-a+\sqrt{{a}^{2}+{b}^{2}}}{2}}
http://www.cyberforum.ru/cgi-bin/latex.cgi?re=\frac{b}{2im}
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,915
27.12.2013, 15:51     извлечения квадратного корня из комплексного числа #3
Для корня комплексного числа существует специальная формула.
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
27.12.2013, 16:00     извлечения квадратного корня из комплексного числа #4
А что должна делать функция gip?

Добавлено через 6 минут
Цитата Сообщение от KDG94 Посмотреть сообщение
return Complex( re*v.re, im*v.im );
По-моему комплексные числа не так умножаются?)
KDG94
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 32
27.12.2013, 16:21  [ТС]     извлечения квадратного корня из комплексного числа #5
по заданию возвращает гипотенузу sqrt(а*а+b*b).
умножение норм., целая часть с целой, мнимая с мнимой
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,915
27.12.2013, 16:22     извлечения квадратного корня из комплексного числа #6
Цитата Сообщение от fishec Посмотреть сообщение
По-моему комплексные числа не так умножаются?)
Нет не так)
Умножение комплексных чисел:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{z}_{1}*{z}_{2} = ({x}_{1}*{x}_{2}-{y}_{1}*{y}_{2})+i*({y}_{1}*{x}_{2}+{x}_{1}*{y}_{2})
KDG94
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 32
27.12.2013, 16:23  [ТС]     извлечения квадратного корня из комплексного числа #7
Цитата Сообщение от fishec Посмотреть сообщение
Вообще есть два разных квадратных корня из комплексного числа.
(i*im + re)^2=a+bi
Считаются так
http://www.cyberforum.ru/cgi-bin/latex.cgi?im=+- \sqrt{\frac{-a+\sqrt{{a}^{2}+{b}^{2}}}{2}}
http://www.cyberforum.ru/cgi-bin/latex.cgi?re=\frac{b}{2im}
то есть примерно так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
Complex gip(Complex a, Complex b)
{
    Complex z=a*a+b*b;//дальше считаю корень из z
    double r, phi, R, Phi;
    phi = atan2(z.im,z.re); //+PI;
    r = sqrt(z.re*z.re + z.im*z.im);
    R = sqrt(r);  
    Phi = (1/2) * phi;
    z.re = R * cos(Phi);
    z.im = R * sin(Phi);
    return z;
}
Добавлено через 1 минуту
Цитата Сообщение от S_el Посмотреть сообщение
Нет не так)
Умножение комплексных чисел:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{z}_{1}*{z}_{2} = ({x}_{1}*{x}_{2}-{y}_{1}*{y}_{2})+i*({y}_{1}*{x}_{2}+{x}_{1}*{y}_{2})
хорошо, спасибо, это исправлю) но основная проблема в корне из числа
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
27.12.2013, 16:27     извлечения квадратного корня из комплексного числа #8
Цитата Сообщение от KDG94 Посмотреть сообщение
целая часть с целой, мнимая с мнимой
Это не так.

C++
1
2
3
4
Complex Complex::operator*(Complex &v) 
{
   return Complex( re*v.re-im*v.im, im*v.re+re*v.im);
}
KDG94
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 32
27.12.2013, 16:31  [ТС]     извлечения квадратного корня из комплексного числа #9
Цитата Сообщение от fishec Посмотреть сообщение
Это не так.

C++
1
2
3
4
Complex Complex::operator*(Complex &v) 
{
   return Complex( re*v.re-im*v.im, im*v.re+re*v.im);
}
спасибо, с этим я понял ошибку)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 16:32     извлечения квадратного корня из комплексного числа
Еще ссылки по теме:

Вычисление квадратного корня из числа C++
C++ Вычисление корня квадратного из комплексного числа
Составить программу извлечения точного квадратного корня из n-разрядного числа (n > 40) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,915
27.12.2013, 16:32     извлечения квадратного корня из комплексного числа #10
Цитата Сообщение от KDG94 Посмотреть сообщение
основная проблема в корне из числа
Формула для нахождения квадратного корня из комплексного числа
http://www.cyberforum.ru/cgi-bin/latex.cgi?{w}_{1}=\sqrt{r}*(cos(\frac{\varphi +2\pi *0}{2})+i*sin(\frac{\varphi +2\pi *0}{2})) \\{w}_{2}=\sqrt{r}*(cos(\frac{\varphi +2\pi *1}{2})+i*sin(\frac{\varphi +2\pi *1}{2}))
Yandex
Объявления
27.12.2013, 16:32     извлечения квадратного корня из комплексного числа
Ответ Создать тему
Опции темы

Текущее время: 19:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru