Logarytm w Bascomie

Aug 14, 2004 30 Replies

On Behalf Of Kuba

Stała, to stała. Koniec. Kropka. Zmienna nie musi zmieniać swej wartości w trakcie działania programu. Kropka. Przed użyciem zmiennej(jako stałej) zawsze można uprzednio zadeklarować jej wartość w oparciu o jakąś stałą. Kropka.

Wygląda na to, że masz BASCOM zainstalowany w kompie. Co za problem, prześledzić na symulatorze jaki otrzyma się wynik? W ostateczności zawsze można się zwrócić bezpośrednio do Mark'a, lub na ogólno dostępne forum baskom'a. A dlaczego nie pasują Ci zaimplementowane funkcja: Action Returns the natural logarithm of a single variable. Syntax Target = Log(source) Remarks Target The single that is assigned with the LOG() of single target. Source The source single to get the LOG of. ?

pzdr Artur

U¿ytkownik "ziel" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@poczta.onet.pl...

Nie dzia³a to ... ju¿ próbowa³em

K.

On Behalf Of Kuba

A tak dokładniej to co nie działa? Bo mnie _mniej_więcej pokrywa się z Excelem.

pzdr Artur

U¿ytkownik "ziel" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@poczta.onet.pl...

Wpisujê sobie programik:

Dim X As Single Dim Y As Single X = 50 Y = Log(X) Print Y

I Bascom zwraca b³±d: Error 10: Wrong type (BIT,BYTE,INTEGER,WORD, or STRING) expected in file "..." dla linijki

Kuba

On Behalf Of Kuba

Nie zwraca błędów. Liczy normalnie. A jaki procek zadeklarowałeś?

pzdr Artur

U¿ytkownik "ziel" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@poczta.onet.pl

Atrur - sprawdza³e¶ na BascomAVR? A tu jest mowa o 2051/4051. Mo¿e siê jako¶ istotnie ró¿ni±?

Wracajac do rozwiniêcia wielomianowego logarytmów:

1) ln(1+x) dla 0 <=x <=1 |eps| <= 1e-5 = x(a5 +x(a4 + x(a3 + x(a2 + a1*x)))) gdzie: a1=0.03215845 a2 = -0.13606275 a3 = 0.28947478 a4 = -0.49190896 a5=0.99949556 2) rozwiniecie ln(1+x) w wielomian 8 stopnia (|eps|<=3e-8) pomijam, bo i tak nie masz wystarczaj±co dok³adnej artytmetyki 3) log(x) sqrt(10) <=x <=10 |eps| <= 1e-7 = t(a9 +t^2*(a7 + t^2*(a3 + a1*t^2)))) gdzie t = (x-1)/(x+1) 4) log(x) rozwiniêty w wielomian 3 stopnia dosta³e¶.

Jeszcze z rozwiniêæ w szereg:

1) ln (1+x) dla |x| < 1 SIGMA{k=1|inf} (-1)^(k+1)* x^k / k czyli: x(1 - x/2*( 1 - 2x/3*(1 - 3x/4*(1 - 4x/5)))) 2) ln (x) dla x >= 1/2 SIGMA{k=1|inf} ( (1/k)* (x-1)^k / x ) przyjmuj±c y=(x-1)/x mamy: y(1 + y/2*( 1 + 2y/3*(1 + 3y/4*(1 + 4y/5)))) 3) ln (x+1)/(x-1) dla |x| >= 1 2*SIGMA{k=1|inf} (1/ ( (2k-1) * x^(2k-1) ) ) czyli: 2/x * (1 + (1/(3x^2))*( 1 + (3/(5x^2))*( 1 + (5/(7x^2))*( 1 +(7/(9x^2)) ))))

Nic tylko liczyc ;-)

On Behalf Of Marek Dzwonnik

Ałał. :-( Faktycznie na '51 nie ma LOG. Nie pozostaje nic innego, jak na piechotę liczyć, albo ... AT90S2313? ;-)

pzdr Artur

Nie wiem jak to sie robi w Bascomie, bo nie uzywam, ale zawsze mozesz sobie to aproksymowac z przyjeta z gory dokladnoscia. Szczegoly dotyczace doboru odpowiedniej funkcji i jej wspolczynnikow znajdziesz w podrecznikach do analizy numerycznej. Z tablicowaniem czegokolwiek daj sobie spokoj, szkoda zachodu.

Pozdrawiam Piotr Wyderski

wystarczy zajrzec do jakiej kolwiek lektury z rozwinieciem w szereg Taylora, a dokladniej Mc Laurina np. funkcji, jak napisal Marek, ln(1+x). Mozna tez tak rozwijac dowolna, inna funkcje - wlasnie m.in. na tym opieraja sie kalkulatory naukowe itp. (sinus i cos tez ida sie rozwnac jak funkcja e^x). np.

formatting link
(nie matematyki, ale jakze praktycznej:) to odradzam:
formatting link
hehe ln(1+x):
formatting link
snipped-for-privacy@listserv.acsu.buffalo.edu/msg09849.html log,a (b) = log,c (b) / log,c (a) tu dokladnie log10(b) = ln(b+1-1) / ln(10)

Nie nalezy zapominac, ze ktos kiedys to wymyslil, a bascom czy FPU nie bierze tego z powietrza:)

pzdr. Janusz

Akurat logarytm, szczegolnie na tak szerokim zakresie [0.001-1.000] jest bardzo wredna funkcja do interpolacji wielomianowej.

Tu moze byc ciekawe stablicowanie wartosci dla poszczegolnych bitow, albo skorzystanie ze szczegolow implementacji zmiennoprzecinkowej - cecha jest praktycznie logarytmem, a mantysa liczby jest juz w zakresie 1..2 [czy 0.5..1.0]

J.

A zmiesci sie ? Bilblioteka metermatyczna chyba troche miejsca zajmuje ..

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required