il seno ha un'espansione in serie a segni alternati, questa formula è ovviamente sbagliata... Perché non scrivi semplicemente il termine generale in maniera esplicita e sommi quello? (possibilmente partendo dall'ultimo termine, in modo da sommare sempre valori di ordini di grandezza non troppo lontani; senza questa accortezza rischi che gli ultimi termini vengano mangiati dalla precisione dei double)codice:sin = sin + (1/(fatt(i)))*pow(a, i)+(1/(fatt(i+2)))*pow(a, i+2)-(1/fatt(i+4))*pow(a, i+4);
In ogni caso, anche aggiustando la formula, con Taylor più ti allontani dal centro della tua espansione in serie, maggiore sarà l'errore. Dato però che il seno è periodico, puoi sempre scrivere una espansione in serie con una buona approssimazione nel range -pi,+pi, e poi ridurre sempre il valore che ti viene passato a quel range a colpi di fmod.

Rispondi quotando