Как вычисляют e^x?

Тема в разделе "WASM.A&O", создана пользователем ton4eg, 23 окт 2007.

  1. ton4eg

    ton4eg New Member

    Публикаций:
    0
    Регистрация:
    22 янв 2007
    Сообщения:
    5
    Я так понял есть варианты с разложением а-ля в тейлора, только тем или иным образом улучшенные.
    А есть второй вариант все делать целочисленно и по таблицам.

    Проясните ситуацию плз. Когда и что выгодно использовать.
    В частности как в общих чертах реализовано в процессорах.

    Желательно с ссылкой на конктретные методы.
     
  2. Spiteful

    Spiteful New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2004
    Сообщения:
    33
    Табличные методы шустрые,но бОльшая потребность к памяти для хранения этих таблиц. Если вычислять методами а-ля ряд тейлора,то хранение всего 5-6 констант позволяет получить высокую точность; чем точнее нужен результат, тем больше операций сложения и умножения ->замедление алгоритма.
    Конкретное описание методов - в различных справочниках по вычислительным методам, могу несколько сюда написать.
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Кроме ряда тейлора вроде есть цепные дроби, но я про них не в курсе.

    В процессорах по-моему, как раз, не тейлор, а чтото еще.
     
  4. Spiteful

    Spiteful New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2004
    Сообщения:
    33
    Тейлора приводить не буду, несколько других способов посчитать:
    [​IMG]
    где a0...a7(0.9999998,1.00000000,0.5000063,0.1666674,0.0416350,0.0083298,0.0014393,0.0002040)

    в виде дроби:
    [​IMG]

    [​IMG]
    где a0...a5(1.000000000,0.125000254,0.007811604,0.000326627,0.000009652,0.000000351)
     
  5. ton4eg

    ton4eg New Member

    Публикаций:
    0
    Регистрация:
    22 янв 2007
    Сообщения:
    5
    был бы крайне благодарен!
     
  6. 10110111

    10110111 New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    319
    Адрес:
    Санкт-Петербург
    Spiteful
    Чё-то в виде дроби не то...ошибка выше результата на десятки порядков при x=100
     
  7. Spiteful

    Spiteful New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2004
    Сообщения:
    33
    10110111
    потому что формула в общем для x (-1;1), т.е. для дробных чисел.
     
  8. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Сопроцесор считает exp(x)=2^(x*log2(e)), где log2(e) - хранимая в сопроцессоре константа.
    Вернее не сопроцессор, а все программы, его использующие.
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ну да, а сопроцессор собственно и считает 2^x =)