Pracica3matlab

11
Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2 BREVE EXPLICACIÓN Y COMENTARIOS DE LOS EJEMPLOS INCLUIDOS EN LA PRÁCTICA 3.1 MANEJO SIMBÓLICO >> syms x // Comando para que x sea un símbolo. Aparece en la ventana de workspace como <1x1 sym> como su valor. >> 2*x+3*x // Realiza la suma de 2x más 3x y muestra el resultado como 5x. >> a= [x 5; 3*x 4] // Muestra una matriz de 2x2, en el comando los renglones están separados por (;). >> t=inv(a) // Obtiene la matriz inversa de a, también de 2x2. >> t=solve(2*x^2+3*x-2) // Resuelve la ecuación cuadrática indicada entre paréntesis, en términos de x. >> f=3*x^2+5*x // Asigna la ecuación cuadrática a una variable f. >> t=factor(f) // Factoriza a la variable x exponente 1 y expresa el resultado como t=x*(3*x + 5). >> s=expand(t) // Realiza la multiplicación de la expresión anterior para regresar a f. >> e=taylor(exp(x)) // Expande e x , en el ejemplo el resultado son 5 términos de la serie de Taylor (e =x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1). >> limit(sin(x)/x) // Resuelve el límite de sen(x)/x mostrando como resultado 1. >> syms y; // Comando para que y sea un símbolo. Aparece en la ventana de workspace como <1x1 sym> como su valor. >> f=2*x^3+3*y^2 // Una vez establecida la variable y como símbolo, se puede incluir en una expresión con la variable x, asignada a la variable f. >> g=diff(f,x) // Realiza la derivada de f con respecto a la variable x, mostrando como resultado (g =6*x^2) >> u=int(f,x) // Obtiene la integral de f, mostrando como resultado (u = x^4/2 + 3*x*y^2). 3.2 FUNCIONES ADICIONALES CON EXPRESIONES SIMBÓLICAS >> f='2*t+1'; // Asigna la expresión a la variable f. >> t=3 // Asigna el 3 a la variable t. >> y=eval(f) // Establece la igualdad y = 2*t + 1. >> [a,b] = solve('a^2 + a*b - b = 3','a^2 - 4*b - 5 = 0') // A partir del sistema de ecuaciones que se escribe entre paréntesis y comillas simples, el programa encuentra tres soluciones para cada una de las variables involucradas (a y b). >> a=double(a) // Expresa los resultados de a como números de tipo double, es decir, desarrolla las expresiones para mostrar sólo un número. Por ejemplo para a = -1,- 2*2^(1/2) – 1, 2*2^(1/2) – 1 se muestra a = -1.0000, -3.8284, 1.8284. >> b=double(b) // Realiza la misma acción pero con los valores para b. >> f='exp(x)-pi*x'; // Establece una ecuación para x con exponencial y multiplicado por pi. >> x=solve(f) // Muestra (x = -lambertw(0, -1/pi)) como resultado. 1

description

Breve descripción Comandos MatLab

Transcript of Pracica3matlab

Page 1: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

BREVE EXPLICACIÓN Y COMENTARIOS DE LOS EJEMPLOS INCLUIDOS EN LA PRÁCTICA

3.1 MANEJO SIMBÓLICO

>> syms x // Comando para que x sea un símbolo. Aparece en la ventana de workspace como <1x1 sym> como su valor.>> 2*x+3*x // Realiza la suma de 2x más 3x y muestra el resultado como 5x.>> a= [x 5; 3*x 4] // Muestra una matriz de 2x2, en el comando los renglones están separados por (;).>> t=inv(a) // Obtiene la matriz inversa de a, también de 2x2.>> t=solve(2*x^2+3*x-2) // Resuelve la ecuación cuadrática indicada entre paréntesis, en términos de x. >> f=3*x^2+5*x // Asigna la ecuación cuadrática a una variable f.>> t=factor(f) // Factoriza a la variable x exponente 1 y expresa el resultado como t=x*(3*x + 5).>> s=expand(t) // Realiza la multiplicación de la expresión anterior para regresar a f.>> e=taylor(exp(x)) // Expande ex, en el ejemplo el resultado son 5 términos de la serie de Taylor (e =x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1).>> limit(sin(x)/x) // Resuelve el límite de sen(x)/x mostrando como resultado 1.>> syms y; // Comando para que y sea un símbolo. Aparece en la ventana de workspace como <1x1 sym> como su valor.>> f=2*x^3+3*y^2 // Una vez establecida la variable y como símbolo, se puede incluir en una expresión con la variable x, asignada a la variable f.>> g=diff(f,x) // Realiza la derivada de f con respecto a la variable x, mostrando como resultado (g =6*x^2)>> u=int(f,x) // Obtiene la integral de f, mostrando como resultado (u = x^4/2 + 3*x*y^2).

3.2 FUNCIONES ADICIONALES CON EXPRESIONES SIMBÓLICAS

>> f='2*t+1'; // Asigna la expresión a la variable f.>> t=3 // Asigna el 3 a la variable t.>> y=eval(f) // Establece la igualdad y = 2*t + 1.>> [a,b] = solve('a^2 + a*b - b = 3','a^2 - 4*b - 5 = 0') // A partir del sistema de ecuaciones que se escribe entre paréntesis y comillas simples, el programa encuentra tres soluciones para cada una de las variables involucradas (a y b).>> a=double(a) // Expresa los resultados de a como números de tipo double, es decir, desarrolla las expresiones para mostrar sólo un número. Por ejemplo para a = -1,- 2*2^(1/2) – 1, 2*2^(1/2) – 1 se muestra a = -1.0000, -3.8284, 1.8284.>> b=double(b) // Realiza la misma acción pero con los valores para b.>> f='exp(x)-pi*x'; // Establece una ecuación para x con exponencial y multiplicado por pi.>> x=solve(f) // Muestra (x = -lambertw(0, -1/pi)) como resultado.>> x=double(x) // Muestra un resultado desarrollado para x (x = 0.5538).>> x=fzero(f,2) // Muestra como resultado (x = 1.6385).>> x=fzero(f,[1,2]) // Muestra como resultado (x = 1.6385).>> u=diff(f) // Realiza la derivada de la expresión igualada a f. El resultado mostrado es: u = 19 -8 -72 80 -79 4 67 -7 -63 78>> v=int(f) // Integra la función. *El programa ha marcado un error en esta operación.>> r=int(f, 0, 2) // Realiza la integral definida de la función de 0 a 2. *Error en el programa.>> g='x*exp(-x)'; // Establece una expresión con exponencial de x-1 y la iguala a g.>> r=int(g, 0, Inf); // Realiza la integral definida de g de o a infinito. *Error en el programa.

1

Page 2: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

SOLUCIÓN ANALÍTICA Y GRÁFICO DE UNA EDO DE PRIMER ORDEN CON UNA

CONDICIÓN EN EL INICIO

>> y=dsolve('Dy=(x-y)/x','y(0)=0','x') // Define la ecuación, la condición y la variable de la EDO de primer orden. El programa muestra el siguiente resultado: (y = x/2)

>> ezplot(y,0,2); // Este comando grafica la solución para 0 menor o igual que x menor o igual que 2.

>> grid on // Muestra cuadrículas en el gráfico de la ecuación anterior.

EDO DE SEGUNDO ORDEN CON CONDICIONES EN EL INICIO Y GRÁFICO DE LA SOLUCIÓN

>> y=dsolve('D2y+Dy+2*y-x-3=0','y(0)=0,Dy(0)=1','x') // Define la ecuación, la condición y la variable de la EDO de segundo orden. El programa muestra el siguiente resultado: (y = x/2 - (5*exp(-x/2)*cos((7^(1/2)*x)/2))/4 - (7^(1/2)*exp(-x/2)*sin((7^(1/2)*x)/2))/28 + 5/4)

>> ezplot(y,0,2); // Este comando grafica la solución para 0 menor o igual que x menor o igual que 2.

>> grid on // Muestra cuadrículas en el gráfico de la ecuación anterior.

EDO DE SEGUNDO ORDEN CON CONDICIONES EN LOS BORDES

>> y=dsolve('D2y-Dy+2*y-5*x-3=0','y(0)=0,y(1)=2','x') // Define la ecuación, las condiciones que para este ejemplo son 2 y la variable de la EDO de segundo orden. El programa muestra el siguiente resultado: (y = (5*x)/2 - (11*exp(x/2)*cos((7^(1/2)*x)/2))/4 + (exp(x/2)*exp(-1/2)*sin((7^(1/2)*x)/2)*(11*cos(7^(1/2)/2)*exp(1/2) - 13))/(4*sin(7^(1/2)/2)) + 11/4)

>> ezplot(y,0,2); // Este comando grafica la solución para 0 menor o igual que x menor o igual que 2.

>> grid on // Muestra cuadrículas en el gráfico de la ecuación anterior.

2

Page 3: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

>> f=’2*sin(x)*exp(x)’; // Establece la ecuación.

>> [x,y]=fminbnd(f,-2,2) // El programa muestra el siguiente resultado: x = 1.1447 y = -0.4547

>> ezplot(f,-2,2) // Grafica la función en ese intervalo (-2,2).

3.3 FUNCIONES ESPECIALES PARA MEDIR EFICIENCIA DE ALGORITMOS

>> tic; y >> toc; // Al escribir la función toc después de haber escrito tic, nos muestra como cantidad numérica el tiempo que transcurre.>> tic; a=inv(rand(500, 500)); toc // Al escribir el commando, el programa muestra: (Elapsed time is 0.181700 seconds).

- GRAFICACIÓN -

3.4 GRÁFICO DE FUNCIONES DE UNA VARIABLE

>> f='exp(x)-3*x'; // La función es definida como f>> ezplot(f) // Muestra el gráfico de la función f sin un intervalo de valores.>> ezplot(f, [0, 2]) // La gráfica se construye en el intervalo de [0, 2].>> grid on // Se muestran cuadrículas en el gráfico.

>> x=[0: 0.1: 2*pi]; // Asigna a la variable x el rango para ser graficada la función.>> y=sin(x); // Asigna a la variable y la función mostrada.>> plot(x,y); // Realiza el gráfico de la función de forma estándar como se ha definido.>> plot(x,y,'o') // Muestra la gráfica formada por círculos pequeños.>> plot(x,y,'r') // Muestra la gráfica de color rojo, (r de red).>> plot(x,y,'og') // Muestra la gráfica formada por círculos verdes (g de green).>> grid on // Se muestran cuadrículas en el gráfico.

3

Page 4: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

>> title('seno de x') // Abre una ventana de gráfica con el título de “seno de x”>> gtext('seno de x') // El texto “Seno de x” puede ser colocado en alguna parte de la gráfica>> xlabel('X') // El eje de las abscisas es llamado X>> ylabel('Y') // El eje de las ordenadas es llamado Y>> c=[0, 2*pi, -2, 2] // El programa devuelve estos datos como números, resuelve para 2*pi.>> axis(c) // Se coloca el nombre “Seno de x” del gráfico en alguna posición de la ventana.>> clf // Se borra el gráfico que dibujamos.>> figure(1) // Es para designar un nuevo gráfico.>> subplot(2,3,1) // Aparece en la ventana una pequeña gráfica con x y y hasta 1 como máximo.>> clf(1) // Se borra este gráfico>> x=[0:0.1:10}; // Se establecen valores para x>> y=exp(x); // La función es igualada a la variable y

>> semilogx(x,y) // Se realiza el gráfico para x en una ventana.>> semilogy(x,y) // Se realiza el gráfico para y en otra ventana.>> loglog(x,y) // Aparece un nuevo gráfico con escalas desde 100 hasta 103.>> grid on // Muestra cuadrículas en el gráfico anterior.>> a=0:0.01:2*pi; // Establece los valores para a.>> r=sin(3*a); // La función trigonométrica es igualada a la variable r.>> polar(a, r); // Se muestra el gráfico en un plano polar de la función definida anteriormente.

3.5 GRÁFICO DE FUNCIONES IMPLÍCITAS Y ECUACIONES CON DOS VARIABLES

>> f='(x-2)^2+(y-3)^2-5'; // Define una función f en términos de las variables X y Y.>> ezplot(f); // Grafica la función f sin un intervalo definido, solo colocándola en el plano.>> ezplot(f,[-1,5,0,6]) // Define el intervalo en el que se muestra la gráfica, que es una elipse.>> grid on; // Muestra cuadrículas en el gráfico anterior.>> hold on; // Con éste comando la ventana de la figura se queda tal y como esta, en posteriores funciones.>> g=’y-2*(x-3)^2-3’; // Define una función g en términos de las variables X y Y.>> ezplot(g,[-1,5,0,6]) // Grafica la función g en el

intervalo mostrado para cada variable.

4

Page 5: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

3.6 GRÁFICO DE FUNCIONES DEFINIDAS EN FORMA PARAMÉTRICA

>> ezplot('sin(t)','cos(t)',[-pi,pi]); // Dibuja la gráfica de la función en forma paramétrica, en el intervalo definido. La gráfica es una circunferencia de radio 1 con centro en el origen.

>> ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi]); // Dibuja la gráfica de la función en forma paramétrica, en el intervalo definido. La gráfica es una rosa de 3 pétalos en el plano polar.

3.7 EDITOR DE GRÁFICOS

En la barra de opciones del gráfico podemos seleccionar la opción tools y ahí elegir edit plot para editar la gráfica, así como también Data Statistics y Basic Fitting para realizar estadísticas básicas y ajustes de curvas, respectivamente.

3.8 GRÁFICO DE FUNCIONES DE DOS VARIABLES

>> a=[1 3 2; 5 3 7; 4 5 2]; // Define en el programa tres vectores.>> mesh(a); // Grafica en 3 dimensiones la función anterior.

5

Page 6: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

3.9 REPRESENTACIÓN GRÁFICA DE FUNCIONES DEFINIDAS POR UNA FÓRMULA

Aquí vamos a utilizar las funciones de MATLAB “easy-touse” que son fáciles de utilizar, para representar rápidamente de forma gráfica funciones definidas por una expresión matemática.

CURVAS PLANAS

Utilizamos el comando más común ezplot y sus formas:

ezplot(f)

Donde f es una cadena de caracteres conteniendo la expresión de una funcióny=f(x) dibuja la función y=f(x) para x en el intervalo [-2π,2π]

Ejemplo:>> ezplot('2*sin(x/2)*cos(3*x)')

ezplot(f,[a,b])

Lo mismo que la anterior para x variando en el intervalo [a,b]

Ejemplo:>> ezplot('2*sin(x/2)*cos(3*x)',

[0,pi/2])

ezplot(f)ezplot(f,[a,b])

Si f es una expresión de (x,y), dibuja la curva implícitamente definida por f(x,y)=0, para x e y variando en el

intervalo [-2π,2π]en el primer caso y para x e y

variando en el intervalo [a,b] enel segundo caso.

Ejemplo:>> ezplot('x^2*y-1')

6

Page 7: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

ezplot(x,y)ezplot(x,y,[a,b])

Donde x e y son dos cadenas de caracteres conteniendo las

expresiones de dos funciones x(t) e y(t) dibuja la curva de

ecuaciones paramétricas x=x(t) y=y(t) para t en el intervalo [0,2π],

en el primer caso ypara t en el intervalo [a,b] en el

segundo.

Ejemplo:>> ezplot('sin(3*t)','cos(t)')

ezpolar(f)ezpolar(f,[a,b])

Donde f es una cadena de caracteres conteniendo la expresión

de una funciónf(θ) dibuja la curva definida en

coordenadas polares por ρ= f(θ) para θ variando en el intervalo

[0,2π], en el primer caso y en el intervalo [a,b] en el segundo.

Ejemplo:>> ezpolar('sin(2*t)*cos(3*t)',[0,pi])

CURVAS EN EL ESPACIO

En MATLAB se utiliza el comando ezplot3 para dibujar curvas en el espacio tridimensional.

ezplot3(x,y,z)ezplot3(x,y,z,[a,b])

Donde x , y , z son tres cadenas de caracteres conteniendo las

expresiones de tres funcionesx(t) , y(t) , z(t) dibuja la curva de

ecuaciones paramétricas x=x(t) y=y(t) z=z(t) para t en el intervalo [0,2π], en el primer caso y para t en el intervalo

[a,b] en el segundo.

Ejemplo:>>

ezplot3('3*cos(t)','t*sin(t^2)','sqrt(t)')

7

Page 8: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

SUPERFICIES

ezmesh(f)ezmesh(f,[a,b])

ezmesh(f,[a,b,c,d])

Donde f es una expresión de dos variables dibuja la superficie z=f(x,y) para

(x,y) variando en el cuadrado [-π,π]x[-π,π] en el primer caso, en el cuadrado

[a,b]x[a,b] en el segundo, y en el rectángulo [a,b]x[c,d] en el tercer caso. El

método de dibujo es una malla con segmentos coloreados, en función de los

valores en los extremos.Ejemplo:

>> ezmesh('x*exp(-x^2 - y^2)')

ezmesh(x,y,z)ezmesh(x,y,z,[a,b])

ezmesh(x,y,z,[a,b,c,d])

Donde x, y, z son expresiones de funciones de dos variables dibuja la

superficie de coordenadas paramétricas x=x(s,t) y=y(s,t) z=z(s,t) para (s,t)

variando en el cuadrado [-2π,2π]x[-2π,2π] en el primer caso, en el cuadrado

[a,b]x[a,b] en el segundo, y en el rectángulo [a,b]x[c,d] en el tercer caso

Ejemplo:>>ezmesh('s*cos(t)','s*sin(t)','t',[-pi,pi])

ezmesh(... , ‘circ’)

En cualquiera de los usos anteriores, dibuja la función correspondiente sobre

un círculo centrado en el origenEjemplo:

>> ezmesh('x*exp(-x^2 - y^2)','circ')

ezcontour(f)ezcontour(f,[a,b])

ezcontour(f,[a,b,c,d])

Dibuja las líneas de nivel (isovalores) de la función z=f(x,y)

Ejemplo:>> ezcontour('x*exp(-x^2 - y^2)')

ezcontourf(. .

8

Page 9: Pracica3matlab

Ehecatl Elí Barón Arriaga Estática Grupo 16 2014-2

ezcontourf(. . . )

Hace lo mismo que ezcontour, pero rellenando con un color sólido las

distintas zonas determinadas por las líneas de nivel

Ejemplo:>> ezcontourf('x*exp(-x^2 - y^2)')

ezmeshc(f)

Con los mismos argumentos que ezmesh, dibuja simultáneamente las

líneas de nivel y la superficieEjemplo:

>> ezmeshc('sin(u/2)*sin(v/2)')

ezsurf(f)

Dibuja una superficie coloreada z=f(x,y). Sus argumentos son como en ezmesh

Ejemplo:>>ezsurf('sin(sqrt(x^2+y^2))/

sqrt(x^2+y^2)')

ezsurfc(f)

Como la anterior pero, además, dibuja las líneas de nivel.

Ejemplo:>>ezsurfc('sin(sqrt(x^2+y^2))/

sqrt(x^2+y^2)')

9