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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 522
#1

Экспонента в комплексной степени - C++

26.05.2013, 00:11. Просмотров 2037. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста, как вернуть значение экспоненты в комплексной степени? Мне не на выводе нужно подписать эту i, а именно в самой формуле запрограммировать ее. Собственно нужно вернуть значение вот такой формулы:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{exp{i*\left|x-y \right|}}{4*\left|x-y \right|}-\frac{exp{i*\left|x-\bar{y} \right|}}{4*\left|x-\bar{y}\right|}

Я все запрограммировал, проблема только с этой самой мнимой единицей. Вот что у меня получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
_complex Grin(double* x, double* y, double* ys){
    double ry[N], rys[N];
    double sqy = 0.0, sqys = 0.0;
    double mody = 0.0, modys = 0.0;
 
    for (int i = 0; i < N; i++){
        ry[i] += x[i] - y[i];
        rys[i] += x[i] - ys[i];
    }
 
    for (int i = 0; i < N; i++){
        sqy += ry[i] * ry[i];
        sqys += rys[i] * rys[i];
    }
 
    mody = sqrt(sqy);
    modys = sqrt(sqys);
 
    return exp(i * mody)/(4 * M_PI * mody) - exp(i * modys)/(4 * M_PI * modys);
    
}
Добавлено через 6 часов 36 минут
Help me! Как используя стандартный класс комплексных чисел произвести умножение мнимой единицы на число, а то пришлось самописный класс подключать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2013, 00:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Экспонента в комплексной степени (C++):

Экспонента в степени - C++
Есть цикл, не возводит экспоненту в степень for (i = 0; i &lt; n; i++) { f = 10 * k*(cos(k*x) + sin(k*x))*pow(exp,0.3*k*x); ...

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

Экспонента - C++
Как вывести число 1234567.89 в форме экспоненты?

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

Экспонента и мантисса? - C++
Люди...помогите пожалуйста. Объясните по подробнее о мантиссе и экспоненте. Желательно именно на СИ. Просто вот в универ поступил, и...

Как записать (экспонента) - C++
ребята, как записать e^2.8*a?

5
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
27.05.2013, 09:53 #2
Цитата Сообщение от }{@k Посмотреть сообщение
Как используя стандартный класс комплексных чисел произвести умножение мнимой единицы на число
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cstdlib>
#include <complex>
 
int main()
{
    std::complex<double> c( 0,1 ); // мнимая единица 
    double k = 2.345; // вещественное число
    std::cout << c * k << std::endl; // умножение
    std::system( "pause" );
}
1
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,399
Завершенные тесты: 1
27.05.2013, 10:03 #3
Только создавайте сразу комплексное число
complex<double> c( 0,mody ),d(0,imodys);
и вызывайте функцию exp от комплексного аргумента
return exp(c)/(4 * M_PI * mody) - exp(d)/(4 * M_PI * modys);
0
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 522
27.05.2013, 14:32  [ТС] #4
Всем спасибо. Так я делал. Просто я думал может мнимая единица как то прописана в библиотеке стандартной, на подобие _i или вроде того.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
27.05.2013, 14:42 #5
Цитата Сообщение от }{@k Посмотреть сообщение
Просто я думал может мнимая единица как то прописана в библиотеке стандартной, на подобие _i или вроде того.
Ничего такого нет. Если хочется создавать литералы, описывающие комплексные числа, можно воспользоваться operator "" из C++11 (user-defined literals).
0
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 522
27.05.2013, 15:02  [ТС] #6
Это я уже создал Просто подумал может быть без лишних телодвижений получится.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 15:02
Привет! Вот еще темы с ответами:

Экспонента в виде суммы сходящегося ряда - C++
Мне нужно построить экспоненту в виде суммы сходящегося ряда. {e}^{x}=\sum_{k=0}^{}\frac{{x}^{k}}{k!} Слаживать до тех пор, пока k-ая...

Написать программу, вычисляющую X в степени Y и Y в степени X - C++
Написать программу, вычисляющую X в степени Y и Y в степени X. Основная программа запрашивает X и Y и передает их в функцию. Функция...

Как в С++ оформить запись ln (логарифма по основанию е (экспонента) - C++
Здравствуйте, собственно вопрос описан ещё в заголовке, добавить могу только то, что находил несколько вариантов, но они не подходили, на...

Вычислить с заданной точностью значение заданной комплексной функции - C++
Не могу составить алгоритм. Уже 2 дня мучаюсь и ищу материал. Вот, собственно, задачка: Даны комплексное число z (пара вещественных...


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

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

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