Pierwiastki i 8051



Masz problem? Zapytaj na forum elektroda.pl z bramką pl.misc.elektronika!

Poprzedni Następny
Wiadomoœć
spis treści
From: "PJ" <pjopek_at_nospam_elektron.elka.pw.edu.pl>
Subject: Pierwiastki i 8051
Date: Thu, 14 May 1998 07:55:03 GMT


Jak policzyc pierwiastek z liczby dwubajtowej procesorem 8051 ?
Dzieki za odpowiedz.
P.J.




Poprzedni Następny
Wiadomoœć
spis treści
From: "Gabriel Drabik" <gabrys_at_nospam_zeus.polsl.gliwice.pl>
Subject: Re: Pierwiastki i 8051
Date: Thu, 14 May 1998 10:17:41 +0200



PJ wrote in message ...
Jak policzyc pierwiastek z liczby dwubajtowej procesorem 8051 ?
Dzieki za odpowiedz.


Z szeregu Taylora-MacLorena (albo cos podobnego).

Na dyskusje zapraszam na pl.sci.matematyka

gabrys.




Poprzedni Następny
Wiadomoœć
spis treści
From: wze_at_nospam_univcomp.waw.pl (Marcin Hamerla)
Subject: Re: Pierwiastki i 8051
Date: Thu, 14 May 1998 09:06:59 GMT


On Thu, 14 May 1998 10:17:41 +0200, "Gabriel Drabik"
<gabrys_at_nospam_zeus.polsl.gliwice.pl> wrote:

Z szeregu Taylora-MacLorena (albo cos podobnego).

Jest to chyba jedyny możliwy sposób, jeżeli chcesz to zrobić na
piechotę. Osobiście nie zadawałbym sobie tyle trudu i dolinkowałbym
procedurę napisaną w C (ktora też jest napisana przy użyciu szeregu).
Jest to proste i skuteczne rozwiązanie.

Pozdrowienia,
Marcin Hamerla

Poprzedni Następny
Wiadomoœć
spis treści
From: ladzk_at_nospam_ite.waw.pl (Dariusz K. Ladziak)
Subject: Re: Pierwiastki i 8051
Date: Thu, 14 May 1998 14:10:14 GMT


On Thu, 14 May 1998 09:06:59 GMT, wze_at_nospam_univcomp.waw.pl (Marcin Hamerla)
wrote:


Jest to chyba jedyny możliwy sposób, jeżeli chcesz to zrobić na
piechotę. Osobiście nie zadawałbym sobie tyle trudu i dolinkowałbym
procedurę napisaną w C (ktora też jest napisana przy użyciu szeregu).
Jest to proste i skuteczne rozwiązanie.

Dlaczego jedyny??? Mozna rozwiazywac problem odwrotny do potegowania
metodami gradientowymi (chocby polowieniem), mozna w koncu
zaimplementowac metode arytmetuczna (albo w BCD albo przystosowac ja,
a da sie, do kodu binarnego,lub nawet szesnastkowego...).
Z szeregu czasami wychodzi szybciej przy zadanej dokladnosci, czasem
zas szybciej jest gradientowo - ale mozna sie latwien przejechac na
zbieznosci. Pelna dokladnosc i bezwzgledna zbieznosc do ostatniej
cyfry gwarantuje zawsze metoda arytmetyczna - choc nie gwarantuje ze
bedzie szybko...

Darek

Poprzedni Następny
Wiadomoœć
spis treści
From: wze_at_nospam_univcomp.waw.pl (Marcin Hamerla)
Subject: Re: Pierwiastki i 8051
Date: Fri, 15 May 1998 05:13:19 GMT


On Thu, 14 May 1998 14:10:14 GMT, ladzk_at_nospam_ite.waw.pl (Dariusz K.
Ladziak) wrote:

Jest to chyba jedyny możliwy sposób, jeżeli chcesz to zrobić na
piechotę. Osobiście nie zadawałbym sobie tyle trudu i dolinkowałbym
procedurę napisaną w C (ktora też jest napisana przy użyciu szeregu).
Jest to proste i skuteczne rozwiązanie.

Dlaczego jedyny??? Mozna rozwiazywac problem odwrotny do potegowania

Oj, chyba okazałem się niedouczony.

metodami gradientowymi (chocby polowieniem), mozna w koncu
zaimplementowac metode arytmetuczna (albo w BCD albo przystosowac ja,
a da sie, do kodu binarnego,lub nawet szesnastkowego...).

Czyli jest dużo metod do napisania takiej procedury, ja jednak
wolałbym sprawę załatwić szybko i skutecznie używając procedury w C.

Pozdrowienia,
Marcin Hamerla

Poprzedni Następny
Wiadomoœć
spis treści
From: "Jaroslaw Lis" <lis_at_nospam_papuga.ict.pwr.wroc.pl>
Subject: Re: Pierwiastki i 8051
Date: 15 May 1998 09:29:14 GMT


Marcin Hamerla <wze_at_nospam_univcomp.waw.pl> wrote:
Czyli jest dużo metod do napisania takiej procedury, ja jednak
wolałbym sprawę załatwić szybko i skutecznie używając procedury w C.

A jest tam isqrt gotowe?
A czasem warto sie wysilic i uzyskac lepsze rezultaty niz gotowa, ale
uniwersalna procedura.

J.

Poprzedni Następny
Wiadomoœć
spis treści
From: wze_at_nospam_univcomp.waw.pl (Marcin Hamerla)
Subject: Re: Pierwiastki i 8051
Date: Fri, 15 May 1998 10:19:35 GMT


On 15 May 1998 09:29:14 GMT, "Jaroslaw Lis"
<lis_at_nospam_papuga.ict.pwr.wroc.pl> wrote:

Marcin Hamerla <wze_at_nospam_univcomp.waw.pl> wrote:
Czyli jest dużo metod do napisania takiej procedury, ja jednak
wolałbym sprawę załatwić szybko i skutecznie używając procedury w C.

A jest tam isqrt gotowe?

sqrt(x) działa na floatach, ale to jest żaden problem.

A czasem warto sie wysilic i uzyskac lepsze rezultaty niz gotowa, ale
uniwersalna procedura.

Czas to pieniądz. Po prostu nie opłaca się pisać procedur
matematcznych od nowa. Za dużo to czasu zajmuje.


Pozdrowienia,
Marcin Hamerla

Poprzedni Następny
Wiadomoœć
spis treści
From: Maciej Gruszecki <mgr_at_nospam_kki.net.pl>
Subject: Re: Pierwiastki i 8051
Date: Fri, 15 May 1998 14:31:01 +0200


Jaroslaw Lis wrote:

Marcin Hamerla <wze_at_nospam_univcomp.waw.pl> wrote:
Czyli jest dużo metod do napisania takiej procedury, ja jednak
wolałbym sprawę załatwić szybko i skutecznie używając procedury w C.

A jest tam isqrt gotowe?
A czasem warto sie wysilic i uzyskac lepsze rezultaty niz gotowa, ale
uniwersalna procedura.

J.

Jesli chodzi o calkowita czesc pierwiastka, to jest prosty sposob na
jego obliczenie. Moze nieco czasochlonny, bo czas obliczen zalezy od
wielkosci liczby. Algorytm jest mniej wiecej taki:

1. i=1
2. n=0
3. odjac od pierwiastkowanej liczby 'i'
4. jesli wynik odejmowania jest dodatni, zwiekszyc n o 1 i wrocic do
punktu 3.
5. jesli wynik odejmowania jest ujemny, badz rowny 0, to n jest
calkowita czescia szukanego pierwiastka.

Mozna nieco zmodyfikowac punkt 4 i powtarzac petle, jesli wynik
odejmowania jest wiekszy od i+1, ale to juz jest drobiazg.

Pozdrowienia
--
_/_/_/ _/_/_/ _/_/_/ _/_/ Maciej Gruszecki
_/ _/ _/_ _/ _/ _/ _/ ICQ: 5993706
_/_/_/ _/ _/_/_/ _/_/ WWW: http://www.kki.net.pl/mgr
_/ _/_/_/ _/ _/ _/ _/ e-mail: mailto:mgr_at_nospam_kki.net.pl

Poprzedni Następny
Wiadomoœć
spis treści
From: "Jaroslaw Lis" <lis_at_nospam_papuga.ict.pwr.wroc.pl>
Subject: Re: Pierwiastki i 8051
Date: 16 May 1998 14:49:59 GMT


Maciej Gruszecki <mgr_at_nospam_kki.net.pl> wrote:
Jesli chodzi o calkowita czesc pierwiastka, to jest prosty sposob na
jego obliczenie. Moze nieco czasochlonny, bo czas obliczen zalezy od
wielkosci liczby. Algorytm jest mniej wiecej taki:

1. i=1
2. n=0
3. odjac od pierwiastkowanej liczby 'i'
4. jesli wynik odejmowania jest dodatni, zwiekszyc n o 1 i wrocic do
punktu 3.
5. jesli wynik odejmowania jest ujemny, badz rowny 0, to n jest
calkowita czescia szukanego pierwiastka.

Tez zgrabnie. Tak sobie pomyslalem ze i metoda kolejnych przyblizen
z binarnym podzialem bedzie szybka i prosta..

J.

Poprzedni Następny
Wiadomoœć
spis treści
From: "Jaroslaw Lis" <lis_at_nospam_papuga.ict.pwr.wroc.pl>
Subject: Re: Pierwiastki i 8051
Date: 14 May 1998 14:33:43 GMT


Marcin Hamerla <wze_at_nospam_univcomp.waw.pl> wrote:
On Thu, 14 May 1998 10:17:41 +0200, "Gabriel Drabik"

Z szeregu Taylora-MacLorena (albo cos podobnego).

Jest to chyba jedyny możliwy sposób, jeżeli chcesz to zrobić na
piechotę. Osobiście nie zadawałbym sobie tyle trudu i dolinkowałbym
procedurę napisaną w C (ktora też jest napisana przy użyciu szeregu).
Jest to proste i skuteczne rozwiązanie.

Nie bylbym taki pewien. Jest stary wzor na liczenie pierwiastkow:

Xn=(X+W/X)/2

W - pierwiastowana liczba, X - przyblizony pierwiastek, Xn - nowszy,
dokladniejszy pierwiastek.

wzor ma piekna zbieznosc, o ile przyblizenie juz jest bliskie.

osobiscie radze policzyc na ktorej pozycji jest najstarsza 1 w
pierwiastkowanej liczbie, podzielic to przez 2, i liczbe z 1
na tej pozycji wziasc za przyblizenie. Dalej prawdopodobnie dwie - trzy
iteracje wystarcza. przy '51 i 16 bit uwaga - jak pierwiastkowana liczba
jest duza - to trzeba pierwsze przyblizenie starannie wybrac zeby nie miec
nadmiaru przy dzieleniu.

J.