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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
Senarist
47 / 51 / 14
Регистрация: 14.03.2014
Сообщений: 617
#1

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

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

Написать программу для вычисления корня квадратного из комплексного числа z=x+iy. Такая операция на множестве комплексных чисел, как известно, имеет два решения z1=http://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt(|z|)exp(i\varphi/2) и http://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt(|z|)exp(i\varphi/2+ipi), где |z|=http://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt(x^2+y^2) есть модуль комплексного числа z, а http://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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2014, 21:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление корня квадратного из комплексного числа (C++):

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

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

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

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

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

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

37
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23649 / 15649 / 4695
Регистрация: 22.10.2011
Сообщений: 27,742
Записей в блоге: 5
17.07.2014, 21:41 #2
Цитата Сообщение от Senarist Посмотреть сообщение
Где мой косяк?
Начинается с того, что переменным z1 и z2 никогда и ничего не присваивается, они как были нулями, так и остались. Соответственно, и результат умножения - ноль...
0
Kerry_Jr
Модератор
Эксперт PHP
2201 / 1997 / 700
Регистрация: 14.05.2014
Сообщений: 5,856
Записей в блоге: 1
Завершенные тесты: 5
17.07.2014, 21:47 #3
Цитата Сообщение от UI Посмотреть сообщение
z1 и z2 никогда и ничего не присваивается, они как были нулями
Ну почему ж нулями - мусором всяким.
0
Supernatural
301 / 156 / 29
Регистрация: 22.11.2010
Сообщений: 1,543
17.07.2014, 21:54 #4
все выводится, никаких нулей. Единственное, что смущает 2 строка:
C++
1
2
    cout<<"X1=   "<<X1<<"Y1=   "<<Y1<<endl;
    cout<<"X2=   "<<X1<<"Y2=   "<<Y1<<endl;
там x2 и y2 не должно выводиться?
0
Senarist
47 / 51 / 14
Регистрация: 14.03.2014
Сообщений: 617
17.07.2014, 21:56  [ТС] #5
понял! спасибо, буду исправлять

Добавлено через 1 минуту
Supernatural что у Вас выводится?
0
Supernatural
301 / 156 / 29
Регистрация: 22.11.2010
Сообщений: 1,543
17.07.2014, 22:00 #6
ничего не менял
в окне сообщений, как и говорил, переменным x2 y2 ты присваиваешь значения, но не выводишь
0
Миниатюры
Вычисление корня квадратного из комплексного числа  
S_el
2106 / 1625 / 308
Регистрация: 15.12.2013
Сообщений: 6,485
17.07.2014, 22:03 #7
Кроме этого вы и корень вычисляете неверно.
Посмотрите на формулу для корня комплексного числа внимательнее,раз ищите в тригонометрической форме
0
B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
17.07.2014, 22:34 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
int main()
{
    setlocale(0, "");
    double x, y, phi, z;
    cout << "Введите x=";   cin >> x;
    cout << "Введите y=";   cin >> y;
    phi = atan2(y, x);      z = sqrt(x*x + y*y);
    
    for (int k = 0; k <= 1; k++)
        cout << "z" << k + 1 << "=" << sqrt(z) << "*exp(" << phi / 2 << "+" << 2*k << "*pi)" << endl;
    
    system("pause");
    return 0;
}
0
Senarist
47 / 51 / 14
Регистрация: 14.03.2014
Сообщений: 617
17.07.2014, 23:04  [ТС] #9
B@R_LOG цикл использовать нельзя
0
Senarist
47 / 51 / 14
Регистрация: 14.03.2014
Сообщений: 617
17.07.2014, 23:15  [ТС] #10
S_el, материал из вики
Я вроде как так и делал
0
Миниатюры
Вычисление корня квадратного из комплексного числа  
Senarist
47 / 51 / 14
Регистрация: 14.03.2014
Сообщений: 617
17.07.2014, 23:20  [ТС] #11
Supernatural да в 21 строке просто опечатка.
0
B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
17.07.2014, 23:23 #12
Senarist,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h" // for Visual Studio
#include <iostream>
#include <cmath>  
using namespace std;
#define PI 3.14159265
 
int main()
{
    setlocale(0, "");
    double x, y, phi, r;
    cout << "Введите x=";   cin >> x;
    cout << "Введите y=";   cin >> y;
    phi = atan2(x, y);      r = sqrt(x*x + y*y);
    
    for (int k = 0; k <= 1; k++)
        cout << "z" << k + 1 << "=" << r << "*exp ^ i(" << phi / 2 << "+" << k*PI << ")\n";
    
    system("pause");
    return 0;
}
Разницы никакой, можешь вручную переписать. Просто проще сразу для "n"й степени реализовывать.
По проверке на примерах вроде сходится.
0
Миниатюры
Вычисление корня квадратного из комплексного числа  
Senarist
47 / 51 / 14
Регистрация: 14.03.2014
Сообщений: 617
17.07.2014, 23:44  [ТС] #13
B@R_LOG, спасибо за данное решение, по проверке и правда похоже на правду, но данная задача находится до раздела "циклы". Данные которые получаются у меня и supernatural при одинаковых введенных значениях х и у не сходятся.
0
Psilon
Master of Orion
Эксперт .NET
5896 / 4793 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
17.07.2014, 23:47 #14
Senarist, какая разница, до параграфа "циклы" или после. ВО-первых это не rocket science, а во-вторых они тут просто для примера. Можно просто 2 строчки написать. Хотя 2 строчки и я бы не стал писать в циклы...
0
S_el
2106 / 1625 / 308
Регистрация: 15.12.2013
Сообщений: 6,485
18.07.2014, 08:02 #15
Senarist, я разве написал,что вы неправильно используете тригонометрическое представление?Только про неверное нахождение корня.

B@R_LOG, в 13 строчке надо аргументы поменять местами:
C++
1
phi = atan2(y, x);
Все-таки за x обычно принимают действительную часть,а y - мнимой.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2014, 08:02
Привет! Вот еще темы с ответами:

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

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

Многопоточность (вычисление корня квадратного уравнения, используя несколько независимых потоков) - C++
Уважаемые программисты! Сможет ли кто-нибудь хотя бы примерно объяснить, как реализовать, например, вычисление корня квадратного уравнения,...

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


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
18.07.2014, 08:02
Ответ Создать тему
Опции темы

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