Este documento presenta conceptos básicos sobre matrices. Define una matriz como un arreglo rectangular de números y describe sus elementos, filas, columnas y orden. Introduce diferentes tipos de matrices como matrices nulas, identidad, diagonales, triangulares y simétricas. Explica operaciones básicas con matrices como suma, resta, multiplicación por escalares y producto de matrices.
Este documento presenta un resumen del plan de estudios de álgebra para el primer bimestre impartido por la profesora Germania Rodríguez. Incluye temas como teoría de conjuntos, sistemas de números reales, exponentes y radicales, expresiones algebraicas, ecuaciones y desigualdades, funciones y gráficas. El plan de estudios cubre conceptos fundamentales de álgebra así como funciones polinomiales, racionales y exponenciales entre otros temas.
Este documento presenta conceptos fundamentales de álgebra incluyendo sistemas de números reales, exponentes, radicales, expresiones algebraicas, fracciones, ecuaciones, desigualdades y funciones. Explica cómo graficar ecuaciones y funciones usando el sistema de coordenadas cartesianas.
Este documento introduce conceptos básicos sobre matrices. Define una matriz, sus tipos (cuadrada, nula, triangular, diagonal, escalar e identidad), y propiedades como la transpuesta y matriz periódica. Explica cómo representar matrices y calcular la traza y diagonal principal. El objetivo es proporcionar los fundamentos teóricos sobre matrices necesarios para aplicaciones en ingeniería.
Este documento presenta el tema de las matrices. Define qué es una matriz y sus diferentes tipos como cuadradas, triangulares, diagonales, escalares e identidad. Explica operaciones básicas con matrices como suma, producto por escalar y transposición. Finalmente, introduce conceptos como matriz inversa y resolución de ecuaciones matriciales.
Este documento presenta el tema de las matrices. Define qué es una matriz y sus diferentes tipos como cuadradas, triangulares, diagonales, escalares e identidad. Explica operaciones básicas con matrices como suma, producto por escalar y transposición. Finalmente, introduce conceptos como matriz inversa y resolución de ecuaciones matriciales.
Este documento presenta el tema de las matrices. Define qué es una matriz y sus diferentes tipos como cuadradas, triangulares, diagonales, escalares e identidad. Explica operaciones básicas con matrices como suma, producto por escalar y transposición. Finalmente, introduce conceptos como matriz inversa y resolución de ecuaciones matriciales.
Este documento presenta conceptos básicos sobre matrices. Define una matriz como un arreglo rectangular de números y describe sus elementos, filas, columnas y orden. Introduce diferentes tipos de matrices como matrices nulas, identidad, diagonales, triangulares y simétricas. Explica operaciones básicas con matrices como suma, resta, multiplicación por escalares y producto de matrices.
Este documento presenta un resumen del plan de estudios de álgebra para el primer bimestre impartido por la profesora Germania Rodríguez. Incluye temas como teoría de conjuntos, sistemas de números reales, exponentes y radicales, expresiones algebraicas, ecuaciones y desigualdades, funciones y gráficas. El plan de estudios cubre conceptos fundamentales de álgebra así como funciones polinomiales, racionales y exponenciales entre otros temas.
Este documento presenta conceptos fundamentales de álgebra incluyendo sistemas de números reales, exponentes, radicales, expresiones algebraicas, fracciones, ecuaciones, desigualdades y funciones. Explica cómo graficar ecuaciones y funciones usando el sistema de coordenadas cartesianas.
Este documento introduce conceptos básicos sobre matrices. Define una matriz, sus tipos (cuadrada, nula, triangular, diagonal, escalar e identidad), y propiedades como la transpuesta y matriz periódica. Explica cómo representar matrices y calcular la traza y diagonal principal. El objetivo es proporcionar los fundamentos teóricos sobre matrices necesarios para aplicaciones en ingeniería.
Este documento presenta el tema de las matrices. Define qué es una matriz y sus diferentes tipos como cuadradas, triangulares, diagonales, escalares e identidad. Explica operaciones básicas con matrices como suma, producto por escalar y transposición. Finalmente, introduce conceptos como matriz inversa y resolución de ecuaciones matriciales.
Este documento presenta el tema de las matrices. Define qué es una matriz y sus diferentes tipos como cuadradas, triangulares, diagonales, escalares e identidad. Explica operaciones básicas con matrices como suma, producto por escalar y transposición. Finalmente, introduce conceptos como matriz inversa y resolución de ecuaciones matriciales.
Este documento presenta el tema de las matrices. Define qué es una matriz y sus diferentes tipos como cuadradas, triangulares, diagonales, escalares e identidad. Explica operaciones básicas con matrices como suma, producto por escalar y transposición. Finalmente, introduce conceptos como matriz inversa y resolución de ecuaciones matriciales.
Este documento presenta información sobre secciones cónicas. Incluye ejercicios para graficar ecuaciones de circunferencias, elipses, hipérbolas y parábolas utilizando el comando ContourPlot de Mathematica. También incluye ejercicios para determinar las propiedades geométricas de estas curvas como centros, radios, vértices y focos a partir de sus ecuaciones.
Este documento presenta una introducción a las matrices y sus propiedades fundamentales. Define qué es una matriz, sus elementos y su orden. Explica las operaciones básicas con matrices como suma, producto por escalar y producto de matrices. También introduce conceptos como matriz traspuesta, determinantes, menores y rango de una matriz.
Este documento presenta conceptos básicos de trigonometría como sistemas de coordenadas, ángulos en posición normal, razones trigonométricas y su signo en cada cuadrante. Explica cómo calcular las razones trigonométricas sen, cos, tg y cot para ángulos en posición normal y proporciona ejercicios resueltos como ejemplo.
Este documento presenta conceptos básicos sobre segmentos rectilíneos y polígonos. Explica qué es un segmento dirigido y no dirigido, y cómo calcular la distancia entre dos puntos tanto en una recta numérica como en un plano cartesiano usando la fórmula raíz cuadrada de (x2 - x1) al cuadrado más (y2 - y1) al cuadrado. Luego proporciona ejemplos y ejercicios para practicar calcular distancias entre puntos dados.
1) El documento trata sobre matrices y sistemas de ecuaciones. Define una matriz y describe sus operaciones básicas como suma, resta, producto por escalar y producto de matrices.
2) Explica métodos para resolver sistemas de ecuaciones lineales y no lineales, incluyendo el método de Gauss, el método de Gauss-Seidel y el método de Newton.
3) Describe diferentes tipos de matrices como matrices diagonales, triangulares, escalares y la factorización de Choleski para resolver sistemas de ecuaciones.
1) El documento presenta definiciones y propiedades relacionadas con ángulos en posición normal y ángulos trigonométricos especiales como cuadrantales y coterminales. Incluye fórmulas para calcular las funciones trigonométricas de dichos ángulos.
2) Contiene 20 problemas resueltos como ejemplos de aplicación de los conceptos.
3) El objetivo es que los estudiantes aprendan a distinguir información relevante, sintetizar conocimientos y resolver problemas usando funciones trigonométricas de ángulos
Este documento presenta una guía práctica para estudiantes de matemáticas del 12mo semestre de educación de adultos. Incluye agradecimientos y contiene temas como sistemas de coordenadas, funciones afines, sistemas de ecuaciones lineales, vectores y geometría.
Este documento presenta los contenidos de la asignatura Fundamentos Matemáticos de Ciencias de la Computación para el segundo bimestre. Cubre temas como funciones exponenciales y logarítmicas, sistemas de ecuaciones, matrices y determinantes, y sucesiones y series. Explica conceptos clave, propiedades y métodos para resolver problemas relacionados con cada uno de estos temas.
El documento describe la técnica "divide y vencerás" para resolver problemas de forma eficiente dividiéndolos en subproblemas más pequeños. Explica los requisitos para aplicarla, el esquema recursivo general y análisis de complejidad. Luego presenta ejemplos como búsqueda de máximo/mínimo, ordenación, selección, multiplicación de enteros y matrices.
Universidad Técnica Particular de Loja
Ciclo Académico Abril Agosto 2011
Carrera:Ciencias de la Computación
Docente: Ing. Ricardo Blacio Maldonado
Ciclo: Segundo
Bimestre: Primero
1) El documento presenta definiciones y propiedades de ángulos trigonométricos especiales como ángulos en posición normal, cuadrantales, coterminales y negativos. Incluye tablas de signos de las funciones trigonométricas en los cuadrantes y para ángulos cuadrantales.
2) Se resuelven problemas aplicando las definiciones y propiedades presentadas, como calcular razones trigonométricas para ángulos en distintos cuadrantes.
3) El documento concluye con más problemas de aplicación y
Este documento trata sobre matrices y determinantes. Explica qué es una matriz, sus elementos y dimensiones. Presenta ejemplos de matrices como la compra de bocadillos. Describe operaciones con matrices como suma, resta, multiplicación por un escalar y producto. Finalmente, define determinantes de orden 2 y 3, y explica la regla de Sarrus para calcularlos.
Este documento describe las propiedades de las matrices diagonales y triangulares. Define qué son matrices diagonales y triangulares superiores e inferiores, y enumera algunas de sus propiedades clave como que la suma, producto y escalamiento de matrices de este tipo preservan su forma, y que las matrices triangulares son invertibles si sus elementos diagonales no son cero.
Este documento presenta conceptos sobre el círculo unitario y las funciones trigonométricas de números reales. Introduce el círculo unitario como el conjunto de puntos a una distancia de 1 del origen y muestra ejemplos de puntos en este círculo. Luego define las seis funciones trigonométricas (seno, coseno, tangente, cotangente, cosecante y secante) en términos de puntos en el círculo unitario determinados por números reales. Finalmente, discute propiedades como las funciones pares
Este documento presenta una introducción a las matrices. Define una matriz como un arreglo rectangular de números y explica conceptos como el orden, elementos, filas y columnas de una matriz. Luego resume diferentes tipos de matrices como cuadradas, nulas, triangulares e identidad. Finalmente, describe operaciones básicas con matrices como suma, resta, multiplicación por un escalar y multiplicación de matrices.
Este documento presenta una guía práctica para estudiantes de matemáticas del décimo semestre de educación de adultos. La guía incluye objetivos, agradecimientos y contenido sobre sistemas de coordenadas, funciones afines, ecuaciones de rectas, sistemas de ecuaciones lineales, vectores, proyecciones ortogonales, traslaciones, rotaciones, simetrías y congruencia de triángulos. El documento busca facilitar el aprendizaje de estas temáticas mediante ejercicios prácticos.
I. El documento presenta una recopilación de ejercicios y respuestas de matemática para la PSU, organizados en 38 capítulos que abarcan diversos temas como números, álgebra, geometría y trigonometría.
II. Incluye 17 ejemplos de ejercicios PSU resueltos sobre diferentes temas matemáticos como números enteros, proporciones, ecuaciones, funciones y probabilidad.
III. El documento fue compilado por Álvaro M. Sánchez Vásquez con el objetivo de preparar
Este documento presenta un proyecto final sobre álgebra lineal realizado por tres estudiantes. Resume varios temas clave como matrices, determinantes, sistemas de ecuaciones lineales y métodos para resolverlos. El proyecto explica conceptos matemáticos importantes y cómo aplicarlos para resolver problemas de la vida real.
Este documento presenta información sobre secciones cónicas. Incluye ejercicios para graficar ecuaciones de circunferencias, elipses, hipérbolas y parábolas utilizando el comando ContourPlot de Mathematica. También incluye ejercicios para determinar las propiedades geométricas de estas curvas como centros, radios, vértices y focos a partir de sus ecuaciones.
Este documento presenta una introducción a las matrices y sus propiedades fundamentales. Define qué es una matriz, sus elementos y su orden. Explica las operaciones básicas con matrices como suma, producto por escalar y producto de matrices. También introduce conceptos como matriz traspuesta, determinantes, menores y rango de una matriz.
Este documento presenta conceptos básicos de trigonometría como sistemas de coordenadas, ángulos en posición normal, razones trigonométricas y su signo en cada cuadrante. Explica cómo calcular las razones trigonométricas sen, cos, tg y cot para ángulos en posición normal y proporciona ejercicios resueltos como ejemplo.
Este documento presenta conceptos básicos sobre segmentos rectilíneos y polígonos. Explica qué es un segmento dirigido y no dirigido, y cómo calcular la distancia entre dos puntos tanto en una recta numérica como en un plano cartesiano usando la fórmula raíz cuadrada de (x2 - x1) al cuadrado más (y2 - y1) al cuadrado. Luego proporciona ejemplos y ejercicios para practicar calcular distancias entre puntos dados.
1) El documento trata sobre matrices y sistemas de ecuaciones. Define una matriz y describe sus operaciones básicas como suma, resta, producto por escalar y producto de matrices.
2) Explica métodos para resolver sistemas de ecuaciones lineales y no lineales, incluyendo el método de Gauss, el método de Gauss-Seidel y el método de Newton.
3) Describe diferentes tipos de matrices como matrices diagonales, triangulares, escalares y la factorización de Choleski para resolver sistemas de ecuaciones.
1) El documento presenta definiciones y propiedades relacionadas con ángulos en posición normal y ángulos trigonométricos especiales como cuadrantales y coterminales. Incluye fórmulas para calcular las funciones trigonométricas de dichos ángulos.
2) Contiene 20 problemas resueltos como ejemplos de aplicación de los conceptos.
3) El objetivo es que los estudiantes aprendan a distinguir información relevante, sintetizar conocimientos y resolver problemas usando funciones trigonométricas de ángulos
Este documento presenta una guía práctica para estudiantes de matemáticas del 12mo semestre de educación de adultos. Incluye agradecimientos y contiene temas como sistemas de coordenadas, funciones afines, sistemas de ecuaciones lineales, vectores y geometría.
Este documento presenta los contenidos de la asignatura Fundamentos Matemáticos de Ciencias de la Computación para el segundo bimestre. Cubre temas como funciones exponenciales y logarítmicas, sistemas de ecuaciones, matrices y determinantes, y sucesiones y series. Explica conceptos clave, propiedades y métodos para resolver problemas relacionados con cada uno de estos temas.
El documento describe la técnica "divide y vencerás" para resolver problemas de forma eficiente dividiéndolos en subproblemas más pequeños. Explica los requisitos para aplicarla, el esquema recursivo general y análisis de complejidad. Luego presenta ejemplos como búsqueda de máximo/mínimo, ordenación, selección, multiplicación de enteros y matrices.
Universidad Técnica Particular de Loja
Ciclo Académico Abril Agosto 2011
Carrera:Ciencias de la Computación
Docente: Ing. Ricardo Blacio Maldonado
Ciclo: Segundo
Bimestre: Primero
1) El documento presenta definiciones y propiedades de ángulos trigonométricos especiales como ángulos en posición normal, cuadrantales, coterminales y negativos. Incluye tablas de signos de las funciones trigonométricas en los cuadrantes y para ángulos cuadrantales.
2) Se resuelven problemas aplicando las definiciones y propiedades presentadas, como calcular razones trigonométricas para ángulos en distintos cuadrantes.
3) El documento concluye con más problemas de aplicación y
Este documento trata sobre matrices y determinantes. Explica qué es una matriz, sus elementos y dimensiones. Presenta ejemplos de matrices como la compra de bocadillos. Describe operaciones con matrices como suma, resta, multiplicación por un escalar y producto. Finalmente, define determinantes de orden 2 y 3, y explica la regla de Sarrus para calcularlos.
Este documento describe las propiedades de las matrices diagonales y triangulares. Define qué son matrices diagonales y triangulares superiores e inferiores, y enumera algunas de sus propiedades clave como que la suma, producto y escalamiento de matrices de este tipo preservan su forma, y que las matrices triangulares son invertibles si sus elementos diagonales no son cero.
Este documento presenta conceptos sobre el círculo unitario y las funciones trigonométricas de números reales. Introduce el círculo unitario como el conjunto de puntos a una distancia de 1 del origen y muestra ejemplos de puntos en este círculo. Luego define las seis funciones trigonométricas (seno, coseno, tangente, cotangente, cosecante y secante) en términos de puntos en el círculo unitario determinados por números reales. Finalmente, discute propiedades como las funciones pares
Este documento presenta una introducción a las matrices. Define una matriz como un arreglo rectangular de números y explica conceptos como el orden, elementos, filas y columnas de una matriz. Luego resume diferentes tipos de matrices como cuadradas, nulas, triangulares e identidad. Finalmente, describe operaciones básicas con matrices como suma, resta, multiplicación por un escalar y multiplicación de matrices.
Este documento presenta una guía práctica para estudiantes de matemáticas del décimo semestre de educación de adultos. La guía incluye objetivos, agradecimientos y contenido sobre sistemas de coordenadas, funciones afines, ecuaciones de rectas, sistemas de ecuaciones lineales, vectores, proyecciones ortogonales, traslaciones, rotaciones, simetrías y congruencia de triángulos. El documento busca facilitar el aprendizaje de estas temáticas mediante ejercicios prácticos.
I. El documento presenta una recopilación de ejercicios y respuestas de matemática para la PSU, organizados en 38 capítulos que abarcan diversos temas como números, álgebra, geometría y trigonometría.
II. Incluye 17 ejemplos de ejercicios PSU resueltos sobre diferentes temas matemáticos como números enteros, proporciones, ecuaciones, funciones y probabilidad.
III. El documento fue compilado por Álvaro M. Sánchez Vásquez con el objetivo de preparar
Este documento presenta un proyecto final sobre álgebra lineal realizado por tres estudiantes. Resume varios temas clave como matrices, determinantes, sistemas de ecuaciones lineales y métodos para resolverlos. El proyecto explica conceptos matemáticos importantes y cómo aplicarlos para resolver problemas de la vida real.
Similar a Coordenadas baricéntricas. Elementos 2D triangulares (20)
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Juan Martín Martín
Criterios de corrección y soluciones al examen de Geografía de Selectividad (EvAU) Junio de 2024 en Castilla La Mancha.
Soluciones al examen.
Convocatoria Ordinaria.
Examen resuelto de Geografía
conocer el examen de geografía de julio 2024 en:
https://blogdegeografiadejuan.blogspot.com/2024/06/soluciones-examen-de-selectividad.html
http://blogdegeografiadejuan.blogspot.com/
José Luis Jiménez Rodríguez
Junio 2024.
“La pedagogía es la metodología de la educación. Constituye una problemática de medios y fines, y en esa problemática estudia las situaciones educativas, las selecciona y luego organiza y asegura su explotación situacional”. Louis Not. 1993.
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARIS”. Esta actividad de aprendizaje propone el reto de descubrir el la secuencia números para abrir un candado, el cual destaca la percepción geométrica y conceptual. La intención de esta actividad de aprendizaje lúdico es, promover los pensamientos lógico (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia y viso-espacialidad. Didácticamente, ésta actividad de aprendizaje es transversal, y que integra áreas del conocimiento: matemático, Lenguaje, artístico y las neurociencias. Acertijo dedicado a los Juegos Olímpicos de París 2024.
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
Coordenadas baricéntricas. Elementos 2D triangulares
1. Elementos 2D triangulares 1/78
Elementos 2D triangulares
Rafael Ramírez Ros
Clase MN-P02 & MN-P03 (versión 20/02/2024)
2. Elementos 2D triangulares 2/78
Contenidos
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
3. Elementos 2D triangulares 3/78
Problemas de detección e interpolación
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
4. Elementos 2D triangulares 4/78
Problemas de detección e interpolación
Detección en un triángulo
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
5. Elementos 2D triangulares 5/78
Problemas de detección e interpolación
Detección en un triángulo
Detección en un triángulo
Sea Ωun triángulo de vértices (nodos)
p1 = (x1, y1), p2 = (x2, y2), p3 = (x3, y3).
Hipótesis: Los tres vértices no están alineados.
Sea p = (x,y) ∈ R2.
Pregunta: ¿p ∈ Ω? (Consideramos que los puntos de la
frontera pertenecen al triángulo.)
Advertencia: Si p está en la frontera, pequeños errores
numéricos podrían hacernos pensar que p /
∈Ω.
6. Elementos 2D triangulares 6/78
Problemas de detección e interpolación
Detección en un triángulo
Coordenadas baricéntricas (definición)
∃!α = (α1, α2, α3) ∈ R3 tal que
f
p = α p + α
1 1 2 2 3 3
p + α p ,
α1 + α2 + α3 = 1
Decimos que α son las coordenadas baricéntricas del
punto p respecto el triángulo Ω.
Respuesta: p ∈ Ωsi y solo si α ≥ 0.
Importante: La ecuación α1 + α2 + α3 = 1 se añade para
determinar unívocamente las coordenadas baricéntricas,
pero eso solo funciona si los puntos no están alineados.
7. Elementos 2D triangulares 7/78
Problemas de detección e interpolación
Detección en un triángulo
Coordenadas baricéntricas (propiedades)
p es el baricentro de Ω⇔α = (1/3,1/3,1/3).
Si los índices {i, j, k} se mueven cíclicamente en el
conjunto {1,2,3}, entonces:
p = pj ⇔αj = 1 & αi = αk = 0.
p está en la mediana de Ωpor pj ⇔αi = αk .
p está en la recta que pasa por pi y pk ⇔αj = 0.
p está en el lado definido por pi y pk ⇔αj = 0 & αi ,αk ≥ 0.
p es el centro de masas al situar tres masas α1, α2 y α3
tales que α1 + α2 + α3 = 1 en los vértices p1, p2 y p3.
Si Ωj es el triángulo de vértices p, pi y pk , entonces:
j
p ∈ Ω⇒α = j
Area[Ω ]
Area[Ω]
, j = 1,2,3.
8. Elementos 2D triangulares 8/78
Problemas de detección e interpolación
Detección en un triángulo
Dos ejemplos
9. Elementos 2D triangulares 9/78
Problemas de detección e interpolación
Detección en un triángulo
Relación con las funciones de forma
Las funciones de forma del triángulo Ωson las tres únicas
funciones
ψj(x,y) = aj + βjx + γj y, j = 1,2,3,
para algunos coeficientes aj,βj,γj ∈ R tales que
ψj(pi ) = δij :=
f
1, si i = j
0, si i /=j
.
Se sabe que
αj = ψj(p), i = 1,2,3.
10. Elementos 2D triangulares 10 /78
Problemas de detección e interpolación
Detección en un triángulo
Cálculo matricial de los coeficientes
Si consideramos las matrices
1
1 x1 y
A = 1 x2 y2 ,
1 x3 y3
1 3
γ1 γ2
a a2 a
C = β1 β2 β3 ,
γ3
entonces
a + β x + γ y
1 1 1 1 1 a2 + β2x1 + γ2y1 a + β x + γ y
3 3 1 3 1
AC = a1 + β1x2 + γ1y2 a2 + β2x2 + γ2y2
a1 + β1x3 + γ1y3 a2 + β2x3 + γ2y3
a3 + β3x2 + γ3y2
a3 + β3x3 + γ3y3
=
1 1
ψ (p ) ψ2(p1) 3 1
ψ (p )
ψ1(p3) ψ2(p3)
ψ1(p2) ψ2(p2) ψ3(p2)
ψ3(p3)
1 0 0
= 0 1 0 = Id.
0 0 1
Por tanto, C = A−1.
11. Elementos 2D triangulares 11 /78
Problemas de detección e interpolación
Detección en un triángulo
Cálculo matricial de α
Si consideramos la matriz
1 3
γ1 γ2
a a2 a
C = β1 β2 β3
γ3
y el vector fila z = (1, x,y), entonces
zC = a + β x + γ y,a + β x + γ
1 1 1 2 2 2 3 3 3
y,a + β x + γ y
)
(
= ψ1(p), ψ2(p), ψ3(p)
)
=
(
α1, α2, α3
)
= α.
12. Elementos 2D triangulares 12 /78
Problemas de detección e interpolación
Detección en un mallado triangular
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
13. Elementos 2D triangulares 13 /78
Problemas de detección e interpolación
Detección en un mallado triangular
Mallados triangulares
Un mallado triangular está definido por
Un conjunto de puntos del plano (llamados nodos):
N = {pm = (xm,ym) : m = 1,...,M} ;
Un conjunto de ternas de índices:
T = {te = (ie,je,ke) : e = 1, ...,E} .
El e-ésimo elemento de este mallado es el triángulo Ωe
cuyos tres vértices son los nodos pie
, pje
y pke
.
Hipótesis:
1 Los vértices de cada triángulo están ordenados en sentido
antihorario y no están alineados;
2 Triángulos diferentes o bien tienen intersección vacía o
bien solo comparten algunos lados y/o vértices comunes.
14. Elementos 2D triangulares 14 /78
Problemas de detección e interpolación
Detección en un mallado triangular
Ejemplo
Mallado triángular con 5 nodos y 4 elementos
15. Elementos 2D triangulares 15 /78
Problemas de detección e interpolación
Detección en un mallado triangular
Problema
Sea Ωe el triángulo de vértices pie
, pje
y pke
.
Sea Ω =
mallado.
E
e=1
Ωe la unión de todos los triángulos del
Sea p ∈ Ω.
Problema: Determinar el índice e tal que p ∈ Ωe.
Advertencia: El índice e no es único cuando p es un nodo
o está situado sobre un lado o vértice común de dos
elementos adyacentes.
16. Elementos 2D triangulares 16 /78
Problemas de detección e interpolación
Interpolación en un triángulo
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
17. Elementos 2D triangulares 17 /78
Problemas de detección e interpolación
Interpolación en un triángulo
Problema
Sea Ωun triángulo de vértices (nodos)
p1 = (x1, y1), p2 = (x2, y2), p3 = (x3, y3).
Hipótesis: Los tres vértices no están alineados.
Sean u1, u2, u3 ∈ R tres valores reales.
∃!u : Ω→ R lineal que interpola esos tres valores. O sea,
existe una única función tal que
1 Es lineal: u(x,y) = a + bx + cy para algunos a,b, c ∈ R; e
2 Interpola: u(pj ) = uj, para j = 1, 2,3.
Importante: Si α = (α1, α2, α3) son las coordenadas
baricéntricas de un punto p ∈ Ωrespecto Ω, entonces
u(p) = α1u1 + α2u2 + α3u3.
18. Elementos 2D triangulares 18 /78
Problemas de detección e interpolación
Interpolación en un mallado triangular
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
19. Elementos 2D triangulares 19 /78
Problemas de detección e interpolación
Interpolación en un mallado triangular
Problema a resolver
Tenemos un mallado triangular dado por:
Un conjunto de nodos p1, ...,pM ; y
Un conjunto de triángulos Ω1,...,ΩE.
Tenemos un conjunto de valores u1, ...,uM ∈ R.
Sea Ω = E
e=1
Ωe la unión de los triángulos del mallado.
∃
v
!u : Ω → R lineal a trozos que interpola a todos los
alores. O sea, existe una única función tal que:
1 Es lineal en cada triángulo: u|Ωe (x,y) = ae + bex + cey
para algunos coeficientes ae,be,ce ∈ R y para e = 1,...,E;
2 Interpola: u(pm) = um, para m = 1, ...,M.
Importante: Si α = (α1, α2, α3) son las coordenadas
baricéntricas de un punto p ∈ Ωe respecto Ωe, entonces
u(p) = α1uie + α2uje + α3uke .
20. Elementos 2D triangulares 20 /78
Problemas de detección e interpolación
Interpolación en un mallado triangular
Ejemplo
21. Elementos 2D triangulares 21 /78
Repositorio oficial
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
22. Elementos 2D triangulares 22 /78
Repositorio oficial
Repositorio oficial
Es un conjunto de funciones-M y mallados que usaremos
a lo largo del curso para dibujar y realizar cálculos.
Debéis saber cómo se usan las funciones, pero, salvo
excepciones, no hace falta entender cómo están hechas.
No se pueden modificar.
Los dos repositorios están publicados en la esquina
inferior izquierda de la página de Numerical Factory.
Importante: Bajad los ficheros additionalFiles.zip y
meshFilesAll.rar, desempaquetadlos y guardad todo
el contenido en dos directorios que formen parte del path
de Matlab.
23. Elementos 2D triangulares 23 /78
Repositorio oficial
Función baryCoord
1 function [alphas,isInside]=baryCoord(vertices,point)
donde:
vertices (array 3x2) = tres vértices de un triángulo;
point (array 1x2) = coordenadas de un punto del plano;
alphas (array 1x3) = coordenadas baricéntricas;
isInside =
f
1, si el punto está dentro del triángulo
0, si el punto está fuera del triángulo
Nota: Con las notaciones de la primera sección:
1
2
vertices = [x1,y1; x2,y2; x3,y3];
point = [x,y];
Advertencia: No confundáis vectores fila con vectores columna.
24. Elementos 2D triangulares 24 /78
Repositorio oficial
Función plotElements
1 function plotElements(nodes, elem, numbering)
donde:
nodes (array nNodes x ndim) = coordenadas de cada
nodo del mallado, escritas por filas;
elem (array nElem x nVert) = índices de los vértices
de cada elemento del mallado, escritos por filas;
numbering =
f
1, para numerar nodos y elementos
0, en caso contrario
Nota: Hoy estudiamos un problema 2D: ndim=2 y trabajamos
con elementos triangulares: nVert=3. Más adelante
cambiaremos esos valores, pero usaremos la misma función.
25. Elementos 2D triangulares 25 /78
Repositorio oficial
Función plotContourSolution
1 function plotContourSolution(nodes,elem,u,titulo,paleta)
donde:
nodes (array nNodes x ndim) = coordenadas de cada
nodo del mallado, escritas por filas;
elem (array nElem x nVert) = índices de los vértices
de cada elemento del mallado, escritos por filas;
u (array nNodes x 1) = valores sobre los nodos;
titulo (string) = texto del título;
paleta (string) = paleta de colores usada.
Nota: Matlab tiene casi 20 paletas de color. Algunos ejemplos
son ’jet’, ’gray’, ’cool’, ’hot’, ’spring’, ’summer’,
’autumn’, ’winter’ y ’copper’.
26. Elementos 2D triangulares 26 /78
Comandos específicos
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
27. Elementos 2D triangulares 27 /78
Comandos específicos
Invertir de una matriz
Dada una matriz cuadrada A de orden n, hay dos formas de
calcular en Matlab su inversa C = A−1.
1 Usar el comando inv.
1 C = inv(A);
2 Usar el comando eye y el símbolo .
1 C = Aeye(n);
Nota: Es más eficiente usar la instrucción x = Ab que la
instrucción x = inv(A)*b para resolver el sistema Ax = b.
28. Elementos 2D triangulares 28 /78
Comandos específicos
Seleccionar filas y/o columnas de una matriz
Si A es una matriz (array), entonces:
A(5,:) selecciona la fila 5 de la matriz;
A([1,2,5],:) selecciona las filas 1, 2 y 5 de la matriz;
A(3:5,:) selecciona desde la fila 3 hasta la fila 5;
A(1:5,:) selecciona las 5 primeras filas;
A(5:end,:) selecciona las filas a partir de la 5 (incluida);
A(:,[2,5]) selecciona las columnas 2 y 5 de la matriz;
A(1:5,3:end) selecciona las 5 primeras filas y las
columnas a partir de la 3 (incluida);
A(:,:) selecciona toda la matriz.
29. Elementos 2D triangulares 29 /78
Comandos específicos
Dibujar un polígono
Sean pi = (xi,yi) para i = 1,...,m los vértices de un
polígono Ω⊂ R2 ordenados en sentido antihorario.
Sea vertices un array m x 2, cuya fila i contiene las
coordenadas xi e yi.
Las siguientes instrucciones dibujan el polígono:
1
2
vplot = [vertices;vertices(1,:)];
plot(vplot(:,1),vplot(:,2),’k-’)
Explicación: La primera línea añade el primer vértice como
última fila del array vplot para que el polígono quede
cerrado.
30. Elementos 2D triangulares 30 /78
Comandos específicos
Cargar y cuantificar un mallado
El comando eval carga ficheros de datos. Por ejemplo,
1 eval(’meshHole’);
carga las matrices nodes (de tamaño 136x2) y elem (de
tamaño 220x3) que definen el mallado 2D triangular del
fichero meshHole.m. Nota: No se escribe la extensión del
fichero en el comando eval.
También trabajaremos con mallados cuadrangulares, 1D o
3D, pero todos se cargan con el comando eval.
Una vez cargado un mallado, las instrucciones
1
2
>> nNodes = size(nodes,1);
>> nElem = size(elem,1);
calculan su número de nodos y elementos
31. Elementos 2D triangulares 31 /78
Comandos específicos
Seleccionar los nodos de un elemento
Sea nodes un array nNodes x ndim con las
coordenadas de cada nodo del mallado, escritas por filas.
Sea elem un array nElem x nVert con los índices de
los vértices de cada elemento del mallado, escritos por
filas.
En esta clase, trabajamos con mallados 2D triangulares.
Es decir, ndim=2 y nVert=3.
Muy importante: La instrucción
1 nodes(elem(e,:),:)
selecciona el array nVert x ndim con las coordenadas
de cada nodo del elemento e del mallado, escritas por
filas.
32. Elementos 2D triangulares 32 /78
Comandos específicos
Interpolar en un mallado triangular
Sea u un array nNodes x 1 con los valores de una
cantidad en cada nodo del mallado triangular.
Sea elem un array nElem x 3 con los índices de los
vértices de cada elemento del mallado, escritos por filas.
Sean α = (α1, α2, α3) las coordenadas baricéntricas de un
punto p ∈ Ωe respecto Ωe.
La instrucción
1 uP = dot(alphas,u(elem(e,:)));
calcula el valor interpolado u(p) = α1uie + α2uje + α3uke .
Nota: El comando dot calcula el producto escalar de dos
vectores con el mismo número de componentes. Se
pueden multiplicar vectores fila por vectores columna.
33. Elementos 2D triangulares 33 /78
Comandos específicos
Añadir un directorio al “path”
En su estado inicial, cuando se le dice a Matlab que
ejecute un script o función escrita por el usuario, solo la
busca en el directorio que aparece en la esquina superior
izquierda de la ventana de comandos.
Es decir, inicialmente el “path” (camino de búsqueda) solo
contiene a ese directorio, que el usuario puede escoger.
El comando addpath añade directorios al “path”:
1
2
>> addpath ../additionalFiles
>> addpath ../meshFilesAll
Nota: El símbolo .. es el directorio padre del actual, luego
../meshFilesAll es un directorio hermano del actual.
34. Elementos 2D triangulares 34 /78
Comandos específicos
Mi estructura de directorios
Todas los subdirectorios cuelgan del mismo directorio raíz;
Funciones repositorio '
V
'
- subdirectorio
additionalFiles;
Mallados repositorio '
V
'
- subdirectorio meshFilesAll; y
Ficheros propios para la práctica t.p '
V
'
- subdirectorio t-p,
donde t = 1,2,3,4 y p = 1,...,13.
35. Elementos 2D triangulares 35 /78
Comandos específicos
Script para las figuras
1 %FILE: p12_myFigureSettings.m
2 %DESCRIPTION: Settings to get nice figures practice 1.2.
3 % reset(groot) -> reset to original settings.
4 set(groot,’DefaultLineLineWidth’,3.5)
5 set(groot,’DefaultAxesLineWidth’,1)
6 set(groot,’DefaultLineMarkerSize’,20)
7 set(groot,’DefaultLineMarkerEdgeColor’,’k’)
8 set(groot,’DefaultAxesFontSize’,20)
9 set(groot,’DefaultAxesFontWeight’,’bold’)
10 set(groot,’DefaultTextFontSize’,20)
11 set(groot,’DefaultAxesFontName’,’Times new Roman’)
12 set(groot,’DefaultLegendFontName’,’Times new Roman’)
13 set(groot,’defaultAxesXGrid’,’on’)
14 set(groot,’defaultAxesYGrid’,’on’)
36. Elementos 2D triangulares 36 /78
Cuestiones
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
37. Elementos 2D triangulares 37 /78
Cuestiones
1 Construye tu propia versión de la función baryCoord.
Compara tu versión con la que hay en el repositorio oficial,
la cual pone el enfasis en las funciones de forma.
2 Considera el triángulo Ωde vértices
p1 = (1, 1), p2 = (3, 2), p3 = (2, 4).
a) Calcula las coordinadas baricéntricas del punto p = (2, 2).
b) Calcula el punto q cuyas coordenadas baricéntricas son
β = (1/6,1/3,1/2).
c) ¿Por qué no hay ningún punto de coordenadas
baricéntricas γ = (1/3,1/2,1/3)?
d) Calcula la función de forma ψ2(x,y).
38. Elementos 2D triangulares 38 /78
Cuestiones
3 Supongamos que escribimos las siguientes instrucciones
en un script o en la ventana de comandos:
1
2
3
>> nodes = [1,1; 3,2; 2,4];
>> point = [2,2];
>> [betas,isInside] = baryCoord(nodes,point)
¿Hay algún error en esas instrucciones?
4 Supongamos que escribimos las siguientes instrucciones
en un script o en la ventana de comandos para calcular la
segunda función de forma ψ2(x,y):
1
2
3
4
>> vertices = [1,1; 3,2; 2,4];
>> point = [0,0];
>> [alphas,isInside]=baryCoord(vertices,point)
>> A[0;1;0]
¿Hay algún error en esas instrucciones?
39. Elementos 2D triangulares 39 /78
Cuestiones
5 Consideramos el triángulo de la cuestión 2 y los puntos
q1 = (1.5,3),
q2 = (3.5,1),
q3 = (2, 3),
q4 = (2.5,3).
a) ¿Cuáles están fuera del triángulo? ¿Cuáles están dentro?
¿Cuáles están situados sobre un lado? ¿Sobre qué lado?
b) Dibuja el triángulo Ω en negro, los puntos exteriores de
rojo, los puntos completamente interiores de azul y los
puntos en la frontera en verde.
40. Elementos 2D triangulares 40 /78
Cuestiones
6 [Díficil] Considera la función dada por el código
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function [alphas,isInside] = baryCoordWrong(vertices,point)
%Computation of the barycentric coordinates
A = [ones(3,1),vertices];
C = Aeye(3); %Inverse of A
alphas = (C*[1; point’])’;
%Check if the point is inside the triangle
isInside=1;
if (min(alphas) < -1.e-14)
isInside=0;
end
end
a) Esta implementación contiene un error. ¿Cuál es?
b) Sin embargo, calcula correctamente todas las coordenadas
baricéntricas en el triángulo de la cuestión 2. ¿Por qué?
41. Elementos 2D triangulares 41 /78
Cuestiones
7 Crea una función
1 function [alphas,isInside]=baryRGBColor(vertices,point)
con los mismos argumentos que la función baryCoord
que dibuje el triángulo de negro, el vértice 1 de rojo, el 2
de verde, el 3 de azul y el punto de negro si está fuera y
con el color alphas en los canales RGB si está dentro.
Opcional: Mira la función baryRGBColorMouse donde el
punto se entra con el ratón.
8 Considera el triángulo de referencia ΩR de vértices
r1 = (0, 0), r2 = (1, 0), r3 = (0, 1).
a) Calcula a mano las tres funciones de forma ψj(x,y).
b) Calcula a mano las coordenadas baricéntricas del punto
genérico r = (x,y).
c) Comprueba los resultados con la función baryCoord.
42. Elementos 2D triangulares 42 /78
Cuestiones
9 Sea Ωun triángulo arbitrario y sea ΩR el triángulo de
referencia ΩR de la cuestión 8. Sea p un punto del plano.
Crea una función
1 function pointR = triangle2Reference(vertices,point)
donde:
vertices (array 3x2) = los tres vértices de Ω, escritos
por filas;
point (array 1x2) = coordenadas de p;
pointR (array 1x2) = coordenadas del punto r cuyas
coordenadas baricéntricas respecto ΩR coinciden con las
coordenadas baricéntricas respecto Ωde p.
Añade unas instrucciones a la función para dibujar ambos
triángulos y ambos puntos.
Opcional: Mira la función triangle2ReferenceMouse
donde el punto se entra con el ratón.
43. Elementos 2D triangulares 43 /78
Cuestiones
10 a) Dibuja a mano el mallado triangular dado por:
%Primer nodo: n1
%Segundo nodo: n2
1 nodes = [0, 0;
2 1, 0;
3 1, 1;
4 0, 1;
5 0.5, 0.5]; %Quinto nodo:
%Tercer nodo: n3
%Cuarto nodo: n4
n5
6 elem = [1, 2, 5; %Primer elemento: e1
7 2, 3, 5; %Segundo elemento: e2
8 3, 4, 5; %Tercer elemento: e3
9 4, 1, 5]; %Cuarto elemento: e4
Después, dibújalo con la función plotElements.
b) Detecta en qué elemento (en este caso, triángulo) del
mallado está contenido el punto p = (0.8, 0.7).
c) Escribe un script automatizado whatTriangle.m que
recorra en un bucle todos los elementos del mallado hasta
detectar en qué elemento está p.
44. Elementos 2D triangulares 44 /78
Cuestiones
11 Carga el mallado triangular meshHole.m.
a) ¿Cuántos nodos tiene?
b) ¿Cuántos elementos (triángulos) tiene?
c) ¿Qué elemento contiene al punto p = (0.83, 0.7)?
d) ¿Cuáles son los tres vértices de ese elemento?
e) Dibuja el mallado con la función plotElements y el punto.
12 Considera el mallado triangular de 8 nodos y 6 elementos:
a) Escribe unas matrices nodes y elem que lo codifiquen.
b) ¿Son únicas? En caso negativo, explica sus variaciones.
c) Comprueba el resultado con la función plotElements.
45. Elementos 2D triangulares 45 /78
Cuestiones
13 Haz lo mismo que en la cuestión 12, pero con el mallado
triangular:
Una costumbre útil: Es más fácil ver dónde está cada
punto si activamos el “grid” con la instrucción grid on.
46. Elementos 2D triangulares 46 /78
Cuestiones
14 Dibuja con la función plotElements el mallado triangular
que corresponde a los datos:
1
2
3
4
5
nodes = [0, 0; %Primer nodo: n1
1, 0; %Segundo nodo: n2
1, 1; %Tercer nodo: n3
0, 1; %Cuarto nodo: n4
0.5, 0.5]; %Quinto nodo: n5
6 elem = [5, 1, 2; %Primer elemento: e1
7 5, 2, 3; %Segundo elemento: e2
8 5, 3, 4; %Tercer elemento: e3
9 5, 1, 4]; %Cuarto elemento: e4
Obtenemos exactamente el mismo dibujo que el mallado
de la cuestión 10. Sin embargo, este nuevo mallado no es
“correcto”. ¿Por qué? ¿Qué elemento “falla”?
47. Elementos 2D triangulares 47 /78
Cuestiones
15 [Díficil] Carga el mallado triangular meshHole.m.
a) Determina los triángulos de áreas mínima y máxima.
b) Determina los triángulos de perímetros mínimo y máximo.
c) Calcula el área promedio y el perímetro promedio.
16 Carga el mallado triangular meshHole.m.
a) Calcula el valor interpolado en el punto p = (0.83, 0.7) de
la cantidad
1 u = (1:size(nodes,1))’;
que asigna a cada nodo el valor que corresponde a su
índice. Es decir, los primeros/últimos nodos tienen valores
(“temperaturas”) fríos/calientes.
Nota: Hoy no es obligatorio que u sea un vector columna,
luego podríamos escribir u = 1:size(nodes,1).
b) “Colorea” el mallado usando la función del repositorio
plotContourSolution con la paleta de colores ’jet’.
48. Elementos 2D triangulares 48 /78
Cuestiones
17 Carga el mallado triangular meshHole.m.
a) Construye un vector columna u con los valores que toma
en cada uno de sus nodos la función
g(x, y) = x2 + y2.
Es decir, los nodos que están cerca/lejos del origen tienen
valores (“temperaturas”) fríos/calientes.
b) Calcula el valor interpolado u(p) en el punto
p = (0.5, 0.75).
Calcula el error cometido en la aproximación g(p) ≈ u(p).
Es decir, calcula error(p) = |g(p) − u(p)|.
c)
q = (0.2, 0)?
d) “Colorea” el mallado usando la función del repositorio
plotContourSolution con la paleta de colores ’jet’.
49. Elementos 2D triangulares 49 /78
Cuestiones
18 Sea interpolTriangMesh el script usado para resolver
las cuestiones 16–17 y supongamos que hemos cargado
el mallado meshHole.m.
a) ¿Resuelven correctamente la cuestión 16 las siguientes
instrucciones? Justifica la respuesta.
1
2
3
>> f = (1:size(nodes,1))’;
>> p = [0.83,0.7];
>> interpolTriangMesh
b) Ejecutamos las siguientes instrucciones en la ventana de
comandos para resolver la cuestión 16
1
2
3
>> u = (1:size(nodes,1))’;
>> point = [0.83,0.7];
>> interpolTriangMesh
y después escribimos nElem para ver cuántos elementos
tiene el mallado. ¿Es correcto ese proceso?
c) Compara estas cuestiones con las cuestiones 3–4.
50. Elementos 2D triangulares 50 /78
Respuestas
Índice
1 Problemas de detección e interpolación
Detección en un triángulo
Detección en un mallado triangular
Interpolación en un triángulo
Interpolación en un mallado triangular
2 Repositorio oficial
3 Comandos específicos
4 Cuestiones
5 Respuestas
51. Elementos 2D triangulares 51 /78
Respuestas
1 Advertencia: La siguiente función no coincide con la oficial.
1 function [alphas, isInside] = baryCoord(vertices, point)
2 %FILE: baryCoord.m
3 %DESCRIPTION:
4 %Compute the barycentric coordinates of a point with respect to a triangle
5 %INPUT:
6 % vertices (array 3x2) = Coordinates of the vertices of the triangle
7 % vertices=[x1,y1;x2,y2;x3,y3]
8 % point (array 1x2) = Coordinates of the point.
9 %OUTPUT:
10 % alphas (array 1x3) = Barycentric coordinates of the point
11 % isInside (integer) = if isInside=1, then the point belongs to the triangle,
12 % if isInside=0, the point lies outside.
13 %EXAMPLE OF USE: [alphas, isInside]=baryCoord([1,1;3,2;2,4], [2,2])
14
15 % Part 1: Compute the barycentric coordinates
16 A = [ones(3,1),vertices];
17 C = Aeye(3); %Inverse of A
18 alphas = [1,point]*C;
19
20 % Part 2: Check if the point is inside the triangle
21 isInside=1;
22 if (min(alphas) < -1.e-14) %We consider a small tolerance for safety
23 isInside=0;
24 end
25
26 end
52. Elementos 2D triangulares 52 /78
Respuestas
2 a) Ventana de comandos:
1
2
3
4
5
6
7
>> vertices = [1,1; 3,2; 2,4];
>> point = [2,2];
>> [alphas,isInside] = baryCoord(vertices,point)
alphas =
4.0000e-01 4.0000e-01 2.0000e-01
isInside =
1
b) q = β1p1 + β2p2 + β3p3 = (13/6, 17/6).
Ventana de comandos:
1
2
3
4
>> betas = [1/6,1/3,1/2];
>> q = betas*vertices %Since betas is 1x3 and vertices is 3x2
q =
2.1667e+00 2.8333e+00
c) Porque γ1 + γ2 + γ3 /= 1.
d) ψ2(x,y) = (−2 + 3x − y)/5. Ventana de comandos:
1 >> vertices = [1,1; 3,2; 2,4];
2 >> A = [ones(3,1), vertices];
3 >> A[0;1;0]
4 ans
5 -4.0000e-01
6 6.0000e-01
7 -2.0000e-01
53. Elementos 2D triangulares 53 /78
Respuestas
3 Las instrucciones son correctas.
Aunque la cabecera de la función sea
1 function [alphas,isInside]=baryCoord(vertices,point)
es correcto invocarla cambiando el nombre de los
argumentos de entrada y/o salida, pues solo importa que
los argumentos tengan el tipo correcto (arrays del tamaño
adecuado, strings, cells, estructuras, etcétera).
4 Las instrucciones son incorrectas.
Las variables usadas dentro de una función (salvo sin son
argumentos de salida) son locales. Es decir, solo son
conocidas dentro de la función. Por tanto, cuando
llegamos a la línea 4 del script, la matriz A es desconocida.
54. Elementos 2D triangulares 54 /78
Respuestas
5 a) q1 y q2 están fuera, q3 dentro y q4 sobre el lado definido
por p2 y p3.
Ventana de comandos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
>> vertices = [1,1; 3,2; 2,4];
>> q1 = [1.5,3];
>> [alphas,isInside]=baryCoord(vertices,q1)
alphas =
4.0000e-01 -1.0000e-01 7.0000e-01
isInside =
0
>> q2 = [3.5,1];
>> [alphas,isInside]=baryCoord(vertices,q2)
alphas =
-5.5511e-17 1.5000e+00 -5.0000e-01
isInside =
0
>> q3 = [2,3];
>> [alphas,isInside]=baryCoord(vertices,q3)
alphas =
2.0000e-01 2.0000e-01 6.0000e-01
isInside =
1
>> q4 = [2.5,3];
>> [alphas,isInside]=baryCoord(vertices,q4)
alphas =
0 5.0000e-01 5.0000e-01
isInside =
1
55. Elementos 2D triangulares 55 /78
Respuestas
5 b) Script:
1 %FILE: p12_Question5b.m
2 %DESCRIPTION: Answer to Question 5b (see slides on Triangular Elements)
3
4 vertices = [1,1; 3,2; 2,4]; %Triangle vertices
5 q = [1.5,3; 3.5,1; 2,3; 2.5,3]; %The four points to study
6
7 %We add the first vertex at the end to plot a closed triangle,
8 vplot=[vertices;vertices(1,:)];
9 plot(vplot(:,1),vplot(:,2),’k-’);
10 hold on
11
12 %We use the baryCoord function to study each point q(i,:)
13 [n,m] = size(q);
14 for i=1:n
15 [alphas,isInside]=baryCoord(vertices,q(i,:));
16 if isInside==0
17 plot(q(i,1),q(i,2),’ko’,’MarkerFaceColor’,’r’)
18 elseif min(alphas)>1.e-14 %We consider a small tolerance for safety
19 plot(q(i,1),q(i,2),’ko’,’MarkerFaceColor’,’b’)
20 else
21 plot(q(i,1),q(i,2),’ko’,’MarkerFaceColor’,’g’)
22 end
23 end
24 hold off
56. Elementos 2D triangulares 56 /78
Respuestas
q1 = (1.5, 3) está fuera;
q2 = (3.5, 1) está fuera y
sobre la prolongación de
un lado;
q3 = (2, 3) está dentro;
q4 = (2.5, 3) está dentro y
sobre un lado.
Nota: Para obtener este bonito
dibujo, es necesario ejecutar
antes el script
p12_myFigureSettings
con los buenos settings para
figuras.
57. Elementos 2D triangulares 57 /78
Respuestas
6 a) La fórmula correcta es α = zC, no α = (Cz,),.
b) Porque el triángulo de la cuestión 2 hace que la matriz
1 x1 y1 1 1 1
A = 1 x2 y2 = 1 3 2
1 x3 y3 1 2 4
sea simétrica, luego C = A−1 también lo es y, por tanto,
(Cz,), = zC, = zC.
58. Elementos 2D triangulares 58 /78
Respuestas
alphas = [1,point]*C;
7 Función:
1 function [alphas, isInside]=baryRGBColor(vertices, point)
2 %FILE: baryRGBColor.m
3 %DESCRIPTION: RGB-color representation of the barycentric coordinates
4 %Part 1: Compute the barycentric coordinates
5 A = [ones(3,1),vertices];
6 C = Aeye(3); %Inverse of A
7
8 %Part 2: Check if the point is inside the triangle
9 isInside=1;
10 if (min(alphas) < -1.e-14) %We consider a small tolerance for safety
11 isInside=0;
12 end
13 %Part 3: Plotting
14 vplot=[vertices;vertices(1,:)];
15 plot(vplot(:,1),vplot(:,2),’k-’)
16 hold on
17 plot(vertices(1,1),vertices(1,2),’ko’,’MarkerFaceColor’,’r’)
18 plot(vertices(2,1),vertices(2,2),’ko’,’MarkerFaceColor’,’g’)
19 plot(vertices(3,1),vertices(3,2),’ko’,’MarkerFaceColor’,’b’)
20 if isInside
21 plot(point(1),point(2),’ko’,’MarkerFaceColor’,abs(alphas))
22 else
23 plot(point(1),point(2),’ko’,’MarkerFaceColor’,’k’)
24 end
25 title([’[R,G,B] = [’,num2str(alphas(1),’%.2f’),’,’,...
26 num2str(alphas(2),’%.2f’),’,’,num2str(alphas(3),’%.2f’),’]’])
27 hold off
28 end
59. Elementos 2D triangulares 59 /78
Respuestas
p1 = (1, 1)
p2 = (3, 2)
p3 = (2, 4)
p = (2, 2)
Nota: Para obtener este bonito
dibujo, es necesario ejecutar
antes el script
p12_myFigureSettings
con los buenos settings para
figuras.
60. Elementos 2D triangulares 60 /78
Respuestas
%Left-button -> boton = 1
%First time we do not delete the previous picture
[x,y,boton]=ginput(1);
alphas = [1,x,y]*C;
if (borrar)
delete(h2); delete(h3);
end
if (min(alphas) < -1.e-14)
h2=plot(x,y,’ko’,’MarkerFaceColor’,’k’);
else
h2=plot(x,y,’ko’,’MarkerFaceColor’,abs(alphas));
end
h3=title([’[R,G,B] = [’,num2str(alphas(1),’%.2f’),’,’,...
num2str(alphas(2),’%.2f’),’,’,num2str(alphas(3),’%.2f’),’]’]);
borrar=1; %After the first time, we do delete the previous picture
1 function baryRGBColorMouse(vertices)
2 %FILE: baryRGBColorMouse.m
3 %DESCRIPTION: RGB-color representation of barycentric coordinates + mouse
4 A = [ones(3,1),vertices];
5 C = Aeye(3); %Inverse of A
6 %Draw the triangle and its vertices
7 vplot=[vertices;vertices(1,:)];
8 plot(vplot(:,1),vplot(:,2),’k-’)
9 hold on
10 plot(vertices(1,1),vertices(1,2),’ko’,’MarkerFaceColor’,’r’)
11 plot(vertices(2,1),vertices(2,2),’ko’,’MarkerFaceColor’,’g’)
12 plot(vertices(3,1),vertices(3,2),’ko’,’MarkerFaceColor’,’b’)
13 %Wait for mouse input, delete old point & title, redraw new point & title
14 boton=1;
15 borrar=0;
16 while(boton==1)
17
18
19
20
21
22
23
24
25
26
27
28
29
30 end
61. Elementos 2D triangulares 61 /78
Respuestas
8 a) Las tres funciones de forma son
ψ1(x,y) = 1 − x − y, ψ2(x,y) = x, ψ3(x,y) = y.
b) Las coordenadas baricéntricas del punto r = (x,y) son
α = (α1, α2, α3) = (1 − x − y,x,y).
b) Comprobación en la ventana de comandos:
0 5.0000e-01 5.0000e-01
4.0000e-01
1 >> verticesR = [0,0; 1,0; 0,1];
2 >> pointR = [0.5,0.5];
3 >> [alphasR,isInsideR]=baryCoord(verticesR,pointR)
4 alphasR =
5
6 inInsideR =
7 1
8 >> pointR = [-0.5,0.4];
9 >> [alphasR,isInsideR]=baryCoord(verticesR,pointR)
10 alphasR =
11 1.1000e+00 -5.0000e-01
12 isInsideR =
13 0
62. Elementos 2D triangulares 62 /78
Respuestas
%Inverse of A
alphas = [1,point]*C;
9 Función:
1 function pointR = triangle2Reference(vertices, point)
2 %FILE: triangle2Reference.m
3 %DESCRIPTION: Answer to Question 9 (see slides on Triangular Elements)
4
5 %Compute pointR
6 A = [ones(3,1),vertices];
7 C = Aeye(3);
8
9 pointR = [alphas(2),alphas(3)];
10
11 %Draw figure
12 vplot = [vertices;vertices(1,:)];
13 plot(vplot(:,1),vplot(:,2),’k-’)
14 hold on
15 axis equal
16 verticesR = [0,0;1,0;0,1]; %Reference triangle
17 vplotR=[verticesR;verticesR(1,:)];
18 plot(vplotR(:,1),vplotR(:,2),’k-’)
19 plot(point(1),point(2),’ko’,’MarkerFaceColor’,’red’,’lineWidth’,2)
20 plot(pointR(1),pointR(2),’ko’,’MarkerFaceColor’,’blue’,’lineWidth’,2)
21 linePlot = [point; pointR];
22 plot(linePlot(:,1),linePlot(:,2),’g-’)
23 hold off
24
25 end
64. Elementos 2D triangulares 64 /78
Respuestas
10 a) Ventana de comandos:
1 >> nodes = [0, 0;
2 1, 0;
3 1, 1;
4 0, 1;
5 0.5, 0.5];
6 >> elem = [1, 2, 5;
7 2, 3, 5;
8 3, 4, 5;
9 4, 1, 5];
10 >> plotElements(nodes,elem,1);
Advertencia: La función
plotElements debe
estar o bien en el
directorio actual o bien
en el “path” de Matlab.
65. Elementos 2D triangulares
65 /78
Respuestas
10 b) Primera versión (no automatizable):
1 >> point = [0.8,0.7];
2 >> [alphas1,isInside1]=baryCoord(nodes([1,2,5],:),point)
3 alphas1 =
4 -5.0000e-01 1.0000e-01 1.4000e+00
5 isInside1 =
6 0
7 >> [alphas2,isInside2]=baryCoord(nodes([2,3,5],:),point)
8 alphas2 =
9 1.0000e-01 5.0000e-01 4.0000e-01
10 isInside2 =
11 1
12 >> [alphas3,isInside3]=baryCoord(nodes([3,4,5],:),point)
13 alphas3 =
14 5.0000e-01 -1.0000e-01 6.0000e-01
15 isInside3 =
16 0
17 >> [alphas4,isInside4]=baryCoord(nodes([4,1,5],:),point)
18 alphas4 =
19 -1.0000e-01 -5.0000e-01 1.6000e+00
20 isInside4 =
21 0
Conclusión: p = (0.8, 0.7) está en el segundo elemento.
66. Elementos 2D triangulares
66 /78
Respuestas
10 b) Segunda versión (automatizable):
1 >> point = [0.8,0.7];
2 >> [alphas1,isInside1]=baryCoord(nodes(elem(1,:),:),point)
3 alphas1 =
4 -5.0000e-01 1.0000e-01 1.4000e+00
5 isInside1 =
6 0
7 >> [alphas2,isInside2]=baryCoord(nodes(elem(2,:),:),point)
8 alphas2 =
9 1.0000e-01 5.0000e-01 4.0000e-01
10 isInside2 =
11 1
12 >> [alphas3,isInside3]=baryCoord(nodes(elem(3,:),:),point)
13 alphas3 =
14 5.0000e-01 -1.0000e-01 6.0000e-01
15 isInside3 =
16 0
17 >> [alphas4,isInside4]=baryCoord(nodes(elem(4,:),:),point)
18 alphas4 =
19 -1.0000e-01 -5.0000e-01 1.6000e+00
20 isInside4 =
21 0
Conclusión: p = (0.8, 0.7) está en el segundo elemento.
67. Elementos 2D triangulares
67 /78
Respuestas
10 c) Script (automatizado):
1 %FILE: whatTriangle.m
2 %DESCRIPTION: Answer Questions 10c & 11 (slides on Triangular Elements)
3 nElem = size(elem,1);
4 for e=1:nElem %We run over all elements
5 [alphas,isInside]=baryCoord(nodes(elem(e,:),:),point);
6 if isInside
7 fprintf(’The point is in triangle %dn’,e);
8
9
10
break %We exit the FOR loop
end
end
Ventana de comandos:
1
2
3
4
5
6
7
8
>> nodes = [0, 0; 1, 0; 1, 1; 0, 1; 0.5, 0.5];
>> elem = [1, 2, 5;
2, 3, 5;
3, 4, 5;
4, 1, 5];
>> point = [0.8,0.7];
>> whatTriangle
The point is in triangle 2
68. Elementos 2D triangulares 68 /78
Respuestas
11 a) 136 nodos (línea 5).
b) 220 elementos (línea 8).
c) p ∈ Ω189 (línea 11).
d) Líneas 14–16.
e) Ventana de comandos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>> addpath ../meshFilesAll
>> eval(’meshHole’)
>> nNodes = size(nodes,1)
ans =
136
>> nElem = size(elem,1)
ans =
220
>> point = [0.83,0.7];
>> whatTriangle
The point is in triangle 189
>> nodes(elem(189,:),:)
ans =
8.7447e-01 6.2188e-01
8.7850e-01 7.5802e-01
7.3942e-01 7.4997e-01
>> plotElements(nodes,elem,0)
>> hold on
>> plot(point(1),point(2),’o’,...
’MarkerFaceColor’,’r’,...
’MarkerSize’,10,’LineWidth’,2)
>> hold off
69. Elementos 2D triangulares
69 /78
Respuestas
12 a) Script:
1 nodes=[-2,0;
2 -1,0;
3 0,0;
4 1,0;
5 2,0;
6 -1,1;
7 0,1;
8 1,1];
9 elem = [1, 2, 6;
10 2, 3, 6;
11 3, 7, 6;
12 3, 8, 7;
13 3, 4, 8;
14 4, 5, 8];
b) No son únicas. Podemos cambiar el orden de los nodos (o
sea, permutar filas de nodes y entonces modificar elem
para no cambiar el mallado), cambiar el orden de los
elementos (o sea, permutar filas de elem) o el orden de los
nodos dentro de algunos elementos (o sea, realizar
permutaciones cíclicas dentro de algunas filas de nodes).
c) Basta escribir plotElements(nodes,elem,1).
70. Elementos 2D triangulares
70 /78
Respuestas
13 a) Script:
1 nodes=[-2,0;
2 -1,0;
3 0,0;
4 1,0;
5 2,0;
6 -1,1;
7 0,1;
8 1,1];
9 elem = [1, 2, 6;
10 2, 7, 6;
11 2, 3, 7;
12 3, 4, 7;
13 4, 8, 7;
14 4, 5, 8];
b) No son únicas. Podemos cambiar el orden de los nodos (o
sea, permutar filas de nodes y entonces modificar elem
para no cambiar el mallado), cambiar el orden de los
elementos (o sea, permutar filas de elem) o el orden de los
nodos dentro de algunos elementos (o sea, realizar
permutaciones cíclicas dentro de algunas filas de nodes).
c) Basta escribir plotElements(nodes,elem,1).
71. Elementos 2D triangulares 71 /78
Respuestas
14 Los nodos del cuarto elemento no están ordenados en
sentido antihorario. Eso es peligroso, pues algunas
funciones del repositorio oficial pueden dar resultados
incorrectos en mallados con algún elemento mal ordenado.
De hecho, ordenar mal los nodos de un elemento también
puede tener malas consecuencias en cálculos manuales.
15 Ejecutando en la ventana de comandos el script de la
siguiente página obtenemos que:
1
2
3
4
5
6
7
8
9
>> addpath ../meshFilesAll/
>> eval(’meshHole’)
>> areasPerimetersTriangles
Triangle 7 has maximum area
Triangle 52 has minimum area
Triangle 7 has maximum perimeter
Triangle 44 has minimum perimeter
The mean area is 0.007967
The mean perimeter is 0.415972
72. Elementos 2D triangulares 72 /78
Respuestas
Script:
p1 = nodes(elem(e,1),:);
p2 = nodes(elem(e,2),:);
p3 = nodes(elem(e,3),:);
%First vertex
%Second vertex
%Third vertex
perim(e) = norm(p2-p1) + norm(p3-p2) + norm(p3-p1); %Perimeter
areas(e) = det([p2-p1;p3-p1])/2; %Area
1 %FILE: areasPerimetersTriangles.m
2 %DESCRIPTION: Answer to Question 15 (see slides on Triangular Elements)
3 nElem = size(elem,1); %Number of elements in the mesh
4 areas = zeros(1,nElem); %We create a vector to storage all areas
5 perim = zeros(1,nElem); %We create a vector to storage all perimeters
6 for e=1:nElem %We run over all elements
7
8
9
10
11
12 end
13 [maxArea,eMaxArea] = max(areas); %The second output is the desired index
14 [minArea,eMinArea] = min(areas); %The second output is the desired index
15 [maxPerim,eMaxPerim] = max(perim); %The second output is the desired index
16 [minPerim,eMinPerim] = min(perim); %The second output is the desired index
17 fprintf(’Triangle %d has maximum arean’,eMaxArea);
18 fprintf(’Triangle %d has minimum arean’,eMinArea);
19 fprintf(’Triangle %d has maximum perimetern’,eMaxPerim);
20 fprintf(’Triangle %d has minimum perimetern’,eMinPerim);
21 fprintf(’The mean area is %6.4fn’,mean(areas));
22 fprintf(’The mean perimeter is %6.4fn’,mean(perim));
Reto: Escribir una versión de este script que use los comandos
polyshape, perimeter y polyarea de Matlab. Os podéis inspirar
en el script areasPerimetersQuad de la siguiente sección.
73. Elementos 2D triangulares 73 /78
Respuestas
16 Ejecutando en la ventana de comandos el script de la
siguiente página obtenemos que:
1 >> addpath ../meshFilesAll/
2 >> eval(’meshHole’);
3 >> u = (1:size(nodes,1))’;
4 >> point = [0.83,0.7];
5 >> interpolTriangMesh
6 The point is in triangle 189;
7 whose nodes have indexes 109, 112, and 92.
8 The interpolated value is uP = 104.0420
Finalmente, obtenemos el dibujo con la instrucción:
1 >> plotContourSolution(nodes,elem,u,’Color plot’,’jet’)
74. Elementos 2D triangulares 74 /78
Respuestas
= Elements; the indexes of the three nodes of
each triangle in a row
= Values on the nodes
= Coordinates of the point
= linearly interpolated value at the point
= index of the triangle containing the point
if isInside %If isinside, compute the results and break the for loop
elemP = e;
nodesP = elem(e,:);
uP = dot(alphas,u(elem(e,:))); %dot is the scalar product
break
end
1 %FILE: interpolTriangMesh.m
2 %DESCRIPTION: Given a triangular mesh, some values at its nodes, and a
3 %point, we find the triangle containing the point and we linearly
4 %interpolate the value at the point by using its barycentric coordinates
5 %INPUT:
6 % nodes (array nNodes x 2) = Nodes; each node in a row
7 % elem (array nElem x 3)
8 %
9 % u (array nNodes x 1)
10 % point (array 1x2)
11 %where nNodes = number of nodes and nElem = number of elements
12 %OUTPUT:
13 % uP
14 % elemP
15 % nodesP (array 1x3) = indexes of the nodes of the triangle elemP
16 nElem=size(elem,1);
17 for e=1:nElem %We run over all elements
18 [alphas, isInside] = baryCoord(nodes(elem(e,:),:), point);
19
20
21
22
23
24
25 end
26 fprintf(’The point is in triangle %d;n’,elemP);
27 fprintf(’whose nodes have indexes %d, %d, and %d.n’,...
28 nodesP(1),nodesP(2),nodesP(3));
29 fprintf(’The interpolated value is uP = %6.4fn’,uP);
76. Elementos 2D triangulares 76 /78
Respuestas
17 a) Ventana de comandos:
1
2
3
4
>> addpath ../meshFilesAll/
>> eval(’meshHole’);
>> g = @(x,y) x.^2 + y.^2; %Funcion inline
>> u = g(nodes(:,1),nodes(:,2));
b) Usamos el script visto en la cuestión 16:
1
2
3
4
5
6
7
8
9
>> point = [0.5,0.75];
>> interpolTriangMesh
The point is in triangle 158;
whose nodes have indexes 69, 62, and 54.
The interpolatred value is uP = 0.8161
>> gP = g(point(1),point(2));
>> errorP = abs(gP-uP) %uP was computed in the script
errorP =
3.5901e-03
c) No, ya que q /
∈Ω.
d) El dibujo se obtiene con la instrucción:
1 >> plotContourSolution(nodes,elem,u,’Color plot’,’jet’)
78. Elementos 2D triangulares 78 /78
Respuestas
18 a) Esas instrucciones son incorrectas, pues el array de
valores f y el punto p tienen otros nombres en el script.
b) Esas instrucciones son correctas, pues después de
ejecutar un script se recuerdan todas las variables
calculadas en él, a no ser que las borremos con el
comando clear.
c) En las funciones, el nombre de los argumentos es
irrelevante y las variables locales internas desaparecen al
salir de la función. Los scripts se comportan de forma
completamente opuesta. Los buenos programadores
prefieren trabajar con funciones.