Obliczanie przybliżonej wartości (pętla do...while)

0

Witam, posiadam pewien problem, nakazano mi rozwiązać takie zadanie :
" Przybliżone obliczanie funkcji ln(1+x), gdzie -1<x<=1, można przeprowadzić przy
wykorzystaniu wzoru:

si = x + (-1) * (x2/2) + (-1)2 * (x3/3) + ... + (-1)i-1*xi/i
ln(1+x)=lim si

Napisz program wykorzystujący pętlę while / do-while do obliczenia przybliżonej wartości
ln(1+x) dla zadanych wartości parametru x i przybliżenia ε. Obliczenia powinny się
zakończyć, gdy |si-si-1| < ε.

Byłby w stanie ktoś podać mi jakieś wskazówki odnośnie rozwiązania tego zadania ? Bo tak trochę nie za bardzo wiem jak się za to zabrać.

1
  1. Przed pętlą deklarujesz zmienną int i = 1;.
  2. Piszesz pętlę i w pętli:
    2.1. Obliczasz wartość s = ... (ten wzór). Potęgę można obliczyć np. za pomocą funkcji pow. Tam, gdzie jest i, wstawiasz zadeklarowane i.
    2.2. Zapamiętujesz wartość zmiennej s (ponieważ musisz jej użyć w warunku w następnej iteracji): double old_s = s;.
    2.2. Sprawdzasz podany warunek ("1" powinna być najprawdopodobniej w indeksie). Jeśli tak, to wychodzisz z pętli.
1

@Michał Bodziony napisał

2.1. Obliczasz wartość s = ... (ten wzór). Potęgę można obliczyć np. za pomocą funkcji pow. Tam, gdzie jest i, wstawiasz zadeklarowane i.

Niezupełnie, lepiej wprowadzić nową zmienną, np. składnik, w której pamiętany jest ostatni wyliczony składnik i stosować wzór

skladnik = ((-1)*x*skladnik)*(i-1)/i;
s = s + skladnik;

1 użytkowników online, w tym zalogowanych: 0, gości: 1