[C] Własna funkcja atan()

matma17
Użytkownik
Użytkownik
Posty: 157
Rejestracja: 5 gru 2008, o 17:04
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz

[C] Własna funkcja atan()

Post autor: matma17 »

Piszę oprogramowanie na pewne urządzenie. Niestety toole nie mają zaimplementowanej funkcji atan(). Gdzie mogę znaleźć kod funkcji atan(), lub jak napisać szybką i dokładną(dokładność zbliżona do funkcji z pliku math.h) funkcję atan() w języku C? Znalazłem taki kod ale aproksymacja jest poprawna tylko dla parametrów od 0 do 1.

Kod: Zaznacz cały

float atan(float x)
{
	const float c1 = 1.6867629106;
	const float c2 = 0.4378497304;
	const float c3 = 1.6867633134;

	float x2 = x*x;

	return(x*(c1 + x2*c2) / (c3 + x2));
}
Interesowała by mnie aproksymacja dla parametrów od \(\displaystyle{ 0}\) do \(\displaystyle{ \infty}\)
Ostatnio zmieniony 24 mar 2016, o 07:47 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[C] Własna funkcja atan()

Post autor: SlotaWoj »

Dla \(\displaystyle{ x>1}\) licz:
  • \(\displaystyle{ \arctg x=\frac{\pi}{2}-\arctg\frac{1}{x}}\)
Tak jest to implementowane w funkcjach bibliotecznych.
matma17
Użytkownik
Użytkownik
Posty: 157
Rejestracja: 5 gru 2008, o 17:04
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz

[C] Własna funkcja atan()

Post autor: matma17 »

Niestety nie mogę użyć atan(), arctan(), asin(), acos().
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[C] Własna funkcja atan()

Post autor: SlotaWoj »

Zmodyfikuj swój kod tak, aby uwzględnić to co napisałem uprzednio. Użyj abs, a później mnóż przez znak argumentu, aby otrzymać poprawne wartości atan dla \(\displaystyle{ x<-1}\) .
matma17
Użytkownik
Użytkownik
Posty: 157
Rejestracja: 5 gru 2008, o 17:04
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz

[C] Własna funkcja atan()

Post autor: matma17 »

Najmocniej przepraszam. Rano czytałem na szybko i coś źle zrozumiałem.
Dzięki.
ODPOWIEDZ