Witam, mam następujący problem...
Chciałem napisać program który będzie mi liczył logarytm naturalny, wiem że w bibliotece math.h jest dostępna, ale właśnie chodzi mi o samodzielne napisanie. Oto kod:
No i różnie próbowałem to zrobić, ale ani razu jeszcze nie udało mi się zbliżyć do prawidłowych wartości, proszę o pomoc co mam źle zapisane ?
Pewnie wszystko znając moje podejscie "dookola"
Pozdrawiam,
Poswiatex1
Chciałem napisać program który będzie mi liczył logarytm naturalny, wiem że w bibliotece math.h jest dostępna, ale właśnie chodzi mi o samodzielne napisanie. Oto kod:
#include <stdio.h>
#include <math.h>
float ln(float x)
{
float wynik = 0;
int n;
x = x-1; //Wg, szeregu Maclaurina, (x-1) podnosimy do potegi .
for (n=1; n<20; n++) // n<20 20 ustawilem "poprostu"
{wynik = wynik + pow(x,n)/n;
wynik = wynik - pow(x,n)/n;} //wg wzoru raz jest - a raz +
return wynik;
}
int main()
{
float a, wynik;
printf("Podaj liczbe: ");
while(scanf("%f", &a) == 1)
{
printf("ln(%f) = %f\n", a, ln(a)); //Moja straszna funkcja
printf("log(%f) = %f\n", a, log(a)); //Wyswietlam tu wynik prawidlowy
}
system("pause");
}No i różnie próbowałem to zrobić, ale ani razu jeszcze nie udało mi się zbliżyć do prawidłowych wartości, proszę o pomoc co mam źle zapisane ?
Pewnie wszystko znając moje podejscie "dookola"
Pozdrawiam,
Poswiatex1