2013-08-01 59 views
7

Próbuję wygenerować wielomianów ortogonalnych w badania, ale wciąż otrzymuję błąd nie rozumiemDlaczego "poli" narzeka na stopień mniejszy niż liczba unikalnych punktów?

> poly(1:1000, 50) 
Error in poly(1:1000, 50) : 
    'degree' must be less than number of unique points 

pewnością liczba unikalnych punktów jest 1000? Co to znaczy? Czy to błąd, a jeśli tak, to czy ktoś wie, że pracuję?

Edytuj: Wygląda na to, że zaczynasz kopać dla stopnia> 27 dla dowolnej liczby punktów - czy jest to limit nieudokumentowany?

+3

Z ciekawości, dlaczego chcesz generować wielomian 50-tego rzędu? Mam szczerą nadzieję, że to nie jest modelowanie ... – Justin

+0

Nie to nie jest modelowanie, ale teraz tak to wyrazisz, jestem mniej zaskoczony, że to nie działa przez 50! Byłem tak pochłonięty tym, co robiłem, zapomniałem o tym, za co większość ludzi prawdopodobnie używa tej funkcji. (To trochę skomplikowane, aby wyjaśnić krótko, ale ma to związek z generowaniem losowych funkcji analitycznych w przerwie) – Corone

Odpowiedz

12

Przepełnienie liczbowe. Jeśli spojrzeć na kod dla poly, zobaczysz to generowanie indywidualne warunki wielomianu jako etap pośredni:

X <- outer(x, seq_len(n) - 1, "^") 

i kiedy n (stopień wielomianu chcesz) jest 50, uzyskane warunki iść do 1e132.

+0

Wielkie dzięki - nie mogę narzekać, jak zauważył Justin powyżej, to nie jest tak naprawdę docelowe wykorzystanie tej funkcji ! – Corone