目次
1. Fundamentos de la función sin en C
En C, utilizando la biblioteca estándar «math.h», es posible realizar cálculos de funciones trigonométricas. En particular, la «función sin» se utiliza para obtener el seno (sine) de un ángulo. En este artículo, se explica detalladamente cómo usar la función sin en C, sus aplicaciones, y además, cómo implementar una función sin propia.1.1 ¿Qué es la función sin?
La función sin toma un ángulo en radianes y devuelve el valor del seno de ese ángulo. El radian es una unidad de ángulo basada en la constante π (pi), y para convertir a grados, es necesario realizar una conversión.2. Lo básico de la biblioteca math.h en C
Para utilizar funciones trigonométricas, se incluyemath.h
. Esto permite el uso de la función sin y otras funciones matemáticas.#include
#include
int main() {
double angle = 1.57; // Radio equivalente a 90 grados
double result = sin(angle);
printf("sin(1.57) = %f\n", result);
return 0;
}
En este código, el valor seno de 90 grados (1.57 radianes) se muestra como 1.000000.2.1 Conversión de grados a radianes
Para convertir grados a radianes, se utiliza la siguiente fórmula.#define DEG_TO_RAD(deg) ((deg) / 180.0 * 3.141592653589793)
int main(void) {
double deg = 90.0;
double rad = DEG_TO_RAD(deg);
printf("sin(%f grados) = %f\n", deg, sin(rad));
return 0;
}
En este programa, se convierte 90 grados a radianes y se ejecuta la función sin con ese valor.
3. Ejemplo de aplicación: Generación de onda sinusoidal
La onda sinusoidal es una forma de onda comúnmente utilizada en síntesis de sonido y procesamiento de señales. El siguiente código genera una onda sinusoidal y muestra el valor de cada muestra.#include
#include
int main() {
int samples = 100;
double frequency = 1.0;
double amplitude = 1.0;
double phase = 0.0;
double sampleRate = 100.0;
for (int i = 0; i < samples; i++) {
double t = i / sampleRate;
double value = amplitude * sin(2 * M_PI * frequency * t + phase);
printf("Muestra %d: %f\n", i, value);
}
return 0;
}
Este programa genera una onda sinusoidal utilizando la frecuencia y la tasa de muestreo especificadas. Los datos generados se pueden utilizar en audio u otros procesos de señales.4. Implementación de una función sin personalizada: Expansión de Maclaurin
En C, también es posible crear una función sin personalizada. Esto es útil en entornos específicos donde la biblioteca estándar no está disponible o cuando se necesita personalización. La aproximación usando la expansión de Maclaurin es un método para expresar la función sin como un polinomio.4.1 Función sin por expansión de Maclaurin
La fórmula de aproximación de la función sin usando la expansión de Maclaurin es la siguiente:
#include
#include
double factorial(int n) {
double result = 1.0;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
double my_sin(double x) {
double result = 0.0;
for (int i = 0; i < 10; i++) { // Calcular hasta 10 términos
int power = 2 * i + 1;
double term = pow(x, power) / factorial(power);
if (i % 2 == 0) {
result += term;
} else {
result -= term;
}
}
return result;
}
int main() {
double angle = 1.57;
printf("sen(1.57) = %f\n", my_sin(angle));
return 0;
}
Este programa calcula la función sin usando la expansión de Maclaurin. La precisión de la aproximación depende del número de términos calculados, y con alrededor de 10 términos se obtiene una precisión suficiente.