[C#] Jaki typ zmiennych przechowuje liczby urojone?

hubot
Użytkownik
Użytkownik
Posty: 165
Rejestracja: 4 sty 2015, o 19:55
Płeć: Mężczyzna
Podziękował: 2 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: hubot »

Mam takie pytanko. Wiem, że float i double to są liczby zmiennoprzecinkowe (rzeczywiste), int, long int, short int - całkowite, unsigned - bez znaku, bool - logika, char - znak ale jaki typ przechowuje liczby urojone czy nieskończoności?
Jak np. mam takie coś:

Kod: Zaznacz cały

var i = Math.Sqrt(-1); // Jaki typ w miejsce var?
var inf = Double.Inf;
var negative_inf = -(Double.Inf);
var nan = 2 / 0; // Jaki to typ zmiennej?
Ostatnio zmieniony 1 lut 2015, o 10:01 przez Afish, łącznie zmieniany 2 razy.
Powód: Poprawa wiadomości.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: jarzabek89 »

Żaden typ nie przechowuje zmiennych urojonych, żaden typ nie przechowuje nieskończoności, pomyśl dlaczego.
Awatar użytkownika
musialmi
Użytkownik
Użytkownik
Posty: 3466
Rejestracja: 3 sty 2014, o 13:03
Płeć: Mężczyzna
Lokalizacja: PWr ocław
Podziękował: 382 razy
Pomógł: 434 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: musialmi »

Musiałbyś stworzyć sobie swój typ zmiennych, liczby urojone i zdefiniować działania na nich. Nieskończoność - co to za typ w ogóle? Ja bym powiedział, że to jest stała, która - pomnożona przez cokolwiek dodatniego - daje nieskończoność.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: Afish »

Większość języków implementuje liczby zmiennopozycyjne jako IEEE754, a w tym standardzie nieskończoność ma specjalną wartość.
Liczby zespolone są zazwyczaj reprezentowane jako typy złożone. Przykładowo:
C#:
C:
C++: [url]http://en.cppreference.com/w/cpp/numeric/complex[/url]
Podaj język, o jakim mówisz.
hubot
Użytkownik
Użytkownik
Posty: 165
Rejestracja: 4 sty 2015, o 19:55
Płeć: Mężczyzna
Podziękował: 2 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: hubot »

Mam na myśli język C#, C++, PHP i Python.

-- 1 lut 2015, o 11:05 --

Potrzebne mi działania na liczbach urojonych żeby chociaż policzyć funkcję falową czy falę płaską. Typ zawierający nieskończoność też by mi się przydał bo powiedzmy mamy coś takiego: \(\displaystyle{ \int | \psi |^{2}\mbox{d}\varsigma = \infty}\). W jakiej zmiennej ten wynik zapisać?-- 1 lut 2015, o 11:08 --Albo np. chciałbym taki wynik zapisać: \(\displaystyle{ \psi=a_{1}\psi_{1}+a_{2}\psi_{2}}\), gdzie \(\displaystyle{ a_{1}}\) i \(\displaystyle{ a_{2}}\) to liczby urojone.
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: kalwi »

Wejdź w link podany przez Afish i zobacz sobie jakiś przykład.

Kod: Zaznacz cały

#include <stdio.h>
#include <complex.h>
#include <tgmath.h>
 
int main(void)
{
    double complex z1 = I * I;     // imaginary unit squared
    printf("I * I = %.1f%+.1fi\n", creal(z1), cimag(z1));
 
    double complex z2 = pow(I, 2); // imaginary unit squared
    printf("pow(I, 2) = %.1f%+.1fi\n", creal(z2), cimag(z2));
 
    double PI = acos(-1);
    double complex z3 = exp(I * PI); // Euler's formula
    printf("exp(I*PI) = %.1f%+.1fi\n", creal(z3), cimag(z3));
 
    double complex z4 = 1+2*I, z5 = 1-2*I; // conjugates
    printf("(1+2i)*(1-2i) = %.1f%+.1fi\n", creal(z4*z5), cimag(z4*z5));
}
Output:

Kod: Zaznacz cały

I * I = -1.0+0.0i
pow(I, 2) = -1.0+0.0i
exp(I*PI) = -1.0+0.0i
(1+2i)*(1-2i) = 5.0+0.0i
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: Althorion »

W Pythonie za liczby zespolone odpowiada wbudowany typ complex, zaś do operacji na nim — biblioteka

Kod: Zaznacz cały

https://docs.python.org/3.4/library/cmath.html
.
Nieskończoność mogą w nim przechowywać zmienne typu float.
hubot
Użytkownik
Użytkownik
Posty: 165
Rejestracja: 4 sty 2015, o 19:55
Płeć: Mężczyzna
Podziękował: 2 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: hubot »

A jak policzyć całki i pochodne w tych językach?
Awatar użytkownika
musialmi
Użytkownik
Użytkownik
Posty: 3466
Rejestracja: 3 sty 2014, o 13:03
Płeć: Mężczyzna
Lokalizacja: PWr ocław
Podziękował: 382 razy
Pomógł: 434 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: musialmi »

Całki oznaczone, czy nieoznaczone? Jeśli oznaczone, to symbolicznie czy numerycznie?
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: kalwi »

całki oznaczone na przykład metodą monte carlo. Prosta w implementacji, przy większych n daje dobre wyniki.
Całki nieoznaczone to jakieś podstawowe typu \(\displaystyle{ x^2}\) sobie sam zrobisz algorytm, ale jakieś trudniejsze to pewnie wyższa szkoła jazdy i nie ma co się nad tym zastanawiać.
Awatar użytkownika
musialmi
Użytkownik
Użytkownik
Posty: 3466
Rejestracja: 3 sty 2014, o 13:03
Płeć: Mężczyzna
Lokalizacja: PWr ocław
Podziękował: 382 razy
Pomógł: 434 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: musialmi »

Nie wierzę, żeby nie było bibliotek!
hubot
Użytkownik
Użytkownik
Posty: 165
Rejestracja: 4 sty 2015, o 19:55
Płeć: Mężczyzna
Podziękował: 2 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: hubot »

Potrzebuję policzyć w C# całkę \(\displaystyle{ \oint{\vec{B}\cdot \vec{dl}} = \mu_0 I}\) bo chcę zrobić program wyprowadzający równania Maxwella. Symbolicznie chcę.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C#] Jaki typ zmiennych przechowuje liczby urojone?

Post autor: jarzabek89 »

Gdybyś wiedział czym są równania Maxwella nie potrzebowałbyś obliczania tych całek. Weź się za wiedzę podstawową/elementarną.
ODPOWIEDZ