| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| asin(x) Tейлъров ред - що не ще към 1? http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=10814 |
Страница 1 от 1 |
| Автор: | tgi [ Пон Ное 19, 2012 4:21 pm ] | |||||||||
| Заглавие: | asin(x) Tейлъров ред - що не ще към 1? | |||||||||
Тия дни попълвах библиотеките си да имам FP dual precision поддръжка и по скриптове и т.н. Направих неща дето не бях правил и си работят добре. Обаче asin(x) не ще като света. До 60 градуса е ОК, грешката е някъде в най-долните 1-2 бита. Обаче asin(1) ми казва, че било 1.5247.. (радиана, или към 87 градуса) Реда го намерих наготово, ще се озоря ако трябва аз да го мисля (не само беше отдавна ами и баш тоя урок не ми беше силната част и на времето Ей оттук го взех (и го намерих същото поне на още едно място): http://planetmath.org/TaylorSeriesOfArcusSine.html
Нещо не схващам как мога да го изпрограмирам да върви вярно от 0 до 60 а нагоре не (не знам откъде нагоре, проверявах го на 0, 30, 60 и 90 градуса). Още го гледам и му се чудя де, ако някой знае нещо повече по въпроса... Edit: Оправих си typo-то в заглавието |
||||||||||
| Автор: | БатеВаньо [ Пон Ное 19, 2012 7:20 pm ] |
| Заглавие: | Re: asin(x) Tейлъров ред - що не ще към 1? |
И аз не бих казал, че съм специалист в тази област, но изглежда че този ред е с лоша сходимост. Т.е. трябва да вземеш доста голям брой членове за наистина точен резултат. Тук http://mathforum.org/library/drmath/view/54137.html се дискутира алтернативна формула за пресмятане. Дано да е по-точна. |
|
| Автор: | woody [ Пон Ное 19, 2012 7:26 pm ] |
| Заглавие: | Re: asin(x) Tейлъров ред - що не ще към 1? |
Метни едно око на тази 'C' имплементация за 64-битов FP: http://sourceware.org/git/?p=glibc.git; ... 1d;hb=HEAD |
|
| Автор: | tgi [ Пон Ное 19, 2012 7:33 pm ] |
| Заглавие: | Re: asin(x) Tейлъров ред - що не ще към 1? |
Сега почвам да ги чета. Броят членове не може да даде повече, карам до максималния смислен (докато се вижда промяна в 64-бита FP число, ограничението е на 1024 а дори тая трагедия с аркус синуса свършва на 100 ли 150 някъде ли цикъла беше). Странното е, че сходимостта е съвсем добра до към пи/3 (дето е синус от толкова де, демек asin(0.866...))и нататък се влошава драматично. [edit] Сходимостта в предното изречение не е лоша, само бавна - но се стига до нулева промяна на резултата отнякъде натам. Точността след 60 градуса деградира, за да стигне до 0.97 вместо 1 при 90 градуса (а на 60 градуса е едно LSB някъде, т.е. поне 51 бита са верни (12 експонент и един знак + една подразбрана 1-ца)). Оправям го да не подведа след години някого попаднал на това писание Накрая ще смятам само до 45 градуса и ще обръщам след това, едно коренуване вповече ще има ама като не става инак какво да правя. Все пак първо да прегледам линковете да видя другите как го правят. |
|
| Автор: | tgi [ Пон Ное 19, 2012 8:09 pm ] |
| Заглавие: | Re: asin(x) Tейлъров ред - що не ще към 1? |
Направих го с единия корен вповече. Като е > (sin(pi/4)) смята asin(sqrt(1-x^2)) а резултата накрая го обръща като го вади от пи/2 . Оставям го така, за сметка в рамките на скрипт и то на сравнително рядка функция е добре докато някой/нещо не изпищи в тая връзка. Ако разните логаритми и степенни функции или самите синуси и т.н. не искаха щях да им се поизпотя повече ама това го оставям така докато не порябва иначе |
|
| Автор: | 741 [ Вто Ное 20, 2012 9:21 am ] |
| Заглавие: | Re: asin(x) Tейлъров ред - що не ще към 1? |
1 е последната стойност, за която функцията е дефинирана. За произволно малко над това редът вече е разходящ. Нормално е при доближаване към 1 грешката да расте. |
|
| Автор: | БатеВаньо [ Вто Ное 20, 2012 6:37 pm ] |
| Заглавие: | Re: asin(x) Tейлъров ред - що не ще към 1? |
Между другото, тук http://rosettacode.org/wiki/Thiele's_in ... on_formula намерих един интересен начин на пресмятане на обратни функции. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|