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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
KDG94
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 32
#1

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

27.12.2013, 14:04. Просмотров 1446. Ответов 9
Метки нет (Все метки)

Всем доброго времени суток.
такая проблема, не могу посчитать квадратный корень из комплексного числа, все остальное работает
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 не поддерживает работу с комплексными числами.
у кого какие мысли, очень надо, помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2013, 14:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос извлечения квадратного корня из комплексного числа (C++):

Вычисление корня квадратного из комплексного числа - C++
Написать программу для вычисления корня квадратного из комплексного числа z=x+iy. Такая операция на множестве комплексных чисел, как...

Вычисление корня квадратного из комплексного числа - C++
Всем доброго время суток. Вычислить корень квадратный из комплексного числа z = x + i*y. такая операция на множестве комплексных чисел, как...

Алгоритм для извлечения квадратного корня x из вещественного числа y - C++
Составить блок-схему алгоритма для вычисления квадратного корня x из вещественного числа y. Примечание. Вычисление квадратного корня...

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

Нужен алгоритм извлечения квадратного корня - C++
Здравствуйте, уважаемые форумчане.Недавно начал изучать C++ и столкнулся с проблемой.Мне необходимо извлечь квадратный корень, но функция...

Определить функцию для извлечения квадратного корня из эдементов массива - C++
Это всё одно задание ... -.- 1)Определить функцию для извлечения квадратного корня из элементов массива целых чисел. 2)Перегрузите...

9
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
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}
1
S_el
2106 / 1625 / 308
Регистрация: 15.12.2013
Сообщений: 6,485
27.12.2013, 15:51 #3
Для корня комплексного числа существует специальная формула.
1
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
27.12.2013, 16:00 #4
А что должна делать функция gip?

Добавлено через 6 минут
Цитата Сообщение от KDG94 Посмотреть сообщение
return Complex( re*v.re, im*v.im );
По-моему комплексные числа не так умножаются?)
1
KDG94
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 32
27.12.2013, 16:21  [ТС] #5
по заданию возвращает гипотенузу sqrt(а*а+b*b).
умножение норм., целая часть с целой, мнимая с мнимой
0
S_el
2106 / 1625 / 308
Регистрация: 15.12.2013
Сообщений: 6,485
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})
1
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})
хорошо, спасибо, это исправлю) но основная проблема в корне из числа
0
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
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);
}
1
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);
}
спасибо, с этим я понял ошибку)
0
S_el
2106 / 1625 / 308
Регистрация: 15.12.2013
Сообщений: 6,485
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}))
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 16:32
Привет! Вот еще темы с ответами:

Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string&gt; #include &lt;sstream&gt; #include...

Разработать алгоритм вычисления корня n-ой степени из комплексного числа - C++
В общем нужно на любом языке накатать программу: Разработать алгоритм вычисления корня n-ой степени из комплексного числа. Помогите мне...

Вычисление квадратного корня из числа - C++
Здравствуйте. Помогите пожалуйста написать код вычисления квадратного корня из числа. Среда программирования Dev-C++ #include...

Вычисление квадратного корня из числа (без использования стандартных математических функций) - C++
Напишите программу, вычисляющую квадратный корень из числа (не пользуясь стандартными математическими функциями)


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
27.12.2013, 16:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru