Archivo .pdf - DIM

dim.uchile.cl

Archivo .pdf - DIM

MA33A Laboratorio de

Cálculo Numérico

http://www.dim.uchile.cl/~labma33a/

Profesor: Jorge San Martín

e-mail: jorge@dim.uchile.cl

Agosto 2004

MA33A Laboratorio de Cálculo Numérico 1


Generales:

Objetivos

l

l

l

Complementar la cátedra MA33A.

Resolver problemas de tamaño mediano.

Ilustrar algunos casos específicos.

MA33A Laboratorio de Cálculo Numérico 2


Generales:

Objetivos

l

l

l

Complementar la cátedra MA33A.

Resolver problemas de tamaño mediano.

Ilustrar algunos casos específicos.

Específicos:

l

l

Adquirir dominio de programas de cálculo científico y herramientas del

Cálculo numérico.

Desarrollar esquema de formación autodidacta.

(leer manuales de programas, ejemplos, google)

MA33A Laboratorio de Cálculo Numérico 2


Programa del Laboratorio

l

Cuatro sesiones en el Laboratorio.

Sesion 1: Semanas 3, 4 o 5.

Sesion 2: Semanas 6, 7 u 8.

Sesión 3: Semanas 9, 10 u 11.

MA33A Laboratorio de Cálculo Numérico 3


Programa del Laboratorio

l

Cuatro sesiones en el Laboratorio.

Sesion 1: Semanas 3, 4 o 5.

Sesion 2: Semanas 6, 7 u 8.

Sesión 3: Semanas 9, 10 u 11.

Ejemplo: 3.1b: Miercoles a las 8:00, semanas 4, 7, 10 y 13.

etc. (Hay un calendario en la página del laboratorio)

MA33A Laboratorio de Cálculo Numérico 3


Programa del Laboratorio

l

Cuatro sesiones en el Laboratorio.

Sesion 1: Semanas 3, 4 o 5.

Sesion 2: Semanas 6, 7 u 8.

Sesión 3: Semanas 9, 10 u 11.

Ejemplo: 3.1b: Miercoles a las 8:00, semanas 4, 7, 10 y 13.

etc. (Hay un calendario en la página del laboratorio)

l

l

El trabajo es en equipos de DOS personas

Pueden trabajar juntas DOS personas de diferentes secciones

MA33A Laboratorio de Cálculo Numérico 3


Programa del Laboratorio

l

Cuatro sesiones en el Laboratorio.

Sesion 1: Semanas 3, 4 o 5.

Sesion 2: Semanas 6, 7 u 8.

Sesión 3: Semanas 9, 10 u 11.

Ejemplo: 3.1b: Miercoles a las 8:00, semanas 4, 7, 10 y 13.

etc. (Hay un calendario en la página del laboratorio)

l

l

El trabajo es en equipos de DOS personas

Pueden trabajar juntas DOS personas de diferentes secciones

l La nota de laboratorio debe ser ≥ 4.0

l

Si (R)epito MA33A ⇒ debere rehacer el Laboratorio.

MA33A Laboratorio de Cálculo Numérico 3


SCILAB

l

Es el programa de cálculo numérico usado en el Laboratorio.

MA33A Laboratorio de Cálculo Numérico 4


SCILAB

l

l

Es el programa de cálculo numérico usado en el Laboratorio.

Desde el punto de vista de su complejidad

Click → Calculadora

Lenguajes compilados → Java, Fortran, C, C++

MA33A Laboratorio de Cálculo Numérico 4


SCILAB

l

l

Es el programa de cálculo numérico usado en el Laboratorio.

Desde el punto de vista de su complejidad

Click → Calculadora

Interpretado → SCILAB

Lenguajes compilados → Java, Fortran, C, C++

MA33A Laboratorio de Cálculo Numérico 4


SCILAB

l

l

Es el programa de cálculo numérico usado en el Laboratorio.

Desde el punto de vista de su complejidad

Click → Calculadora

Interpretado → SCILAB

Lenguajes compilados → Java, Fortran, C, C++

l

l

Puede ser considerado como una calculadora.

Las variables de base son matrices.

MA33A Laboratorio de Cálculo Numérico 4


Ejemplos

l

Definición de un vector fila llamado A

-->A=[1 2 3];

MA33A Laboratorio de Cálculo Numérico 5


Ejemplos

l

Definición de un vector fila llamado A

-->A=[1 2 3];

--> es el prompt del programa, invitando a

escribir comandos.

MA33A Laboratorio de Cálculo Numérico 5


Ejemplos

l

Definición de un vector fila llamado A

-->A=[1 2 3];

--> es el prompt del programa, invitando a

escribir comandos.

l

Definición de un vector columna llamado v

-->v=[1 ; 2 ; 3];

MA33A Laboratorio de Cálculo Numérico 5


Ejemplos

l

Definición de un vector fila llamado A

-->A=[1 2 3];

--> es el prompt del programa, invitando a

escribir comandos.

l

Definición de un vector columna llamado v

-->v=[1 ; 2 ; 3];

o bien

-->v=[1

-->2

-->3];

MA33A Laboratorio de Cálculo Numérico 5


l

Producto de A por v

-->A*v

ans =

14.

MA33A Laboratorio de Cálculo Numérico 6


l

Producto de A por v

l

-->A*v

ans =

14.

Tambien se puede multiplicar v (3x1) por A (1x3)

MA33A Laboratorio de Cálculo Numérico 6


l

Producto de A por v

l

-->A*v

ans =

14.

Tambien se puede multiplicar v (3x1) por A (1x3)

-->v*A

ans =

! 1. 2. 3. !

! 2. 4. 6. !

! 3. 6. 9. !

MA33A Laboratorio de Cálculo Numérico 6


Atención: Scilab diferencia las mayusculas de las minusculas:

-->a*v

!--error 4

undefined variable : a

-->v*a

!--error 4

undefined variable : a

MA33A Laboratorio de Cálculo Numérico 7


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

-->i=1:2:20 ( Vector fila 1 3 5 ··· 19 )

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

-->i=1:2:20 ( Vector fila 1 3 5 ··· 19 )

-->x=linspace(0,1,11) Particion de [0,1] formada por 11 puntos.

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

-->i=1:2:20 ( Vector fila 1 3 5 ··· 19 )

-->x=linspace(0,1,11) Particion de [0,1] formada por 11 puntos.

-->A=zeros(10,30)

Matriz de 10x30 formada por ceros

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

-->i=1:2:20 ( Vector fila 1 3 5 ··· 19 )

-->x=linspace(0,1,11) Particion de [0,1] formada por 11 puntos.

-->A=zeros(10,30)

-->A=ones(10,30)

Matriz de 10x30 formada por ceros

Matriz de 10x30 formada por unos

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

-->i=1:2:20 ( Vector fila 1 3 5 ··· 19 )

-->x=linspace(0,1,11) Particion de [0,1] formada por 11 puntos.

-->A=zeros(10,30)

-->A=ones(10,30)

-->I=eye(4,4)

Matriz de 10x30 formada por ceros

Matriz de 10x30 formada por unos

Matriz Identidad 4x4

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

-->i=1:2:20 ( Vector fila 1 3 5 ··· 19 )

-->x=linspace(0,1,11) Particion de [0,1] formada por 11 puntos.

-->A=zeros(10,30)

-->A=ones(10,30)

-->I=eye(4,4)

-->A=diag(i)

Matriz de 10x30 formada por ceros

Matriz de 10x30 formada por unos

Matriz Identidad 4x4

Matriz cuadrada con diagonal igual a i

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

-->i=1:2:20 ( Vector fila 1 3 5 ··· 19 )

-->x=linspace(0,1,11) Particion de [0,1] formada por 11 puntos.

-->A=zeros(10,30)

-->A=ones(10,30)

-->I=eye(4,4)

-->A=diag(i)

-->j=diag(A)

Matriz de 10x30 formada por ceros

Matriz de 10x30 formada por unos

Matriz Identidad 4x4

Matriz cuadrada con diagonal igual a i

La inversa de la anterior (i==j)

MA33A Laboratorio de Cálculo Numérico 8


Algunas construcciones

-->i=1:20 Vector fila ( 1 2 3 ··· 20 )

-->i=i’

Traspuesto del anterior

-->i=1:2:20 ( Vector fila 1 3 5 ··· 19 )

-->x=linspace(0,1,11) Particion de [0,1] formada por 11 puntos.

-->A=zeros(10,30)

-->A=ones(10,30)

-->I=eye(4,4)

-->A=diag(i)

-->j=diag(A)

-->M=rand(2,6)

Matriz de 10x30 formada por ceros

Matriz de 10x30 formada por unos

Matriz Identidad 4x4

Matriz cuadrada con diagonal igual a i

La inversa de la anterior (i==j)

Matriz de 2x6 de números

pseudo-aleatorios.

MA33A Laboratorio de Cálculo Numérico 8


Operaciones con Matrices

-->A+M

Suma de Matrices

MA33A Laboratorio de Cálculo Numérico 9


Operaciones con Matrices

-->A+M

Suma de Matrices

-->D=A+ones(A)

MA33A Laboratorio de Cálculo Numérico 9


Operaciones con Matrices

-->A+M

Suma de Matrices

-->D=A+ones(A)

-->A*M

Producto (si las dimensiones son apropiadas)

MA33A Laboratorio de Cálculo Numérico 9


Operaciones con Matrices

-->A+M

Suma de Matrices

-->D=A+ones(A)

-->A*M

-->A^2

Producto (si las dimensiones son apropiadas)

A 2 = A · A

MA33A Laboratorio de Cálculo Numérico 9


Operaciones con Matrices

-->A+M

Suma de Matrices

-->D=A+ones(A)

-->A*M

-->A^2

-->A**5 A 5

Producto (si las dimensiones son apropiadas)

A 2 = A · A

MA33A Laboratorio de Cálculo Numérico 9


Operaciones con Matrices

-->A+M

Suma de Matrices

-->D=A+ones(A)

-->A*M

-->A^2

Producto (si las dimensiones son apropiadas)

A 2 = A · A

-->A**5 A 5

-->M=sin(A) M = (m i j ) donde m i j = sen(a i j )

MA33A Laboratorio de Cálculo Numérico 9


Operaciones con Matrices

-->A+M

Suma de Matrices

-->D=A+ones(A)

-->A*M

-->A^2

-->A**5 A 5

Producto (si las dimensiones son apropiadas)

A 2 = A · A

-->M=sin(A) M = (m i j ) donde m i j = sen(a i j )

-->M=f(A) Caso general M = (m i j )

donde m i j = f (a i j )

MA33A Laboratorio de Cálculo Numérico 9


Funciones

abs,sqrt

Valor Absoluto, √

exp,log,log10 Exponencial, Logaritmo en base e y 10

sin,cos,tan,cotg Funciones Trigonométricas

acos,asin,atan

Trigonométricas inversas

cosh,sinh,tanh

Hiperbólicas

acosh,asinh,atanh Hiperbólicas inversas

floor,ceil,int

Partes entera inferior, superior, inglesa

erf erf(x) = √ 2 Z x

e −t2 dt,

π

erfc erfc(x) = 1 − erf(x) = √ 2 Z ∞

e −t2 dt π

gamma,lngamma,dlgamma Γ(x) =

Z +∞

0

0

t x−1 e −t dt, ln (Γ(x)),

x

d dxln (Γ(x))

MA33A Laboratorio de Cálculo Numérico 10


Operaciones elemento por elemento

-->M = A .* B

M = (m i j ) donde m i j = a i j · b i j

MA33A Laboratorio de Cálculo Numérico 11


Operaciones elemento por elemento

-->M = A .* B

-->M = A ./ B

-->M = A .ˆ B

M = (m i j ) donde m i j = a i j · b i j

MA33A Laboratorio de Cálculo Numérico 11


Resolución de sistemas lineales

-->x = A \ b

MA33A Laboratorio de Cálculo Numérico 12


Resolución de sistemas lineales

-->x = A \ b

Resuelve Ax = b por Gauss

x = A −1 · b (y no x = b · A −1 )

MA33A Laboratorio de Cálculo Numérico 12


Resolución de sistemas lineales

-->x = A \ b

Ejemplo

-->A=rand(100,100);

-->b=rand(100,1);

-->x=A\b;

-->norm(A*x-b)

-->norm(A*x-b,1)

-->norm(A*x-b,’inf’)

Resuelve Ax = b por Gauss

x = A −1 · b (y no x = b · A −1 )

MA33A Laboratorio de Cálculo Numérico 12


Matrices no invertibles:

-->A=[1 2 ; 1 2] ; b=[1;1];

-->x= A\b;

!--error 19

singular matrix

MA33A Laboratorio de Cálculo Numérico 13


Matrices no invertibles:

-->A=[1 2 ; 1 2] ; b=[1;1];

-->x= A\b;

!--error 19

singular matrix

-->A=[1 2 ; 1+%eps 2] ; b=[1;1];

-->x= A\b;

warning

matrix is close to singular or badly scaled.

results may be inaccurate. rcond = 3.7007E-17

MA33A Laboratorio de Cálculo Numérico 13


Referencias y extracciones

-->A(3,4) Elemento (3,4)

MA33A Laboratorio de Cálculo Numérico 14


Referencias y extracciones

-->A(3,4) Elemento (3,4)

-->A(:,4) Columna 4

MA33A Laboratorio de Cálculo Numérico 14


Referencias y extracciones

-->A(3,4) Elemento (3,4)

-->A(:,4) Columna 4

-->A(3,:) Fila 3

MA33A Laboratorio de Cálculo Numérico 14


Referencias y extracciones

-->A(3,4) Elemento (3,4)

-->A(:,4) Columna 4

-->A(3,:) Fila 3

-->A(1:2,1:2)

Submatriz principal de 2x2

MA33A Laboratorio de Cálculo Numérico 14


Referencias y extracciones

-->A(3,4) Elemento (3,4)

-->A(:,4) Columna 4

-->A(3,:) Fila 3

-->A(1:2,1:2)

-->A([1 3],[2 4])

A =




Submatriz principal de 2x2

Submatriz de 2x2 correspondiente.

1 2 3 4 5

2 4 6 8 10

1 2 3 5 7

1 4 9 16 25




MA33A Laboratorio de Cálculo Numérico 14


Ejemplo

A =




1 2 3 4

1 4 9 16

1 8 27 64

1 16 81 256


( ⎟ B

⎠ = D

C

E

)

MA33A Laboratorio de Cálculo Numérico 15


Ejemplo

A =




1 2 3 4

1 4 9 16

1 8 27 64

1 16 81 256


( ⎟ B

⎠ = D

C

E

)

-->B=1;

-->C=[2 3 4];

-->D=[1;1;1];

-->E=[4 9 16 ; 8 27 64 ; 16 81 256 ];

MA33A Laboratorio de Cálculo Numérico 15


Ejemplo

A =




1 2 3 4

1 4 9 16

1 8 27 64

1 16 81 256


( ⎟ B

⎠ = D

C

E

)

-->B=1;

-->C=[2 3 4];

-->D=[1;1;1];

-->E=[4 9 16 ; 8 27 64 ; 16 81 256 ];

-->A=[B C ; D E];

MA33A Laboratorio de Cálculo Numérico 15


Destrucción de componentes

Sea v = (k 1 ,k 2 ,...,k p ) un vector, entonces

MA33A Laboratorio de Cálculo Numérico 16


Destrucción de componentes

Sea v = (k 1 ,k 2 ,...,k p ) un vector, entonces

-->M(v,:) = []

destruye las filas k 1 ,...,k p

MA33A Laboratorio de Cálculo Numérico 16


Destrucción de componentes

Sea v = (k 1 ,k 2 ,...,k p ) un vector, entonces

-->M(v,:) = []

-->M(:,v) = []

destruye las filas k 1 ,...,k p

destruye las columnas k 1 ,...,k p

MA33A Laboratorio de Cálculo Numérico 16


Destrucción de componentes

Sea v = (k 1 ,k 2 ,...,k p ) un vector, entonces

-->M(v,:) = []

-->M(:,v) = []

-->x(v) = []

destruye las filas k 1 ,...,k p

destruye las columnas k 1 ,...,k p

destruye los elementos k 1 ,...,k p del vector x

MA33A Laboratorio de Cálculo Numérico 16


Destrucción de componentes

Sea v = (k 1 ,k 2 ,...,k p ) un vector, entonces

-->M(v,:) = []

-->M(:,v) = []

-->x(v) = []

-->A = []

destruye las filas k 1 ,...,k p

destruye las columnas k 1 ,...,k p

destruye los elementos k 1 ,...,k p del vector x

destruye la matriz A

MA33A Laboratorio de Cálculo Numérico 16


Gráficos

-->x=linspace(0 , 2 * %pi, 101);

-->y=exp(-x) .* sin (4*x);

-->plot(x , y , ’x’, ’y’, ’y=exp(x)*sen(4x)’)

MA33A Laboratorio de Cálculo Numérico 17


Gráficos

-->x=linspace(0 , 2 * %pi, 101);

-->y=exp(-x) .* sin (4*x);

-->plot(x , y , ’x’, ’y’, ’y=exp(x)*sen(4x)’)

0.8

y

y=exp(x)*sen(4x)

0.6

0.4

0.2

0

−0.2

x

−0.4

0 1 2 3 4 5 6 7

MA33A Laboratorio de Cálculo Numérico 17


0.8

y

y=exp(x)*sen(4x)

0.6

0.4

0.2

0

−0.2

x

−0.4

0 1 2 3 4 5 6 7

MA33A Laboratorio de Cálculo Numérico 18


Archivo de comandos

-->exec(’archivo.txt’)

MA33A Laboratorio de Cálculo Numérico 19


Archivo de comandos

-->exec(’archivo.txt’)

Ejemplo:

//mi primer archivo de comandos

a = input("Ingrese el valor de a:");

b = input("Ingrese el valor de b:");

n = input("Ingrese el numero de intervalos n:");

x = linspace(a,b,n+1);

y = exp(-x) .* sin(4*x);

plot(x,y,’x’,’y’,’y=exp(-x)*sin(4*x)’)

MA33A Laboratorio de Cálculo Numérico 19


Otras Funciones

-->sum(1:10)

n(n+1)

2

= 5 · 11 = 55

MA33A Laboratorio de Cálculo Numérico 20


Otras Funciones

-->sum(1:10)

-->A=[1 2;3 4];

n(n+1)

= 5 · 11 = 55

2

( )

1 2

3 4

MA33A Laboratorio de Cálculo Numérico 20


Otras Funciones

-->sum(1:10)

-->A=[1 2;3 4];

-->sum(A,’row’)

n(n+1)

= 5 · 11 = 55

2

( )

1 2

3 4

( )

4 6

MA33A Laboratorio de Cálculo Numérico 20


Otras Funciones

-->sum(1:10)

-->A=[1 2;3 4];

-->sum(A,’row’)

-->sum(A,’col’)

n(n+1)

= 5 · 11 = 55

2

( )

1 2

3 4

( )

4 6

( ) 3

7

MA33A Laboratorio de Cálculo Numérico 20


Otras Funciones

-->sum(1:10)

-->A=[1 2;3 4];

-->sum(A,’row’)

-->sum(A,’col’)

n(n+1)

= 5 · 11 = 55

2

( )

1 2

3 4

( )

4 6

( ) 3

7

-->prod(A,’row’); prod(A,’col’)

MA33A Laboratorio de Cálculo Numérico 20


Otras Funciones [2]

-->logspace(-2,5,7)

( 0.01 0.1 1 10 100 1000 10000

)

MA33A Laboratorio de Cálculo Numérico 21


Otras Funciones [2]

-->logspace(-2,5,7)

( 0.01 0.1 1 10 100 1000 10000

)

-->[nl,nc]=size(A)

-->length(A)

MA33A Laboratorio de Cálculo Numérico 21


Otras Funciones [2]

-->logspace(-2,5,7)

( 0.01 0.1 1 10 100 1000 10000

)

-->[nl,nc]=size(A)

-->length(A)

Valores y vectores propios

-->A=rand(5,5)

-->spec(A)

-->[D,V]=bdiag(A)

MA33A Laboratorio de Cálculo Numérico 21


Informaciones

-->who

MA33A Laboratorio de Cálculo Numérico 22


Informaciones

-->who

your variables are...

v ans k J I i

startup ierr demolist %scicos_display_mode

scicos_pal %scicos_menu %scicos_short

%helps MSDOS home PWD TMPDIR

percentlib soundlib xdesslib utillib tdcslib

siglib s2flib roblib optlib metalib elemlib

commlib polylib autolib armalib alglib intlib

mtlblib SCI %F %T %z %s

%nan %inf $ %t %f %eps

%io %i %e

using 6177 elements out of 1000000.

and 51 variables out of 1791

MA33A Laboratorio de Cálculo Numérico 22


Ejercicios-Tarea

1. Definir la matriz de orden n siguiente

A =




2 −1 0 ··· 0

−1 2 −1 ··· 0

0 −1 ... ... .

. ... ... 2 −1

0 ··· 0 −1 2




2. Si A es una matriz cuadrada, ¿qué significa diag(diag(A))?

3. Dada una matriz A, escribir una instrucción de una linea para definir

la matriz triangular inferior T definida por t i j = a i j si i > j y t ii = 1.

Indicación: mirar las instrucciones tril y triu.

MA33A Laboratorio de Cálculo Numérico 23


4. Sea X una matriz (o vector). Escribir una instrucción que permita

calcular la matriz Y de la misma dimesión que X donde el elemento

y i j = f (x i j ) para las funciones f siguientes:

(a) f (x) = 2x 2 − 3x + 1

(b) f (x) = ∣ ∣2x 2 − 3x + 1 ∣ ∣

(c) f (x) = (x − 1)(x + 4)

(d) f (x) = 1

1+x 2

5. Trazar el gráfico de la función f (x) = ex − 1

x para x ∈ [10 −15 ,10 −5 ]

usando escala logarítmica para las abscisas.

Exportar el gráfico como archivo “.GIF” en “grafico-p5.gif”.

A continuación, exportar en “grafico-p5-2.gif” el gráfico de la función

x → log 10 ( f (x) − 1).

Comente como son los gráficos comparados con la teoría.

Las instrucciones SCILAB guardelas en el archivo de texto “tarea.txt”

MA33A Laboratorio de Cálculo Numérico 24


Tarea 2000/2

Enunciado:

Un niño sigue una trayectoria conocida

⃗r(t) = (u(t),v(t))

en el plano {OXY }.

Este joven tira (o empuja) un juguete con una barra de largo l.

Encontar la trayectoria ⃗x(t) del juguete si se sabe que inicialmente su

posición era ⃗x 0 = (a,b) y su velocidad era ⃗v 0 = (c,d).

MA33A Laboratorio de Cálculo Numérico 25


Esquema

NIÑO

JUGUETE

MA33A Laboratorio de Cálculo Numérico 26


Formulación

Ecuación de Newton

(1)

¨⃗x = λ(⃗r −⃗x), λ ∈ R.

MA33A Laboratorio de Cálculo Numérico 27


Formulación

Ecuación de Newton

(1)

La barra es inextensible

(2)

¨⃗x = λ(⃗r −⃗x), λ ∈ R.

(⃗x −⃗r) · (⃗x −⃗r) = l 2 .

MA33A Laboratorio de Cálculo Numérico 27


Formulación

Ecuación de Newton

(1)

La barra es inextensible

(2)

¨⃗x = λ(⃗r −⃗x), λ ∈ R.

(⃗x −⃗r) · (⃗x −⃗r) = l 2 .

Derivamos dos veces (2) y obtenemos

y

2(⃗x −⃗r) · (˙⃗x − ˙⃗r) = 0,

MA33A Laboratorio de Cálculo Numérico 27


Formulación

Ecuación de Newton

(1)

La barra es inextensible

(2)

¨⃗x = λ(⃗r −⃗x), λ ∈ R.

(⃗x −⃗r) · (⃗x −⃗r) = l 2 .

Derivamos dos veces (2) y obtenemos

y

2(⃗x −⃗r) · (˙⃗x − ˙⃗r) = 0,

(⃗x −⃗r) · (¨⃗x − ¨⃗r) + (˙⃗x − ˙⃗r) · (˙⃗x − ˙⃗r) = 0

MA33A Laboratorio de Cálculo Numérico 27


Formulación

Ecuación de Newton

(1)

La barra es inextensible

(2)

¨⃗x = λ(⃗r −⃗x), λ ∈ R.

(⃗x −⃗r) · (⃗x −⃗r) = l 2 .

Derivamos dos veces (2) y obtenemos

y

2(⃗x −⃗r) · (˙⃗x − ˙⃗r) = 0,

(⃗x −⃗r) · (¨⃗x − ¨⃗r) + (˙⃗x − ˙⃗r) · (˙⃗x − ˙⃗r) = 0

Utilizamos (1) y obtenemos

λ = (⃗x −⃗r) · (−¨⃗r) + (˙⃗x − ˙⃗r) · (˙⃗x − ˙⃗r)

l 2

MA33A Laboratorio de Cálculo Numérico 27


Ecuación

¨⃗x = (⃗r −⃗x) · ¨⃗r + (˙⃗x − ˙⃗r) · (˙⃗x − ˙⃗r)

l 2

(⃗r −⃗x).

MA33A Laboratorio de Cálculo Numérico 28


Ecuación

¨⃗x = (⃗r −⃗x) · ¨⃗r + (˙⃗x − ˙⃗r) · (˙⃗x − ˙⃗r)

l 2

(⃗r −⃗x).

Definiendo

⃗x = (x 1 (t),x 2 (t))

˙⃗x = (x 3 (t),x 4 (t))

X = (x 1 ,...,x 4 )

λ(X) = 1 {( ) ( )

}

r1 − x 1 ¨r1

· + (x

l 2 r 2 − x 2 ¨r 3 − ṙ 1 ) 2 + (x 4 − ṙ 2 ) 2

2

MA33A Laboratorio de Cálculo Numérico 28


La ecuación se escribe como

d

dt




⎞ ⎛

x 1

x 2


x 3

⎠ = ⎜


x 4

x 3

x 4

λ(X)(r 1 − x 1 )

λ(X)(r 2 − x 2 )




MA33A Laboratorio de Cálculo Numérico 29


La ecuación se escribe como

d

dt




⎞ ⎛

x 1

x 2


x 3

⎠ = ⎜


x 4

x 3

x 4

λ(X)(r 1 − x 1 )

λ(X)(r 2 − x 2 )




Es decir

d

X(t)

dx

= F (X(t))

X(0) = X 0

donde X : [0,T] → R 4

MA33A Laboratorio de Cálculo Numérico 29


Solución Numérica

X(t + ∆t) = X(t) +

Z t+∆t

t

F (X(s))ds

≈ X(t) + F (X(t)) · ∆t

MA33A Laboratorio de Cálculo Numérico 30


Solución Numérica

X(t + ∆t) = X(t) +

Z t+∆t

t

F (X(s))ds

≈ X(t) + F (X(t)) · ∆t

Dado ∆t generamos {X n } tal que X n ≈ X(n∆t) mediante la regla

X n+1 = X n + F (X n )∆t

MA33A Laboratorio de Cálculo Numérico 30


SCILAB

Función⃗r(t), ˙⃗r(t) y ¨⃗r(t)

function [pos,vel,accel]=nino(t,flag)

if flag ==1 then

pos = [ 5*cos(t) ; 5*sin(t)]

vel = [-5*sin(t) ; 5*cos(t)]

accel = [-5*cos(t) ;-5*sin(t)]

end

MA33A Laboratorio de Cálculo Numérico 31


Programa

T=2*%pi ;N=500; l=5; dt=T/N;

t=(0:N)*dt;

[xn,vn,an] = nino (t,1);

xj=[];xj = zeros (4,N+1);

xj(:,1) = [ 5+5*cos(%pi/4) ; -5*sin(%pi/4) ; 0 ; 5 ];

for i=1:N

X=xj(:,i) ;

xji = [X(1);X(2)]; vji = [X(3);X(4)] ;

xni = xn(:,i) ; vni = vn(:,i); ani= an(:,i);

F=(xni-xji)’*ani+norm(vji-vni)^2;

F=F/l/l;

FF=[X(3); X(4); F*(xni(1)-X(1)); F*(xni(2)-X(2))];

xj(:,i+1)=xj(:,i)+dt*FF;

end

MA33A Laboratorio de Cálculo Numérico 32


Gráficos

plot (xj(1,:),xj(2,:))

plot2d ([xj(1,:)’ xn(1,:)’] ,[xj(2,:)’ xn(2,:)’])

MA33A Laboratorio de Cálculo Numérico 33

More magazines by this user
Similar magazines