Skocz do zawartości


Zdjęcie

dokładność liczb zespolonych w excelu


  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 spin86

spin86

    Nowy

  • 4 postów

Napisano 30 12 2007 - 13:08

witam,
Na konkurencyjnym forum odpowiedzi nie otrzymałem dlatego teraz próbuje tutaj, widocznie jeżeli w temacie jest słowo excel to każdy myśli że jest to banał i nie warto nawet czytać. Mój problem wyglada tak: Czy jest możliwość wyświetlania w excelu liczb zespolonych(tworzymy funkcją COMPLEX) z wybraną dokładnością? W wyniku działań na liczbach zespolonych (których dokładność wynosi 2 po przecinku) otrzymuje liczbę postaci np 9,23831499028927+25,1401365123542i, da rade wyświetlić to z mniejszą dokładnością?

  • 0

#2 Jotgie

Jotgie

    Zorientowany

  • 905 postów

Napisano 30 12 2007 - 13:18

Zrobiłem coś takiego i zadziałało...

=COMPLEX(PI();4) = 3,14159265358979+4i


=COMPLEX(ZAOKR.DO.CAŁK(PI());4) = 3+4i


Oczywiście, można zrobić inne zaokrąglenie.

  • 0

#3 spin86

spin86

    Nowy

  • 4 postów

Napisano 30 12 2007 - 14:00

Ok zgadza się, funkcja ZAOKR działa ale dla liczby rzeczywistej (jaką jest także liczba PI). Mi bardziej chodzi o liczbą zespoloną o dużej dokładności powstałą w wyniku jakiegoś działania np:
tworzymy liczbę:
=COMPLEX(1,2; 3,2)

i ją pierwiastkujemy (w moim przypadku komórka a1):
=IMSQRT(A1)

otrzymujemy:
1,51947383954562+1,05299608216912i
I dopiero dokładność tak powstałej liczby chce zmniejszyć
  • 0

#4 Jotgie

Jotgie

    Zorientowany

  • 905 postów

Napisano 30 12 2007 - 14:43

Całym problemem jest to, że w wyniku otrzymujemy nie liczbę lecz tekst.
Ale zauważyłem, że pierwszy wynik ma zawsze taką samą ilość miejsc po przecinku.
Więc zastosowałem taki trick:

w A5:
=COMPLEX(1,2;3,2)  => 1,2+3,2i
w A6:
=IMSQRT(A5) => 1,51947383954562+1,05299608216912i
w A7:
=LEWY(A6;5)&"+"&FRAGMENT.TEKSTU(A6;18;5)&"i" => 1,519+1,052i

Sprawdzałem na kilku liczbach i działa prawidłowo z wyjątkiem zaokrąglania (nie zaokrągla bo to tekst).
Zdaję sobie sprawę, że nie jest to rozwiązanie... no... "eleganckie", ale może kogoś naprowadzi na lepsze...
  • 0

#5 spin86

spin86

    Nowy

  • 4 postów

Napisano 30 12 2007 - 16:48

Jakieś to rozwiązanie jest. Problem powstaje gdy ilość cyfr przed przecinkiem jest różna, czasem liczba 1-cyfrowa czasem 4-cyfrowa. W wyniku takiego działania otrzymuje wyniki typu np 1223,2+1,2432i i 1,9432-3000,9i. A trzeba przyznać że nie jest to zbyt ładne rozwiązanie. Pozatym u mnie nie zawasze "pierwszy" wynik ma taką samą ilośc miejsc, są to pojedyncze przypadki (kilka na 100) ale jednak.
  • 0

#6 Jotgie

Jotgie

    Zorientowany

  • 905 postów

Napisano 30 12 2007 - 22:24

Zgadza się. No ale nic więcej chyba nie pomogę. "jakieś" rozwiązanie jest też rozwiązaniem...
  • 0

#7 spin86

spin86

    Nowy

  • 4 postów

Napisano 03 01 2008 - 20:39

podaje moje rozwiązanie bo a nóż może ktoś będzie miał kiedyś podobny problem(wykorzystałem co prawda komórkę pomocniczą ale to i tak najlepsze rozwiązanie na jakie wpadłem, dzięki pierwszej odpowiedzi Jotgie`go):
przykładowo w komórce a2 mamy liczbę :9,23831499028927+25,1401365123542i
w innej komórce wpisujemy formułę: =COMPLEX(ZAOKR(IMREAL(a2);2);ZAOKR(IMAGINARY(a2);2);"i")
i już :P

  • 0

Zobacz więcej tematów z tagiem: Microsoft Excel



Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych