vypocet ln c

HackForum

vypocet ln c#
Dobry den,

Mam tu vlastni vypocet prirozeneho logaritmu:
[link]

jenze je desne neefektivni jakmile je cislo trosku vetsi tak vypocet trva neskutecne dlouhou dobu tak jsem se chtel zeptat jestli nekdo neco podobneho take nemusel resit do skoly nebo na nejaky jiny projekt :] a jestli ma nejake jine reseni , nemusite psat zdrojaky ale spis jestli se to da pocitat i nejak jinak.

diky za pripadne odpovedi jstc
(odpovědět)
jstc | 147.229.65.*26.10.2012 9:46
re: vypocet ln c#
Prvni co me napadne je Tayloruv rozvoj. Jeden z vhodnych tvaru je napriklad: ln x se rovna
(x-1) - ((x-1)^2)/2 + ((x-1)^3)/3 - ... + (-1)^(n+1) * ((x-1)^n)/n + ...

Maly problem je, ze tahle rada ma polomer konvergence jenom 1, takze konverguje pouze pro x z intervalu (0 ; 2) . Proto tady vyuzijeme vlastnosti logaritmu ln x = -ln 1/x. (Coz neni uplne idealni, vzhledem k reprezentaci cisel v pocitaci, ale porad je to vyrazne lepsi nez ten tvuj algoritmus). Dalsi nevyhoda je, ze me nenapada vhodny zpusob, jak odhadnout pocet platnych cislic.

Jinak kdyz zagooglujes neco jako "infinite series ln x" tak urcite najdes i dalsi algoritmy a s rychlejsi konvergenci.

Btw, mohl bys mi rict, jak jsi vubec prisel na ten algoritums ktery pouzivas ted? Nejak me nenapada, jak by se odvodil.
(odpovědět)
kolemjdouci26.10.2012 23:19
re: vypocet ln c#
Diky moc za odpoved mrknu se na to a asi to udelam tim taylorovim rozvojem :] ... jinak na ten muj sem prisel tak ze integrace 1/x == ln(x) + c tak sem to nejak zkousel a vyslo mi todle :D .. ale je to strasne neefektivni a ten tayloruv rozvoj udelam jsem to chtel zkusit ale prave jsem nejak nedokazal najit ten spravny interval nikde :P takze diky moc za info :]
(odpovědět)
jstc | 88.102.11.*27.10.2012 10:57
re: vypocet ln c#
hm, prirozeny logaritmus jsem programoval pred par lety na FIT VUT...

[link]

(Jestli tenhle post vypada vedle tech predchozich schizofrenicky, tak to bude tim, ze muj bratr si byl liny zakladat vlastni ucet na soomu a misto toho pouziva dlouhodobe muj)
(odpovědět)
kolemjdouci27.10.2012 14:44
re: vypocet ln c#
No delam to na uplne stejnej projekt jako ty :P jenom mame zadany trosku jiny funkce nez ste meli vy ale vsechno uz mam jen to stim logaritmem sem mel desive pomale.

Zrovna ten ln pouzivam u exponencialni funkce. Jinak diky mrknu jak to mas ale stejne to musim psat sam :)
(odpovědět)
jstc | 88.102.11.*27.10.2012 14:57
re: vypocet ln c#
koukam, ze se to tu mnozi studentama z FITu :D
(odpovědět)
panda | 81.19.3.*27.10.2012 15:48
re: vypocet ln c#
Hele tak jsem fakt asi hodne natvrdlej ale vsechno chapu az na ten prevod do toho intervalu kde to konverguje.Do jakyho intervalu to tam cpes ty? a proc tam mas zrovna to vetsi jak 1.5? kdyby nahodou jsi tohle jeste precetl a mohl odpoved byl bych moc rad :]
(odpovědět)
jstc | 93.153.14.*1.11.2012 18:10
re: vypocet ln c#
fu, odpovedel jsem, zapomnel zmacknout no spam a o napsane jsem prisel...

tayloruv rozvoj pro ln(x+1) ... graf [link] => obor idealni konvergence (-0.5;0.5)


pro velka x delim eulerovym cislem tak dlouho (kolikrat vydelim, tolik potom prictu k vysledku; viz komentar u funkce) dokud se x nestane mensim nez 1.5 => tzn. ze v tehle fazi je x v rozsahu (0.55,1.5) (0.55=1.51/e) , nicmene protoze je tayloruv rozvoj pro ln(x+1) a ne pro ln(x), tak musim jeste tu jednicku odecist a tak se dostanu do kyzeneho rozsahu (resp. (-0.45,0.5) - proc to neni tech -0.5 si uz nepamatuju ale asi jsem k tomu nejaky duvod mel... nicmene to si muzes prizpusobit sam aby ti to vychazelo)...


Preju stesti na FITu, ja jsem kvuli zvysovani prestize a hardwaru prebehl po bakalari na FI MUNI...
(odpovědět)
kolemjdouci nenalogovany | 90.178.176.*2.11.2012 23:33
re: vypocet ln c#
no to snad ne taky sem sem uklikl u nospam a dal odeslat... :D
tak dekuji za odpovedi a za diskuzi a pomohl jsi :] a uvidim jak semi bude libit na fitu :P
(odpovědět)
jstc | 147.229.186.*4.11.2012 2:51

Zpět
Svou ideální brigádu na léto najdete na webu Ideální brigáda
 
 
 

 
BBCode