Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Calcular el seno de X mediante aproximaciones

Estas en el tema de Calcular el seno de X mediante aproximaciones en el foro de C/C++ en Foros del Web. Necesito ayuda con este problema en lenguaje C, por favor si me pueden colaborar o almenos darme una guia de como hacerlo. Desarrolle un programa ...
  #1 (permalink)  
Antiguo 28/05/2012, 21:07
 
Fecha de Ingreso: mayo-2012
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Calcular el seno de X mediante aproximaciones

Necesito ayuda con este problema en lenguaje C, por favor si me pueden colaborar o almenos darme una guia de como hacerlo.

Desarrolle un programa que calcule el seno de x mediante una aproximación de serie de potencias. El programa debe presentar el
resultado del cálculo mediante dos métodos:

a) Calcular el seno de x mediante la suma de los primeros n términos de su serie de potencia.
b) Calcular el seno de x mediante la suma de la serie de potencia hasta que el siguiente término en la serie a ser sumado sea
menor a 10-5.

Cada caso de prueba es un número entero n (el número de términos para el método a) y un valor de x en radianes. La salida esta
compuesta de dos parejas de valores, el número de términos usados en cada método y el correspodiente valor de sin(x); la primera
pareja corresponde a al método a y la segunda pareja al método b.


Ejemplo con 5 casos de prueba:

Entrada (archivo)
2 5.2
3 2.3
2 0.5
3 -0.9
2 7.3

Salida (archivo o pantalla)
2 -0.871 4 -0.883
3 0.746 3 0.746
2 0.479 3 0.479
3 -0.783 3 -0.783
2 0.842 4 0.850
  #2 (permalink)  
Antiguo 29/05/2012, 01:26
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Calcular el seno de X mediante aproximaciones

Lo que te están pidiendo es el desarrollo de una función en serie de potencias. Para ello tenemos:

- Fórmula de Taylor
- Fórmula de MacLaurin

Para el caso de la función seno, te recomiendo la de MacLaurin.
  #3 (permalink)  
Antiguo 29/05/2012, 07:56
 
Fecha de Ingreso: diciembre-2008
Mensajes: 50
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Calcular el seno de X mediante aproximaciones

Exactamente. Previo a programar necesitas saber cómo hacer el desarrollo. Hazte un pseudocódigo y luego te será más facil implementar el algoritmo que uses...
  #4 (permalink)  
Antiguo 30/05/2012, 10:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Calcular el seno de X mediante aproximaciones

ya tengo una idea de como resolver el programa, el punto A seria mediante la serie de Taylor y el punto B seria mediante la serie de McLaurin, ahora la pregunta que tengo es si existe alguna funcion o algun operador en lenguaje C para sar el producto factorial de un numero?
  #5 (permalink)  
Antiguo 30/05/2012, 10:56
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Calcular el seno de X mediante aproximaciones

El factorial se hace rapidamente con una funcion recursiva. O con un for.

Código C++:
Ver original
  1. int factorial(int n)
  2. {
  3.    int i, resultado = 1;
  4.    for ( i=1;i<=n;i++ ) resultado *= i;
  5.    return resultado;
  6. }
  #6 (permalink)  
Antiguo 31/05/2012, 01:08
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Calcular el seno de X mediante aproximaciones

Da igual emplear el deasrrollo de Taylor o el de MacLaurin, de hecho el de MacLaurin es un caso particular del de Taylor. Para el caso concreto de la función seno, creo que es más cómodo el de MacLaurin.

Sobre la función factorial, no suele venir implementada. Es muy fácil de implementar, por ejemplo como te ha posteado sam90. Si utilizas esta implementación, ten en cuenta que:

Puedes llegar a 12! con el tipo entero de 32 bits.
Puedes llegar a 20! si dispones de un tipo entero de 64 bits.
Puedes llegar a 33! si implementas la función como float.
Puedes llegar a 170! si implementas la función como double.

Dado que el desarrollo en serie de la función seno tiene solamente los términos de potencia impar (los que corresponderían a potencias pares se anulan), el número máximo de términos que podrías emplear sería la mitad de los rangos que te he indicado más arriba.

Comprueba si dispones de la función gamma de Euler (edita el archivo math.h, que debe estar en el directorio include de tu compilador). Esta es una función recursiva que se define como

gamma(p) = (p-1)*gamma(p-1)

que, para el caso particular de que p sea entero positivo (estrictamente mayor que cero), nos encontramos con la función factorial:

gamma(p) = (p-1)!

es decir,

p! = gamma(p+1)

Si la tienes, puede que tengas varios tipos (había también una gamma incompleta, por ejemplo). Te tocaría probarlas, a ver cuál es la que corresponde.

Saludos,

Etiquetas: lenguaje, mediante, programa, calculadora
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:07.