Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/41: Рейтинг темы: голосов - 41, средняя оценка - 4.63
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933

Вычисление корня квадратного из комплексного числа

17.07.2014, 21:09. Показов 9884. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу для вычисления корня квадратного из комплексного числа z=x+iy. Такая операция на множестве комплексных чисел, как известно, имеет два решения z1=https://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt(|z|)exp(i\varphi/2) и https://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt(|z|)exp(i\varphi/2+ipi), где |z|=https://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt(x^2+y^2) есть модуль комплексного числа z, а https://www.cyberforum.ru/cgi-bin/latex.cgi?\varphi - его аргумент. Вычислить действительную и мнимую части чисел z1 и z2. параметры x и y вводятся пользователем с клавиатуры.
Что то мне кажется я забыл про комплексные числа

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
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    setlocale(0,"");
    double x,y,phi,z,z1,z2,i,pi=3.14,X1,Y1,X2,Y2;
    cout<<"Введите x=";
    cin>>x;
    cout<<"Введите y=";
    cin>>y;
    phi=atan2(y,x);
    z=sqrt(x*x+y*y);
    cout<<"z1="<<sqrt(z)<<"*exp("<<phi/2<<"*i)""\n";
    cout<<"z2="<<sqrt(z)<<"*exp("<<phi/2<<"*i+i*"<<pi<<")\n";
    X1=z1*cos(phi);
    Y1=z1*sin(phi);
    X2=z2*cos(phi);
    Y2=z2*sin(phi);
    cout<<"X1=   "<<X1<<"Y1=   "<<Y1<<endl;
    cout<<"X2=   "<<X1<<"Y2=   "<<Y1<<endl;
    system("pause");
    return 0;
}
В ответах одни нули. Где мой косяк?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2014, 21:09
Ответы с готовыми решениями:

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

Извлечение квадратного корня из комплексного числа
Всем доброго времени суток. такая проблема, не могу посчитать квадратный корень из комплексного числа, все остальное работает ...

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

37
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
18.07.2014, 16:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от B@R_LOG Посмотреть сообщение
S_el, не согласен с Вами.
Так а я что написал?Сравните то что у меня и то что у вас.
Сами ведь ссылку приводите,что первый аргумент делится на второй.
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
18.07.2014, 16:51
Senarist, касательно твоей ошибки, запиши вот так
Цитата Сообщение от Senarist Посмотреть сообщение
phi=atan2(y,x);
* * z=sqrt(x*x+y*y);
* * cout<<"z1="<<Z1 = sqrt(z)<<"*exp("<<phi/2<<"*i)""\n";
* * cout<<"z2="<<Z2 = sqrt(z)<<"*exp("<<phi/2<<"*i+i*"<<pi<<")\n";
0
18.07.2014, 16:55

Не по теме:

Цитата Сообщение от B@R_LOG Посмотреть сообщение
phi = atan2(x, y);* * * r = sqrt(x*x + y*y);
- касательно этого, напомню всем как выглядит подсказка для этой функции(см скриншот). Первым действительно стоит аргумент а не функция, другое дело что систем координат могла рассматриватсья не Декартова со сдвигом аккурат в 90 градусов против часовой стрелки. Так что каждый из споривших по поводу атана2 в прав, с той лишь поправкой что для декартовой системы координат первым аргументов в функцию должен идти у а не х.

Миниатюры
Вычисление корня квадратного из комплексного числа  
0
 Аватар для B@R_LOG
18 / 18 / 5
Регистрация: 03.07.2013
Сообщений: 49
18.07.2014, 18:04
S_el,
Я посчитал, что строка из моего кода, поэтому и не заметил, что действительно допустил опечатку.
в 13 строчке надо аргументы поменять местами:
C++
1
phi = atan2(y, x);
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
18.07.2014, 21:09  [ТС]
Нашел точно такую же тему: Вычисление корня квадратного из комплексного числа
Ответа только два почему то. Хотя в задании сказано что нужно вычислить действительную и мнимую части чисел z1 и z2. Значит ответа должно быть 4. А уж если они каким то образом одинаковы, хотя бы 2 из них то это какая то магия)). После этого я еще больше засомневался в правильности своего решения. Сейчас попробую получше вспомнить комплексные числа.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
18.07.2014, 21:17
Senarist, какой степени корень столько и чисел.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
18.07.2014, 21:23  [ТС]
S_el корень квадратный из условия. Решения имеется два z1 и z2 это тоже из условия. Из каждого этого решения нужно выделить действительную и мнимую часть, и того 4
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
18.07.2014, 21:34
Senarist, нажимайте на ник тогда прийдет уведомление.

Цитата Сообщение от Senarist Посмотреть сообщение
Из каждого этого решения нужно выделить действительную и мнимую часть, и того 4
И в чем проблема?У любого комплексного числа есть действительная и мнимая части.Но это одно комплексное число,а не 2.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
18.07.2014, 22:13  [ТС]
В общем сделал все проще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    setlocale(0,"");
    double x,y,phi,z,Z;
    cout<<"Введите x=";
    cin>>x;
    cout<<"Введите y=";
    cin>>y;
    phi=atan2(y,x);
    z=sqrt(x*x+y*y);
    cout<<"Z= "<<sqrt(z)*(cos(phi/2)+sin(phi/2))<<"j\n";
    cout<<"Действительная часть:"<<cos(phi/2)<<"\n";
    cout<<"Мнимая часть:"<<sin(phi/2);
    system("pause");
    return 0;
}
По крайне мере хотя бы понятно что происходит.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
18.07.2014, 22:18
Senarist, это не корень из комплексного числа, а непонятно что(корень из комплексного числа тоже должен быть комплексным).При выводе отдельных частей не забывайте умножать на модуль.
Кстати как вы хотите 2 корень искать?
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
18.07.2014, 22:28  [ТС]
S_el Почему непонятно что? Считал по формуле)) https://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt(|z|)*(cos(\varphi /n)+isin(\varphi /n)) n=2
Про модуль да, совсем забыл.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    setlocale(0,"");
    double x,y,phi,z,Z;
    cout<<"Введите x=";
    cin>>x;
    cout<<"Введите y=";
    cin>>y;
    phi=atan2(y,x);
    z=sqrt(x*x+y*y);
    cout<<"Z= "<<sqrt(z)*(cos(phi/2)+sin(phi/2))<<"j\n";
    cout<<"Действительная часть:"<<sqrt(z)*cos(phi/2)<<"\n";
    cout<<"Мнимая часть:"<<sqrt(z)*sin(phi/2);
    system("pause");
    return 0;
}
какой такой второй корень?)
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
18.07.2014, 22:37
Senarist, рекомендую ознакомится с теорией комплексных чисел,прежде чем писать программы с ними связанные.Или воспользоваться готовой реализацией и не парится.

Еще раз повторюсь,комплексное число это двухкомпонентное число,состоящее из мнимой и действительной части,как вы хотите его поместить в double?
Теперь по поводу количества корней.Какой степени корень столько и корней.Второй -> 2 числа,третьей -> 3 и.т.д.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
18.07.2014, 22:57  [ТС]
Вот на скорую руку написал вычисления степени:
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
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    setlocale(0,"");
    double x,y,X,Y,r,phi,R,Phi;
    int n;
    cout<<"Действительная часть x= ";
    cin>>x;
    cout<<"Мнимая y= ";
    cin>>y;
    cout<<"Степень n= ";
    cin>>n;
    phi=atan2(y,x);
    r=sqrt(x*x+y*y);
    R=pow(r,n);
    Phi=n*phi;
    X=R*cos(phi);
    Y=R*sin(Phi);
    cout<<"X= "<<X<<"\n";
    cout<<"Y= "<<Y<<"\n";
    system("PAUSE");
    return 0;
}
Скажите мне что неправильно и я возможно пойму в чем ошибаюсь.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
19.07.2014, 08:56
Senarist, вот с возведением в степень вы справились
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
25.07.2014, 15:43  [ТС]
S_el
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale( LC_ALL,"Russian" );
const double  PI = 3.1416;
double x,y,phi,z,X,Y;
cout<<"Введите действительную часть x=";
cin>>x;
cout<<"Введите мнимую часть y=";
cin>>y;
phi=atan2(y,x);
z=sqrt(x*x+y*y);
X=sqrt(z)*cos((phi+2*PI)/2);
cout<<"X="<<X<<endl;
Y=sqrt(z)*sin((phi+2*PI)/2);
cout<<"Y="<<Y<<endl;
system("pause");
return 0;
}
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
25.07.2014, 15:50
Senarist, осталось найти 2-ой корень и задание будет выполнено.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
25.07.2014, 16:03  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale( LC_ALL,"Russian" );
const double  PI = 3.1416;
double x,y,phi,z,X,Y,X1,Y1;
cout<<"Ââåäèòå äåéñòâèòåëüíóþ ÷àñòü x=";
cin>>x;
cout<<"Ââåäèòå ìíèìóþ ÷àñòü y=";
cin>>y;
phi=atan2(y,x);
z=sqrt(x*x+y*y);
X=sqrt(z)*cos((phi+2*PI)/2);
Y=sqrt(z)*sin((phi+2*PI)/2);
cout<<"X="<<X<<"\t" "Y="<<Y<<endl;
X1=sqrt(z)*cos(phi/2);
Y1=sqrt(z)*sin(phi/2);
cout<<"X1="<<X1<<"\t" "Y1="<<Y1<<endl;
system("pause");
return 0;
}
Вот так?
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
25.07.2014, 16:50
Senarist, да.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.07.2014, 16:50

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

Вычисление корня квадратного функции f(x)
Программа на вычисление корня квадратного функции f(x) в пределе &lt;a, b&gt; методом бисекции. Помогите найти ошибку в коде. Корень...

Вычисление квадратного корня с применением рекурсии
Здравствуйте. Помогите, пожалуйста, задача такая: Вычислить значение x = корень(а), используя формулу , xn=1/2(xn-1+a/xn-1 ) в качестве...

Вычисление квадратного корня без cmath
Всем привет. Сделал простенький калькулятор без cmath, &quot;+,-,*,/,степень и квадратный корень&quot;. вопрос такой case 's': if...

Вычисление квадратного корня четных элементов массива
помогите улучшить код #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; class Kvadrat { ...


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru