0% encontró este documento útil (0 votos)
5 vistas12 páginas

Ecuaci On General en Un Plano: Indice

El documento detalla el proceso para calcular la ecuación de un plano en tres dimensiones a partir de tres puntos no colineales, utilizando determinantes y el producto cruz. Incluye ejemplos numéricos y una explicación de un programa en C que implementa este cálculo y verifica la pertenencia de un cuarto punto al plano. Además, se describe la estructura del código y las funciones utilizadas para llevar a cabo el cálculo.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas12 páginas

Ecuaci On General en Un Plano: Indice

El documento detalla el proceso para calcular la ecuación de un plano en tres dimensiones a partir de tres puntos no colineales, utilizando determinantes y el producto cruz. Incluye ejemplos numéricos y una explicación de un programa en C que implementa este cálculo y verifica la pertenencia de un cuarto punto al plano. Además, se describe la estructura del código y las funciones utilizadas para llevar a cabo el cálculo.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ecuación general en un plano

Martinez de Santiago Eric


Orihuela Figueroa Elder Emmanuel
Ramirez Juarez Johnny Alejandro
2 de abril de 2025

Índice
1. Ecuación de un plano de 3 dimensiones 2
1.1. Definición de los puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Cálculo de los vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Producto Cruz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4. Expansión del Determinante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5. Ecuación del Plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.6. Ejemplo Numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.7. Vector Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.8. Ecuación del Plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Código en c 4

3. Estructura del Código 7


3.1. Librerı́as usadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2. Funciones utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3. Estructura de el código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.4. Función determinante laplace() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.5. Función imprimir ecuacion() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.6. Función Principal calcular ecuacion plano() . . . . . . . . . . . . . . . . . . . . . 8
3.7. Entrada de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.8. Verificación de Colinealidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.9. Cálculo de los Coeficientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.10. Evaluación de Punto Adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.11. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4. Aplicaciones en la vida y en ingenierı́a aeronáutica 12

Resumen

1
1. Ecuación de un plano de 3 dimensiones
La ecuación de un plano en el espacio tridimensional se puede obtener a partir de tres puntos no
colineales. En este documento, explicaremos paso a paso cómo calcular dicha ecuación utilizando
determinantes y el producto cruz.

1.1. Definición de los puntos


Dado tres puntos en el espacio, supongamos que tenemos:
A(x1 , y1 , z1 )
B(x2 , y2 , z2 )
C(x3 , y3 , z3 )

1.2. Cálculo de los vectores


⃗ y AC
Calculamos los vectores AB ⃗ que parten del punto A hacia los puntos B y C respectiva-
mente:
⃗ = (x2 − x1 , y2 − y1 , z2 − z1 )
AB
⃗ = (x3 − x1 , y3 − y1 , z3 − z1 )
AC

1.3. Producto Cruz


⃗ × AC
Para obtener el vector normal al plano, calculamos el producto cruz ⃗n = AB ⃗ utilizando
el determinante de una matriz 3x3:
î ĵ k̂
⃗n = x2 − x1 y2 − y1 z2 − z1
x3 − x1 y3 − y1 z3 − z1

1.4. Expansión del Determinante


Calculamos cada componente del vector normal mediante la expansión del determinante:

A = (y2 − y1 )(z3 − z1 ) − (z2 − z1 )(y3 − y1 )


B = (z2 − z1 )(x3 − x1 ) − (x2 − x1 )(z3 − z1 )
C = (x2 − x1 )(y3 − y1 ) − (y2 − y1 )(x3 − x1 )

1.5. Ecuación del Plano


La ecuación general del plano es:

A(x − x5 ) + B(y − y5 ) + C(z − z5 ) = 0

Sustituyendo el valor de D:
D = −(Ax1 + By1 + Cz1 )

2
Finalmente, la ecuación queda como:

Ax + By + Cz + D = 0

1.6. Ejemplo Numérico


Dado los puntos A(1, 2, 3), B(4, 0, 5), y C(2, 3, 1):

⃗ = (3, −2, 2)
AB
⃗ = (1, 1, −2)
AC

1.7. Vector Normal


El vector normal calculado es:
⃗n = (2, 8, 5)

1.8. Ecuación del Plano


Sustituyendo en la ecuación general:

2x + 8y + 5z − 33 = 0

3
2. Código en c

Figura 1: Bloque 1 de el código

4
Figura 2: Bloque 2 de el código

5
Figura 3: Bloque 3 del código

Figura 4: Bloque 4 de el código

6
3. Estructura del Código
Este documento explica en detalle el funcionamiento de un programa en C que calcula la ecuación
de un plano en el espacio tridimensional a partir de tres puntos, y verifica si un cuarto punto
pertenece a dicho plano.

3.1. Librerı́as usadas


ˆ stdio.h (Da acceso al ingreso e impresión de datos)

ˆ math.h (Da acceso funciones matemáticas en el programa)

3.2. Funciones utilizadas


ˆ double (Da números decimales con bastante precisión)

ˆ void (Usado en la declaración de la función la cual no recibe parámetros)

ˆ int (tipo de datos para declarar variables)

ˆ int main (Programa principal)

ˆ return (Para devolver valores de funciones y terminar el programa)

ˆ printf (Para imprimir texto y números formateados)

ˆ scanf (Para leer la entrada del usuario)

ˆ if (Para tomar las decisiones)

ˆ else (Para manejar la alternativa cuando la condición del if no se cumple)

ˆ while (Para crear bucles)

ˆ getchar (para leer caracteres individuales)

ˆ fabs (Función que devuelve el valor absoluto de un número)

3.3. Estructura de el código


El código consta de tres funciones principales:

1. determinante laplace(): Calcula determinantes 3x3

2. imprimir ecuacion(): Muestra la ecuación del plano formateada


3. calcular ecuacion plano(): Lógica principal del programa

7
3.4. Función determinante laplace()

double d e t e r m i n a n t e l a p l a c e ( double a1 , double a2 , double a3 ,


double b1 , double b2 , double b3 ,
double c1 , double c2 , double c3 ) {
return a1 * ( b2 * c3 = b3 * c2 ) // C o f a c t o r de a1
= a2 * ( b1 * c3 = b3 * c1 ) // C o f a c t o r de a2
+ a3 * ( b1 * c2 = b2 * c1 ) ; // C o f a c t o r de a3
}
Esta función implementa el método de Laplace para calcular determinantes de matrices 3x3.
La fórmula utilizada es:

det = a1 · (b2 · c3 − b3 · c2) − a2 · (b1 · c3 − b3 · c1) + a3 · (b1 · c2 − b2 · c1)

3.5. Función imprimir ecuacion()

void i m p r i m i r e c u a c i o n ( double A, double B, double C, double D) {


p r i n t f ( ” \ nEl p l a n o que c o n t i e n e a e s e punto e s : ” ) ;

int p r i m e r t e r m i n o = 1 ;

i f (A != 0 ) {
p r i n t f ( ” %.2 f x ” , A ) ;
primer termino = 0;
}
i f (B != 0 ) {
i f ( ! p r i m e r t e r m i n o ) p r i n t f ( ” %s ” , (B > 0 ) ? ”+” : ”=” ) ;
p r i n t f ( ” %.2 f y ” , (B > 0 ) ? B : =B ) ;
primer termino = 0;
}
/* . . . */
}
Esta función formatea la ecuación del plano Ax + By + Cz + D = 0 de manera elegante:
Maneja correctamente los signos positivos/negativos
Omite términos con coeficiente cero
Asegura que el primer término no tenga signo positivo

3.6. Función Principal calcular ecuacion plano()

void c a l c u l a r e c u a c i o n p l a n o ( ) {
double x1 , y1 , z1 , x2 , y2 , z2 , x3 , y3 , z3 ;

p r i n t f ( ” ** P U N T O S D E L P L A N O ** \n” ) ;

8
p r i n t f ( ” I n g r e s a l a coordenada 1 d e l punto 1 : ” ) ; s c a n f ( ”%l f ” , &x1 ) ;
p r i n t f ( ” I n g r e s a l a coordenada 2 d e l punto 1 : ” ) ; s c a n f ( ”%l f ” , &y1 ) ;
p r i n t f ( ” I n g r e s a l a coordenada 3 d e l punto 1 : ” ) ; s c a n f ( ”%l f ” , &z1 ) ;

p r i n t f ( ” I n g r e s a l a coordenada 1 d e l punto 2 : ” ) ; s c a n f ( ”%l f ” , &x2 ) ;


p r i n t f ( ” I n g r e s a l a coordenada 2 d e l punto 2 : ” ) ; s c a n f ( ”%l f ” , &y2 ) ;
p r i n t f ( ” I n g r e s a l a coordenada 3 d e l punto 2 : ” ) ; s c a n f ( ”%l f ” , &z2 ) ;

p r i n t f ( ” I n g r e s a l a coordenada 1 d e l punto 3 : ” ) ; s c a n f ( ”%l f ” , &x3 ) ;


p r i n t f ( ” I n g r e s a l a coordenada 2 d e l punto 3 : ” ) ; s c a n f ( ”%l f ” , &y3 ) ;
p r i n t f ( ” I n g r e s a l a coordenada 3 d e l punto 3 : ” ) ; s c a n f ( ”%l f ” , &z3 ) ;

// / Determinante para v e r i f i c a r s i l o s p u n t o s son c o l i n e a l e s ( usando L a p l a c e )


double d e t = d e t e r m i n a n t e l a p l a c e ( x1 , y1 , 1 ,
x2 , y2 , 1 ,
x3 , y3 , 1 ) ;

i f ( d e t == 0 ) {
p r i n t f ( ” \ nLos puntos son c o l i n e a l e s , no s e puede d e f i n i r un p l a n o . \ n” ) ;
return ;
}

// / C l c u l o de c o e f i c i e n t e s d e l p l a n o Ax + By + Cz + D = 0 usando L a p l a c e
double A = d e t e r m i n a n t e l a p l a c e ( y1 , z1 , 1 ,
y2 , z2 , 1 ,
y3 , z3 , 1 ) ;

double B = = d e t e r m i n a n t e l a p l a c e ( x1 , z1 , 1 ,
x2 , z2 , 1 ,
x3 , z3 , 1 ) ;

double C = d e t e r m i n a n t e l a p l a c e ( x1 , y1 , 1 ,
x2 , y2 , 1 ,
x3 , y3 , 1 ) ;

double D = = d e t e r m i n a n t e l a p l a c e ( x1 , y1 , z1 ,
x2 , y2 , z2 ,
x3 , y3 , z3 ) ;

// / Imprimir e c u a c i n d e l p l a n o p r i n c i p a l
p r i n t f ( ” \ nEl p l a n o que pasa por l o s puntos e s : ” ) ;
i m p r i m i r e c u a c i o n (A, B, C, D) ;

// / Limpiar e l b u f f e r de e n t r a d a a n t e s de p e d i r e l punto a d i c i o n a l
while ( g e t c h a r ( ) != ’ \n ’ ) ;

9
// / P e d i r a l u s u a r i o que p r e s i o n e una t e c l a a n t e s de c o n t i n u a r
p r i n t f ( ” \ n P r e s i o n e ENTER para c o n t i n u a r . . . \ n” ) ;
getchar ( ) ;

// / S o l i c i t a r un punto a d i c i o n a l
double xp , yp , zp ;
p r i n t f ( ” \n ** P U N T O A D I C I O N A L ** \n” ) ;
p r i n t f ( ” I n g r e s a l a coordenada 1 d e l punto a d i c i o n a l : ” ) ; s c a n f ( ”%l f ” , &xp ) ;
p r i n t f ( ” I n g r e s a l a coordenada 2 d e l punto a d i c i o n a l : ” ) ; s c a n f ( ”%l f ” , &yp ) ;
p r i n t f ( ” I n g r e s a l a coordenada 3 d e l punto a d i c i o n a l : ” ) ; s c a n f ( ”%l f ” , &zp ) ;

// / E v a l u a r s i e l punto p e r t e n e c e a l p l a n o
double r e s u l t a d o = A * xp + B * yp + C * zp + D;
i f ( f a b s ( r e s u l t a d o ) < 1 e = 10) { // / Usamos t o l e r a n c i a para c o m p a r a c i n con c e r o
p r i n t f ( ” \ nEl punto p e r t e n e c e a l p l a n o . \ n” ) ;
} else {
p r i n t f ( ” \ nEl punto no p e r t e n e c e a l p l a n o . \ n” ) ;
// / C a l c u l a r nuevo p l a n o p a r a l e l o pasando por e l punto ( xp , yp , zp )
double D nuevo = =(A * xp + B * yp + C * zp ) ;
p r i n t f ( ” El p l a n o p a r a l e l o que c o n t i e n e a e s t e punto e s : ” ) ;
i m p r i m i r e c u a c i o n (A, B, C, D nuevo ) ;
}
}

void c a l c u l a r e c u a c i o n p l a n o ( ) {
double x1 , y1 , z1 , x2 , y2 , z2 , x3 , y3 , z3 ;

p r i n t f ( ” \n ** P U N T O S D E L P L A N O ** \n” ) ;

printf (” Ingresa la coordenada 1 del punto 1: ”); s c a n f ( ”%l f ” , &x1 ) ;


printf (” Ingresa la coordenada 2 del punto 1: ”); s c a n f ( ”%l f ” , &y1 ) ;
printf (” Ingresa la coordenada 3 del punto 1: ”); s c a n f ( ”%l f ” , &z1 ) ;
printf (” Ingresa la coordenada 1 del punto 2: ”); s c a n f ( ”%l f ” , &x2 ) ;
printf (” Ingresa la coordenada 3 del punto 2: ”); s c a n f ( ”%l f ” , &z2 ) ;

p r i n t f ( ” I n g r e s a l a coordenada 1 d e l punto 3 : ” ) ; s c a n f ( ”%l f ” , &x3 ) ;


p r i n t f ( ” I n g r e s a l a coordenada 2 d e l punto 3 : ” ) ; s c a n f ( ”%l f ” , &y3 ) ;
p r i n t f ( ” I n g r e s a l a coordenada 3 d e l punto 3 : ” ) ; s c a n f ( ”%l f ” , &z3 ) ;

3.7. Entrada de Datos

p r i n t f ( ” I n g r e s a l a coordenada 1 d e l punto 1 : ” ) ; s c a n f ( ”%l f ” , &x1 ) ;


/* . . . */
Solicita las coordenadas (x, y, z) de tres puntos en el espacio.

10
3.8. Verificación de Colinealidad

double d e t = d e t e r m i n a n t e l a p l a c e ( x1 , y1 , 1 ,
x2 , y2 , 1 ,
x3 , y3 , 1 ) ;
Calcula el determinante para verificar si los puntos son colineales (determinante = 0). Si son
colineales, no definen un plano único.

3.9. Cálculo de los Coeficientes


Los coeficientes A, B, C y D del plano se calculan como:

y1 z1 1 x1 z1 1
A = y2 z2 1 , B = − x2 z2 1
y3 z3 1 x3 z3 1
x1 y1 1 x1 y1 z1
C = x2 y2 1 , D = − x2 y2 z2
x3 y3 1 x3 y3 z3

3.10. Evaluación de Punto Adicional

double r e s u l t a d o = A * xp + B * yp + C * zp + D;
i f ( f a b s ( r e s u l t a d o ) < 1 e = 10) {
p r i n t f ( ” \ nEl punto p e r t e n e c e a l p l a n o . \ n” ) ;
}
Verifica si el punto (xp, yp, zp) satisface la ecuación del plano usando una tolerancia de 10−10
para manejar errores de precisión numérica.

3.11. Conclusión
Este programa demuestra:
Uso de álgebra lineal para resolver problemas geométricos
Manejo de entrada/salida en C

Control de flujo condicional


Formateo avanzado de salida

11
4. Aplicaciones en la vida y en ingenierı́a aeronáutica
Este tema en la aeronáutica nos sirve para poder modelar y analizar el movimiento den una
aeronave,a continuación describiremos como es que este tema se relaciona directamente con nuestra
carrera:

ˆ El movimiento de una aeronave en 3 dimensiones se define como por un sistema de ecuaciones


diferenciales ordinarias
ˆ Estas ecuaciones incluyen ecuaciones cinemáticas y dinámicas

ˆ Las ecuaciones dinámicas relacionan las fuerzas con la aceleración de traslación

ˆ las ecuaciones cinemáticas dan la posición traslacional relativa a un marco de la tierra

ˆ Donde la ecuación general de el plano es ax + b(y) + cz + d = 0 representan un plano

ˆ A partir de la ecuación del plano se puede obtener un vector normal al plano.

ˆ Este vector normal al plano útil para calcular ángulos y distancias con planos y rectas

A la hora de hablar para que nos sirve en nuestra vida cotidiana, sirve para las siguientes
interacciones:

ˆ Usos en la vida cotidiana La ecuación de un plano en tres dimensiones permite definir cómo
percibimos e interactuamos con el mundo que nos rodea.
Permite juzgar las distancias.
Permite experimentar la forma y el volumen de los objetos.
ˆ Usos en la resolución de problemas Permite ampliar el uso de vectores a aplicaciones más
realistas.
Permite describir el espacio tridimensional, lo que es útil para resolver problemas en los que
la topografı́a del terreno es importante.

12

También podría gustarte