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

Coraxberg

New member
19.11.2013
1
0
#1
Товарищи программисты, помогите пожалуйста с программой. Нужно найти арксинус числа (x), используя ряд Тейлора
. Точность 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.
 
R

rrrFer

#2
Код:
while (!(arcsinx == oldarcsinx))
она вообще не должна работать, дробные числа так сравнивать нельзя. Их можно сравнивать только с какой-то точностью (и сюда тебе и надо примотать что-то типа .00000000001 (нули сам допишешь)