Blacksmith Postat Ianuarie 25, 2013 Partajează Postat Ianuarie 25, 2013 Are cineva o rutina care sa calculeze logaritm dintr-un numar ? Pt PIC-uri pe 8 biti. Am gasit ceva pe net dar are o instructiune care nu exista, "SKPNC" : http://www.dattalo.com/technical/software/pic/piclog.html Link spre comentariu
sofian Postat Ianuarie 25, 2013 Partajează Postat Ianuarie 25, 2013 mplab stie skpnc sau skpz si sunt niste macrouri vezi aici http://www.mv.com/ipusers/ke1g/pic_std_macros.html Link spre comentariu
Liviu M Postat Ianuarie 25, 2013 Partajează Postat Ianuarie 25, 2013 mplab stie...MPASM stie, nu mplab. Link spre comentariu
Blacksmith Postat Ianuarie 25, 2013 Autor Partajează Postat Ianuarie 25, 2013 I-auzi ce bine !Dar tocmai acum cand gasii functie logaritmica mi-am dat seama ca nu mai imi trebuie. Acum imi trebuie ridicare la o putere fractionala si functia radical ... :( Link spre comentariu
cirip Postat Ianuarie 26, 2013 Partajează Postat Ianuarie 26, 2013 Acum imi trebuie ridicare la o putere fractionala si functia radicaly=x^(a/b)y=x^a + x^(-b)log(y)=a*log(x)-b*log(x)=(a-b)*log(x)=c10^log(y)=10^cy=10^c, unde c=(a-b)*log(x)am notat x^a = "x la puterea a" . Sper ca nu am gresit pe undeva ...Dupa cum vezi, nu e chiar asa de rau ca stii sa calculezi logaritmul. Daca mai afli si cum se face ridicare la putere, poti sa calculezi rezultatul oricarei ridicari la o putere fractionara, inclusiv radical. Radicalul este un caz particular in care a=1 si b=2.Am folosit baza 10 in exemplu, dar se aplica la logaritmul in orice baza. Daca logaritmul pe care il ai este cel natural, atunci va trebui sa afli cum se calculeaza e^x. Link spre comentariu
cirip Postat Ianuarie 26, 2013 Partajează Postat Ianuarie 26, 2013 y=x^a + x^(-b)am facut-o de oaie si nu mai pot sa corectez.y=x^a + x^(-b) se va inlocui cuy=x^(a * b^(-1)) Link spre comentariu
cirip Postat Ianuarie 26, 2013 Partajează Postat Ianuarie 26, 2013 Pffff ... va rog sa ignorati cele doua posturi de mai sus. Inca o data, cu exemplu. y=x^(a/b)log(y)=(a/b)*log(x), notam c=(a/b)*log(x)10^(log(y))=10^((a/b)*log(x))=10^cy=10^cexemplu in excelul atasat.Asa e cand nu le faci pe hartie. Mintea mai joaca feste. Dar am impresia ca Dudi si-a pierdut interesul. [attachment=0]radical_log.xls[/attachment] Link spre comentariu
10vid Postat Ianuarie 26, 2013 Partajează Postat Ianuarie 26, 2013 De obicei mai toate functiile (log, ln, e, sqrt, x^y, sin, cos, tan etc.....) se aproximeaza prin serii Taylor, care constau din cateva adunari si inmultiri.Cirip, foarte interesant si adevarat ceea ce spui, dar logaritmul ala nu vine moca, impartirea e groaznica si mai e si o inmultire. Toate astea pentru a calcula un biet radical?! Cand de fapt ar fi mai simplu sa calculezi direct radicalul. Sunt rutine pe net cam in jur de 100 ciclii. Nu e mult, avand in vedere ca o inmultire 16x16 biti e vreo 140 ciclii pe PIC16. Link spre comentariu
cirip Postat Ianuarie 27, 2013 Partajează Postat Ianuarie 27, 2013 Intru totul de acord, dar Dudi vrea si ridicarea la putere fractionara, nu numai cazul particular al radicalului. Si m-am gandit ca daca tot are logaritmul ala acolo, de ce sa nu-l foloseasca? Oricum, toata chestia e flexare la muschiul neuronului. Un pic de artimetica asa de intretinerea tonusului mental. Ca daca e vorba sa optimizam, depinde de context. Cat despre aproximari, intr-adevar seria Taylor este destul de populara, dar are dezavantajul convergentei lente. Relativ recent am folosit pentru e^x aproximarea Padé, care este de tip rational-polinomiala, care converge mai repede si are precizie foarte buna pe un domeniu mai larg de valori ale exponentului. Detalii aici: http://en.wikipedia.org/wiki/Pad%C3%A9_approximant Link spre comentariu
Blacksmith Postat Ianuarie 27, 2013 Autor Partajează Postat Ianuarie 27, 2013 Am gasit niste Application Notes de la Microchip cu functiile astea, sa vedem ce e de capu lor : - PDF-ul - si softul ! Link spre comentariu
Blacksmith Postat Ianuarie 30, 2013 Autor Partajează Postat Ianuarie 30, 2013 Le-am testat, merg foarte bine ! Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum