Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Manual de estática 2021, Guías, Proyectos, Investigaciones de Física

Manual para estudiar física y dar exámenes

Tipo: Guías, Proyectos, Investigaciones

2020/2021

Subido el 01/06/2022

andre-tuesta
andre-tuesta 🇵🇪

1 documento

1 / 53

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Introducción a GNU Octave
Aplicaciones en ingeniería
CMCM
Rev.02A
30 de abril de 2014
Manual GNU Octave página 1 de 53
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35

Vista previa parcial del texto

¡Descarga Manual de estática 2021 y más Guías, Proyectos, Investigaciones en PDF de Física solo en Docsity!

Introducción a GNU Octave

Aplicaciones en ingeniería

CMCM Rev.02A 30 de abril de 2014

Índice general

CAPÍTULO 1

INTRODUCCIÓN

1.1. ¿Qué es Octave?

GNU Octave es un lenguaje de alto nivel destinado para el cálculo numérico. Provee una interfaz sencilla, orientada a la línea de comandos (consola), que permite la resolución de problemas numéricos, lineales y no lineales, además permite la ejecución de scripts y puede ser usado como lenguaje orientado al procesamiento por lotes. Octave nació alrededor del año 1988, y fue concebido originalmente para ser usado en un curso de diseño de reactores químicos para los alumnos de Ingeniería Química de la Universidad de Texas y la Universidad de Wisconsin-Madison.

Octave posee una gran cantidad de herramientas que permiten resolver problemas de algebra lineal, cálculo de raíces de ecuaciones no lineales, integración de funciones ordinarias, manipulación de polinomios, integración de ecuaciones diferenciales ordinarias y ecuaciones diferenciales algebraicas. Sus funciones también se pueden extender mediante funciones definidas por el usuario escritas en el lenguaje propio de Octave o usando módulos dinámicamente cargados escritos en lenguajes como C, C++ y Fortran entre otros.

1.2. ¿Cómo se escriben los números?

  • Enteros (sin punto decimal):

23 321 − 34

  • Reales (con punto decimal):
  1. −10.1 11.
  • Reales (notación científica o exponencial):

2.e−2 = 210^(−2) = 0. 2.1e+5 = 2.110^(5) = 210000

Atención: para separar la parte entera de la parte decimal hay que usar PUNTO DECIMAL.

1.3. ¿Cómo escribir las operaciones aritméticas elementales?

Tabla 1.1. Operaciones aritméticas elementales. [ Fuente: GNU Octave] Operación Símbolo Octave Suma + Resta - Multiplicación * División /

6+4/2+3. 5.22*3.1416/6− 4

Se puede utilizar Octave como simple calculadora, escribiendo expresiones aritméticas y terminando por RETURN (). Se obtiene el resultado inmediatamente a través de la variable del sistema ans (de answer). Si no se desea la secuencia (es decir, la respuesta inmediata a cada orden) en el terminal, deben terminarse las órdenes por “ punto y coma ”.

1.4. Orden en que se realizan las operaciones aritméticas

Cuando en una expresión hay varios operadores aritméticos, el orden en que se realizan las operaciones es determinante: las operaciones NO SE EFECTÚAN SIEMPRE EN EL ORDEN EN QUE ESTÁN ESCRITAS. El orden viene determinado por las reglas siguientes:

  1. Potencias.
  2. Multiplicaciones y divisiones.
  3. Sumas y restas.
  4. Dentro de cada grupo, de izquierda a derecha.

PARA MODIFICAR ESTE ORDEN SE USAN PARÉNTESIS :

  1. Si hay paréntesis, su contenido se calcula antes que el resto
  2. Si hay paréntesis anidados, se efectúan primero los más internos

2+3^4/2 = 2+(3^4)/2 = 2+81/2 = 2+(81/2) = 2+40.5 = 42. 2+3^(4/2) = 2+3^2 = 2+(3^2) = 2+9 = 11 (2+3^4)/2 = (2+(3^4))/2 = (2+81)/2 = 83/2 = 41.

Las variables en OCTAVE no necesitan ningún tipo de declaración y pueden almacenar sucesivamente distintos tipos de datos: enteros, reales, escalares, matriciales, caracteres, etc. Para CREAR una variable basta con asignarle un valor. Para ASIGNAR un valor a una variable se utiliza una instrucción de asignación:

>> nombre de variable = expresión

ab= AB= x1=1/ y1=1−4^

1.6. Variables predefinidas

Algunos nombres están predefinidos por OCTAVE:

Variables Función ans Variable del sistema para almacenar el resultado de evaluar expresiones i , j unidad imaginaria : raiz cuadrada de -

pi número πππ

Inf “Infinito”: número mayor que el más grande que se puede almacenar NaN “Not a Number : magnitud no numérica resultado de cálculos indefinidos

EJEMPLOS VARIABLES PREDEFINIDAS

Escribir en OCTAVE:

0,2 2 + 1 2

0,1 12 −^

0, 2 13

Ejemplo 4 (EJEMPLOS VARIABLES PREDEFINIDAS).

1.7. Funciones matemáticas elementales

A continuación se ofrece una lista con las funciones matemáticas más comunes que posee OCTAVE. Tabla 1.2. Funciones elementales

Variables Función

sqrt(x) Raíz cuadrada: p^ p^ p xxx

exp(x) Exponencial: e^ e exxx

log(x) Logaritmo neperiano: lnlnln ((( xxx )))

log10(x) Logaritmo decimal: logloglog 101010 ((( xxx )))

abs(x) valor absoluto: ||| xxx |||

sign(x) devuelve el signo del argumento

Tabla 1.3. Funciones Trigonométricas Directa Función Inversa Función sin(x) Seno (en radianes) asin(x) Arco-seno cos(x) Coseno (en radianes) acos(x) Arco-coseno tan(x) Tangente (en radianes) atan(x) Arco-tangente sec(x) Secante asec(x) Arco-secante csc(x) Cosecante acsc(x) Arco-cosecante cot(x) Cotangente acot(x) Arco-cotangente

Tabla 1.4. Funciones hiperbólicas Directa Función Inversa Función sinh(x) Seno hiperbólico asinh(x) Arco-seno hiperbólico cosh(x) Coseno hiperbólico acosh(x) Arco-coseno hiperbólico tanh(x) Tangente hiperbólica atanh(x) Arco-tangente hiperbólica

El argumento de las funciones puede ser un número, una variable o una expresión conteniendo ambas cosas. Cuando en una expresión aparece alguna función, su valor se calcula antes que cualquier otra cosa.

sqrt(7) sqrt(7/5) a=2.1; sqrt(2a) exp(3) exp(x) 7exp(5/4)+3.

Se considera z 1 = 3 + 4 i , z 2 = 4 + 3 i. Determinar, con OCTAVE, los siguientes apartados:

  1. Realizar las siguientes operaciones:

z 1 + z 2 , z 1 · z 2 , ¯ z 1 ,

z 1

z 2 ,^ z^1

2

2. Calcular el módulo y el argumento de z 1.

3. Escribir la forma trigonométrica y exponencial de z 1.

4. Calcular sin ( z 1 ), cos ( z 1 ).

% Apartado (1) z1=3+4i z1_barra=conj(z1) z2=4+3i z_suma=z1+z z_producto=z1z z_cociente=z1/z z_potencia=z1^ % Apartado (2) ro=sqrt(z1z1_barra) alfa=atan(b/a) ro=abs(z1) alfa=angle(z1) % Apartado (3) z1_trig=ro(cos(alfa)+isin(alfa)) z1_polar=roexp(ialfa) % Apartado (4) sin(z1) cos(z1)

Ejemplo 5 (Operarciones con números complejos).

CAPÍTULO 2

VECTORES Y MATRICES

2.1. Definición de vectores y matrices

2.1.1. Definir vectores

Un vector-fila de dimension n se puede definir en OCTAVE escribiendo sus componentes entre corchetes rectos ( [ ] ) y separándolos por comas o espacios en blanco:

v=[1,−1,0,2.88] v = 1.00000 −1.00000 0.00000 2.

La orden anterior crea en OCTAVE una variable de nombre v que “contiene” un vector-fila de longitud 4. Un vector-columna se crea igual, pero separando las componentes por “punto y coma”:

w=[0;1;2;3;4;5] w = 0 1 2 3 4 5

crea una variable de nombre w , que “almacena” un vector-columna de longitud 6.

2.1.2. Definir matrices

Las matrices se definen de forma similar a los vectores, introduciendo sus filas como vectores-fila y separando unas filas de otras mediante punto y coma o saltos de línea.

>> A=[1, 2;−3, −1]

v=[2;−1] z=A*v

A = 1 2

; v = 2

z = A · v =

Ejemplo 9 (Producto de vectores / matrices).

Las setencias:

>> det(A)

>> rank(A)

permiten calcular, respectivamente, el determinante y el rango de una matriz A. Tabla 2.1. Funciones de operación vectorial: Función Descripción cart2pol transforma coordenadas cartesianas a polares cart2sph transforma coordenadas cartesianas a esféricas pol2cart transforma coordenadas polares a cartesianas sph2cart transforma coordenadas esféricas a cartesianas cross producto vectorial dot producto escalar norm módulo de un vector

Dados los vectores:

~a = 3 ~i − 1 ~j + 2 ~k

~b = 1 ~i + 1 ~j − 2 ~k

Calcular, con OCTAVE, los siguientes apartados:

1. El producto escalar de ~a y ~b.

2. El producto vectorial de ~a y ~b.

  1. El vector unitario perpendicular al plano formado por los dos vectores.

a = [3 −1 2]; b = [1 1 −2]; %Apartado (1) S=dot(a,b) %Apartado (2) V=cross(a,b) %Apartado (3) N=norm(V) U=V/N

Ejemplo 10 (Operaciones vectoriales).

El tensor de la figura, se ajusta hasta que la tensión

del cable AB es de 2, 5kN. Determinar, con OCTAVE, el

momento respecto al punto O de la tensión del cable ,que actúa en el punto A, y la magnitud de ese momento.

1.7 m

2.1 m

1.3 m 0.7 m

n_AB=[0.7 1.3 −2.1]; T = 2.5*(n_AB/norm(n_AB)); r = [1.7 0 2.1]; M_o = cross(r,T); M_mag = norm(M_o); fprintf (’M_o = r x T = ( %g)i + ( %g)j + ( %g)k [kN.m]\n’,M_o(1),M_o(2),M_o(3)); fprintf(’M_mag = |M_o| = %1.4f [kN.m]\n’, M_mag)

Ejemplo 11 (Mecánica vectorial).

Una compañía petrolera dispone de tres refinerías de petróleo. Estas se denominan de la siguiente forma: Refinería 1, Refinería 2 y Refinería 3. Cada refinería produce tres productos basados en el crudo: Alquitrán, Gasóleo y Gasolina. Supongamos que, de un barril de petróleo, se sabe que:

  • la primera refinería produce 4 litros de alquitrán, 2 de gasóleo, y 1 de gasolina.
  • la segunda refinería produce 2 litros de alquitrán, 5 de gasóleo y 2.5 de gasolina.
  • y la tercera refinería produce 2 litros de alquitrán, 2 de gasóleo y 5 de gasolina.

Supongamos que hay una demanda de estos productos de la siguiente manera:

  • 600 litros de alquitrán.
  • 800 litros de gasóleo.
  • 1000 litros de gasolina.

¿Cuántos barriles de crudo necesitará cada refinería para satisfacer la demanda?. El enunciado se puede representar de la siguiente forma:

4 x 1 + 2 x 2 + 2 x 3 = 600

2 x 1 + 5 x 2 + 2 x 3 = 800

1 x 1 + 2,5 x 2 + 5 x 3 = 1000

Definimos la matriz y el segundo miembro del sistema.

A=[4 2,2; 2,5,2; 1,2.5,5]; b=[600;800;1000];

Calculamos y comprobamos la solución del sistema.

x=A\b A*x

Solución OCTAVE : La Refinería 1 necesitará 31.25 barriles de crudo La Refinería 2 necesitará 87.50 barriles de crudo La Refinería 3 necesitará 150.00 barriles de crudo

Ejemplo 13 (Modelo de petróleo refinado).

CAPÍTULO 3

REPRESENTACIÓN GRÁFICA DE FUNCIONES

3.1. Curvas planas

La forma más sencilla de dibujar, con OCTAVE, una función y=f(x) es con la orden:

>> ezplot(‘expresion de la funcion’)

Dibuja la gráfica de la función:

f ( x ) =

x · sin( x^2 )

2 en^ [−^2 π , 2 π ]

ezplot(’sin(x^2)*x/2’)

Esta orden dibuja la gráfica de la función dada por la expresión anterior, para x

variando en el intervalo [− 2 π , 2 π ].

Ejemplo 14.

Si se quiere dibujar la función en un intervalo distinto, [a,b], hay que indicarlo expresamente en la orden:

>> ezplot(‘expresion de la funcion’,[a,b])

Dibuja la gráfica de la función:

f ( x ) =

p

12 − x^2

ezplot(’sqrt(1−x^2)’)

La función sólo está definida en [−1, 1].

Ejemplo 17.

Una vez que se ha representado una gráfica, se puede modificar la amplitud de los ejes (el recinto del plano XY que es visible), mediante la orden:

>> axis([ xmin , xmax , ymin , ymax])

ezplot(’sqrt(1−x^2)’) axis([−2,2,−1,2])

Ejemplo 18 (MODIFICACIONES DE LAS GRÁFICAS).

Se puede añadir un título y etiquetas a los ejes:

title(’Figura prueba’) xlabel(’Eje de las x’) ylabel(’Lo que quieras’)

Ejemplo 19 (MODIFICACIONES DE LAS GRÁFICAS).

Cada vez que se dibuja una gráfica nueva se borra la anterior, si la había. Si se desean hacer varias gráficas, “una encima de otra", sin que se borren las anteriores, se pueden usar las siguientes órdenes:

>> hold on

>> hold off

La orden hold on hace que no se borre el contenido de la ventana gráfica cuando se den nuevas órdenes de dibujo. Se suspende con hold off.

ezplot(’sin(x^2)*x/2’,[−4,4]) hold on ezplot(’x−2’,[−4,4]) ezplot(’x^2−1/x’,[−4,4]) hold off

Ejemplo 20 (AÑADIR NUEVAS GRÁFICAS).

También se pueden dibujar varias gráficas separadas en la misma ventana, usando la orden:

>> subplot(m,n,p)

Esta orden divide la ventana gráfica, en subgráficos de m filas y n columnas, y se dispone a dibujar en el p-ésimo de ellos. Los ejes se numeran correlativamente, de izquierda a derecha y de arriba hacia abajo.