funkcja liczaca ln(x+1)
Ostatnio zmodyfikowano 2017-06-11 21:54
degel1234 Temat założony przez niniejszego użytkownika |
funkcja liczaca ln(x+1) » 2017-06-11 21:12:23 Czesc mam zrobic funkcje ktora liczy ln(x+1) dla dowolnego x rzeczywistego (domyslam sie ze tylko dla x>=-1). Napisalem funkcje zgodnie z rozwinieciem szeregu Maclaurena ale niestety wydaje sie ze liczy ona poprawnie tylko dla x z przedzialu (-1,1>,zreszta tak jak pisze na wiki. Pytanie dlaczego nie moge wstawic dowolnej liczby? Jak przerobic program?
Oto kod: #include <iostream> #include <cmath>
using namespace std;
double logarytm(double x,int n) { double sum=0; for(int i=1; i<=n;i++) { sum=sum+((pow((-1),i+1)*pow(x,i))/i); } return sum; } int main() { cout<<logarytm(0.5,100); //np dla x=0.5 i wykonanie 100 cykli }
|
|
Luq |
» 2017-06-11 21:54:03 Pytanie dlaczego nie moge wstawic dowolnej liczby? |
Bo szereg jest zbieżny tylko w przedziale (-1, 1]. Jak chcesz policzyć logarytm dla x>1, to możesz skorzystać ze wzoru ln x = -ln(1/x) |
|
« 1 » |