Поиск Арксинуса, При Помощи Рядов Тейлора C.

Тема в разделе "Общие вопросы по С и С++", создана пользователем Coraxberg, 26 ноя 2013.

  1. Coraxberg

    Coraxberg New Member

    Регистрация:
    19 ноя 2013
    Сообщения:
    1
    Симпатии:
    0
    Товарищи программисты, помогите пожалуйста с программой. Нужно найти арксинус числа (x), используя ряд Тейлора [​IMG]. Точность 11 знаков после запятой. Вот что я накотал:

    <!--shcode--><pre><code class='c'>int main()
    {
    double a = 1, b = 2, x = 0.2, L = a/b, K = (x*x*x)/3, arcsinx=0, oldarcsinx;

    while (!(arcsinx == oldarcsinx))
    {
    oldarcsinx = arcsinx;
    arcsinx = L * K + oldarcsinx;
    a = a+2;
    b = b+2;
    L = L * (a/b);
    K = K * ((x*x)/2);
    }
    arcsinx = arcsinx + x;
    printf ("%.10e\n", arcsinx);
    }[/CODE]

    Программа считает арксинус, но с точностью до ~7 знаков после запятой. Подскажите пожалуйста как повысить точность. Язык C.
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Код (Text):
    while (!(arcsinx == oldarcsinx))
    она вообще не должна работать, дробные числа так сравнивать нельзя. Их можно сравнивать только с какой-то точностью (и сюда тебе и надо примотать что-то типа .00000000001 (нули сам допишешь)
     
Загрузка...

Поделиться этой страницей