Найти экспоненту комплексного числа

0

Я хочу узнать показатель сложного числа, например: 2+3i.

Как я могу найти значение? я знаю это

e^(jT)=cos(T)+jsin(T)

Есть ли встроенная функция в OpenCv? Если да, не могли бы вы это объяснить мне на примере.

  • 0
    Пожалуйста, прости, если это очень простой вопрос, так как я новичок в этой области.
Теги:
opencv

3 ответа

1
Лучший ответ

Что не так с cexp( ) объявленной в complex.h? Почему вы хотите использовать OpenCV вместо стандартной библиотеки?

#include <complex.h>
#include <stdio.h>

int main(int argc, char *argv[]) {
    double complex z = 2 + 3*I;
    double complex w = cexp(z);
    printf("%f + %fi\n", creal(w), cimag(w));
    return 0;
}

Если вы ориентируетесь на платформу, которая не предоставляет сложные типы или операции, вы можете использовать следующее для быстрого и грязного решения:

struct mycomplex { double real; double imag; }

struct mycomplex my_exp(struct mycomplex z) {
    struct mycomplex w;
    w.real = exp(z.real)*cos(z.imag);
    w.imag = exp(z.real)*sin(z.imag);
    return w;
}

И, наконец, поскольку вы используете MSVC, очень рудиментарный пример C++:

#include <complex>
#include <iostream>

int main(int argc, char *argv[]) {
    auto z = std::complex<double>(2,3);
    auto w = std::exp(z);
    std::cout << w << std::endl;
    return 0;
}
  • 0
    Да, я понял, но есть проблема. Когда я пишу двойной комплекс z = 2 + 3 * I; Там написано: ошибка: ожидается;
  • 0
    Какой компилятор вы используете, и вы #include <complex.h> ?
Показать ещё 4 комментария
1

Я думаю, что функция, которую вы ищете, - atan2. Например, для числа 2+3i вы вычисляете угол как

T = atan2( 3.0, 2.0 );
  • 0
    На самом деле я спрашиваю о числе Эйлера. Я хочу получить ответ с точки зрения cos и грехов, так как я работаю над DFT
  • 0
    @Navdeep, user3386109 правильный.
0

Я не думаю, что есть какая-либо функция inbuild в c, чтобы решить эту проблему. фактически, когда мы выполняли преобразование FFT в c, мы использовали базовую версию cos + jsin

  • 0
    Я также пытался использовать его, но программа c рассматривает j как некоторую переменную и отображает ошибку «j undefined». Как я могу решить это. На самом деле я также работаю над DFT. Спасибо
  • 0
    Вы можете попробовать что-то вроде этого. вычислите значение e ^ j и используйте его в своем коде, так как это значение не изменится. тогда вы можете легко умножить грех (значение) с ним.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню