Beruflich Dokumente
Kultur Dokumente
Workspace.- La ventana Workspace proporciona diversa informacin sobre las variables utilizadas
(Espacio de Trabajo)
Command History.- Todas las rdenes quedan grabadas en el command History (Historial de
Comandos)
Sumar
Restar
Multiplicar
Dividir
Elevar a una potencia (alt+094)
Ejemplo:
>> 10+8
ans =
18
Ejemplo:
>> 10^2
ans =
100
Ejemplo:
>> 18*2
ans =
36
Cuando se hace un clculo sin usar variables como en los ejemplos anteriores, automticamente el
clculo se guarda en una variable de respuesta llamada ans (answer respuesta)
QUE ES UNA VARIABLE.- Es un espacio de memoria reservada en el cual se puede almacenar un tipo
de dato.
DECLARAR VARIABLES EN MATLAB
Declarar Variables que contengan un dato
Primero se debe poner el nombre de la variable (el nombre puede ser cualquier tipo de letra o
palabra), seguidamente de un signo = y escribir el dato que queremos almacenar en dicha
variable.
Ejemplo
>> x=10
x=
10
Ejemplo
>> x=10+8
x=
18
Para conocer el valor de una variable solo basta con escribir su nombre.
Ejemplo:
>> x
x=
18
No mostrar el resultado
Si deseamos no mostrar el resultado en el command window simplemente ponemos el signo
punto y coma (;) al final. Al no mostrar el resultado no quiere decir q no hizo el clculo
simplemente significa que si se realiz el clculo pero no mostro el resultado.
Ejemplo
>> y=10*2;
Comprobamos si se realiz el clculo, y efectivamente se realiz.
>> y
y=
20
Ejemplo
>> syms y
>> f=2*cos(y)
f=
2*cos(y)
Ejercicios propuestos
tan ln(8)
5
6
2 7
a) cos
sen
5
6
8
7.
2
2
Resp. 0.2191
b) log x 2 x3
Resp. 3.3576
>> syms x
>> f=(x^2-1)/(x-1);
>> limit(f,x,1)
ans =
2
Ejemplo:
( + )
(
)
>> syms x n
>> f=((3+x)^n -3^n)/x;
>> limit (f,x,0)
ans =
3^(n - 1)*n
Ejemplo
(
>> syms x
>> f=(1-x)/(1-sqrt(x));
>> limit(f,x,1)
ans =
2
Ejemplo
+
)
+
>> syms x
>> f=((x^2 +1)^(1/3))/(x+1);
>> limit(f,x,inf)
ans =
0
+
)
>> syms x
>> f=(7*x^5 -10*x^4 -13*x +6)/(3*x^2 -6*x -8);
>> limit(f,x,2)
ans =
-11/2
+ () ()
(
)
()
++
DERIVADAS
El Comando para calcular derivadas es:
diff(f,x,k)
Ejemplo
() = + + +
>> syms a b c d x
>> f=(a*x^3 + b*x^2+ c*x +d);
>> diff(f,x)
ans =
3*a*x^2 + 2*b*x + c
() = (
)
( )
Ejemplo
Calcular la segunda derivada de la funcin f(x)
()
() = + + +
>> syms a b c d x
>> f=(a*x^3 + b*x^2+ c*x +d);
>> diff(f,x,2)
ans =
2*b + 6*a*x
DERIVADAS PARCIALES
Ejemplo
(, ) = + ( + )
Calcular
>> syms x y
>> f=x^4 + sin(x+y^3);
>> diff(f,x,2)
10
>> syms x y
>> f=x^4 + sin(x+y^3);
>> diff(f,y,2)
ans =
6*y*cos(y^3 + x) - 9*y^4*sin(y^3 + x)
INTEGRALES
INTEGRALES INDEFINIDAS
El Comando para calcular integrales es:
Int(f,x)
Dnde:
ffuncin a integrar
xvariables respecto a la cual se va integrar
Ejemplo
()
>> syms x
>> f=2*x;
>> int(f,x)
ans =
x^2
Ejemplo
( )
>> syms x
>> f=sin(x)^2;
>> int(f,x)
11
INTEGRALES DEFINIDAS
El Comando para calcular integrales es:
Int(f,x,a,b)
Dnde:
fFuncin a integrar
xRespecto la variable a integrar
aLmite inferior
bLmite Superior
Ejemplo
( )
>> syms x
>> f=x^4 - 1;
>> int(f,x,0,3)
ans =
228/5
Ejemplo
12
(())
>> syms x
>> f=tan(x);
>> int(f,x,0,pi/3)
ans =
log(2)
Resp. 2/35
INTEGRALES DOBLES
Ejemplo
( + )
>> syms x y
>> f=2*x + 3*y;
>> int((int(f,x,0,1)),y,1,2)
ans =
11/2
Ejemplo
+
( )
>> syms x y
>> f=x*y;
>> int((int(f,y,2*x,3*x+1)),x,1,2)
ans =
13
INTEGRALES TRIPLES
Ejemplo
( + ( + ) + ( + ))
>> syms x y z
>> f=x+sin(y+z)+cos(x+y);
>> int((int((int(f,x,-1,2)),y,4,9)),z,-3,4)
ans =
7*cos(6) - 7*cos(3) + 7*cos(8) - 7*cos(11) - 3*sin(1) + 3*sin(6) + 3*sin(8) - 3*sin(13) + 105/2
>> round(ans)
ans =
63
Ejemplo
() ( )
( + + + )
>> syms x y z
>> f=(1+x+y+z)^-3;
>> int((int((int(f,z,0,1-x-y)),y,0,1-x)),x,0,1)
ans =
log(2)/2 - 5/16
RESOLUCION DE ECUACIONES
El Cdigo para resolver una ecuacin es:
solve(f,x)
Dnde:
fEcuacin a resolver
xVariable respecto a cul se va resolver
Nota.- f,x siempre deben estar dentro de comillas simples ()
14
Ejemplo
+ + =
>> solve('x^5 - 2*x^4 + 5*x^2 +5 =0','x')
ans =
-1.4580779746728707719771948687808
1.7640467376264465340656905641866 + 1.1919532510152085917205463122611*i
- 0.035007750290011148077093129796164 - 0.8690969868882427567056575871979*i
- 0.035007750290011148077093129796164 + 0.8690969868882427567056575871979*i
1.7640467376264465340656905641866 - 1.1919532510152085917205463122611*i
15
x y
4
2 3
x
y 1
3
Resp. x=66/7; y=-15/7
b)
x 1 y 1
0
3
2
x 2y x y 2
0
3
4
Resp. x=-13/7; y=11/7
RESOLUCION DE ECUACIONES DIFERENCIALES
El Cdigo para resolver una ecuacin diferencial es:
dsolve(f,x)
Dnde:
fEcuacin diferencial a resolver
xVariable respecto a cul se va resolver
Nota.- f,x siempre deben estar dentro de comillas simples ()
Ejemplo
= +
= +
>> dsolve('Dy=1+y^2','x')
ans =
16
= + ()
>> dsolve('Dy=-y+sin(t)','t')
ans =
sin(t)/2 - cos(t)/2 + C19*exp(-t)
Ejercicios propuestos
a) x ' e t
b) x '
2t
resp. C5 - log(t^2 - 1) + exp(t)
t 1
2
1 t
resp. C13/(x^2 + 9)^(1/2)
t 2 x2
RESOLUCION DE ECUACIONES DIFERENCIALES CON ALGUNA CONDICION
El Cdigo para resolver una ecuacin diferencial con alguna condicin es:
dsolve(f,cond,x)
Dnde:
fEcuacin diferencial a resolver
xVariable respecto a cul se va resolver
condCondicion inicial o limite condicional
Nota.- f,x,cond siempre deben estar dentro de comillas simples ()
Ejemplo
= +
=+
() =
>> dsolve('Dy=y+1','y(0)=1','x')
ans =
2*exp(x) 1
Ejemplo
+ =
+
=
() =
>> dsolve('D3y-3*D2y+3*Dy-y=0','D2y(0)=1','x')
ans =
C26*x^2*exp(x) - exp(x)*(2*C26 + 2*C27 - 1) + C27*x*exp(x)
17
() = () , () = ()
>> [x,y]=dsolve('Dx=y','Dy=-x','t')
x=
C28*cos(t) + C29*sin(t)
y=
C29*cos(t) - C28*sin(t)
Ejemplo
= , = +
= +
18
Ejemplo
= , =
Para
y(0)=1
x(0)=5
>> [x,y]=dsolve('Dx=x-2*y','Dy=2*x-3*y','y(0)=1','x(0)=5','t')
x=
(exp(-t)*(16*t + 10))/2
y=
exp(-t)*(8*t + 1)
Ejemplo
= , = +
= +
Para
y(0)=4
x(0)=3
19
ejemplo.>> syms x a b c
>>f = a*x^2 + b*x + c;
>>g = subs(f,x,-1)
>>g =
a-b+c
ejemplo.>> syms x a b c k
>>f = a*x^2 + b*x + c;
>>g = subs(f,[a,b,c],[1,2,k])
>>g =
x^2 + 2*x + k
EVALUACION DE POLINOMIOS
polyval(coef, x);
Dnde:
coef vector que almacene los coeficientes del polinomio, en orden decreciente de grado.
x vector que almacene los valores de x que se quieren evaluar
ejemplo
>> coef=[2 0 1 -2];
>> x=0:20;
>> polyval(coef,x)
%2*x^3+x-2
ans =
Columns 1 through 4
-2
1
16
Columns 5 through 8
55
20
130
253
436
691
Columns 9 through 12
1030
1465
2008
2671
Columns 13 through 16
3466
4405
5500
6763
Columns 17 through 20
8206
9841
11680
13735
Column 21
16018
RAICES DE POLINOMIOS
roots(p);
roots halla las races del polinomio p
Dnde:
p vector que almacene los coeficientes del polinomio, en orden decreciente de grado.
Ejemplo
>> p = [1 -1 -6];
>> roots(p)
%x^2 x- 6=0
ans =
3
-2
Ejercicios propuestos
x 4 3x5 2 x 2 5
INVERSA DE UNA FUNCION
g = finverse(f,var)
Dnde:
g = finverse( f ) devuelve el inverso de la funcin f . Aqu f es una expresin o funcin de una variable
simblica, por ejemplo, x . Entonces g es una expresin o funcin, de forma que f(g(x)) = x . Es
decir, finverse(f) devuelve f 1 , siempre f 1 existe.
g = finverse( f , var ) utiliza la variable simblica var como la variable independiente. Entonces g es una
expresin o funcin, tal que f(g(var)) = var . Use este formulario cuando f contiene ms de una variable
simblica.
>> syms x
>> f (x) = 1 / tan (x);
>> g = finverse (f)
g(x) =
atan(1/x)
21
VECTORES Y MATRICES
+ adicin o suma
sustraccin o resta
* multiplicacin
' traspuesta
^ potenciacin
\ divisin-izquierda
/ divisin-derecha
.* producto elemento a elemento
./ y .\ divisin elemento a elemento
.^ elevar a una potencia elemento a elemento
Vectores.Para poder definir un vector fila, es suficiente escribir sus coordenadas entre corchetes, separados
cada elemento del vector mediante un espacio o coma (,).
Ejemplo
>> v=[4 7 8]
v=
4 7 8
Operaciones con vectores
Ejemplo
>> a=[1 2 3 4]
a=
1 2 3 4
>> b=[7 8 9 4]
b=
7 8 9 4
>> c=a+b
c=
8 10 12 8
>> d=a-b
d=
-6 -6 -6 0
22
Generar Vectores
v1=(x:n:y)
Dnde:
v1nombre del vector
xValor inicial
nintervalo
yValor final
Ejemplo
>> v1=(0:2:10)
v1 =
0 2 4 6
8 10
f=linspace(a,b,x)
Dnde:
fnombre del vector
aValor inicial
bValor final
xNmero de elementos del vector
Ejemplo
>> a=linspace(0,10,6)
a=
0
8 10
23
v(n)
Dnde:
vNombre del Vector
nposicin del vector
Ejemplo
>>a(2)
ans =
2
v(m:n)
Dnde:
vNombre del Vector
mposicin inicial del vector desde donde va mostrar
nposicin final del vector hasta donde va mostrar
Ejemplo
a=
0
8 10 12 14
>> a(1:4)
ans =
0
v(m:x:n)
Dnde:
vNombre del Vector
mposicin inicial del vector desde donde va mostrar
nposicin final del vector hasta donde va mostrar
xintervalo
Ejemplo
>> a=0:2:14
a=
0 2 4 6 8 10 12 14
>> a(1:3:7)
ans =
0 6 12
24
>> u=2:3:18
u=
2 5 8 11 14 17
>> u(1:3)
ans =
2 5 8
>> u(2:2:6)
ans =
5 11 17
>>
>> u(end-2:end)
ans =
11 14 17
>>
u([1,3,4])
ans =
2 8 11
25
Matrices.Las matrices se escriben como los vectores, pero separando las filas mediante un punto y coma (;).
Ejemplo
>> A = [ 1 2 3; 3 4 5; 6 7 8]
A=
1 2 3
3 4 5
6 7 8
FUNCIONES TIPICAS CON MATRICES
Ejemplo
>> a=[1 2 3; 4 5 6; 7 8 9]
a=
1 2 3
4 5 6
26
4
5
3
Traza de la Matriz b
Ejemplo
>> trace(b)
ans =
15
27
Ejemplo
Crear una matriz 32 y otra de 23con los vectores u=[1,0,-3]; v=[4,1,-2];
Calcular el producto u.*v y cociente u./v elemento a elemento de los dos
vectores
>> u=[1,0,-3]; v=[4,1,-2];
>> A=[u',v']
A=
1 4
0 1
-3 -2
>> A=[u;v]
A=
1
4
0 -3
1 -2
>> u.*v
ans =
4
>> u./v
ans =
0.2500
0 1.5000
28
0 -6
0 -4
0 -2
0 0
0 2
>> B=[1:2:11;0:5:25;10:10:60;-6:2:4]
B=
1 3 5 7 9 11
0 5 10 15 20 25
10 20 30 40 50 60
-6 -4 -2 0 2 4
Sea la matriz
Crear un vector fila de ocho elementos, que contenga los elementos de la sugunda
fila y de la tercera columna
>> A=[0,2,3,4,2;-2,3,-1,5,1;0,2,-4,-3,1]
A=
0 2 3 4 2
-2 3 -1 5 1
0 2 -4 -3 1
>> u=[A(:,1);A(:,3);A(:,4)]
u=
0
-2
0
3
-1
-4
4
5
-3
29
3 -1 -4
Realizar las siguientes operaciones con lpiz y papel y comprobar luego con MATLAB
A*BT(el superndice T indica traspuesta)
AT*B
A.*B (producto elemento a elemento)
A./B
>> A=[1,0,-1;4,-2,-3]
A=
1 0 -1
4 -2 -3
>> B=[1,-2,3;1,-1,2]
B=
1 -2 3
1 -1 2
>> A*B'
ans =
-2 -1
-1 0
>> A'*B
ans =
5 -6 11
-2 2 -4
-4 5 -9
>> A.*B
ans =
1 0 -3
4 2 -6
>> A./B
ans =
1.0000
0 -0.3333
4.0000 2.0000 -1.5000
30
6 43 2 11 87
A 12 6 34 0 5
34 18 7 41 9
31
>> x=0:0.3:8;
>> y=(3*x-1)./(x-3);
>> plot(x,y)
plot(x,y,col est)
Dnde:
xCoordenada en el eje x
yCoordenada en el eje y
colSmbolo de color de trazo
estSmbolo de estilo de trazo
Nota.- El color de trazo y el estilo deben ir dentro de comillas simples () y separados mediante un
espacio
32
Ejemplo:
>> x=[1 2 3]
x=
1
>> y=[1 2 3]
y=
1
33
34
35
>> a=[0+0i,1+2i,2+5i,3+4i];
>> b=sin(a);
>> plot(a,b)
>> title('grafica de 2 arreglos de numeros complejos');
>> xlabel('parte real del 1er arreglo');
>> ylabel('parte real del 2do arreglo');
>> grid
>> legend('2 arreglos de complejos');
>> gtext('UMSS');
36
>> x=[1:10];
>> y=[58.5,63.8,64.2,67.3,71.5,88.3,90.1,90.6,89.5,90.4];
37
38
>> x=[1:10];
>> y=[58.5,63.8,64.2,67.3,71.5,88.3,90.1,90.6,89.5,90.4];
>> plot(x,y,'--r',x,y*2,'xc',x,y/8,'m*')
>> title('multiples graficas');
>> xlabel('eje x');
>> ylabel('eje y');
>> grid
>> legend('x vs y','x vs 2y','x vs y/8');
39
() = +
>> x=linspace(0,2*pi,100);
>> y=sin(x);
>> y2=x-((x.^3)/6)+((x.^5)/120);
>> plot(x,y,'m',x,y2,'o')
>> grid
>> title('aproximacion de taylor para la funcion seno');
>> xlabel('eje x');
>> ylabel('eje y');
>> legend('sin(x)','aproximacion de taylor');
40
ezplot(f,[a b])
Donde:
f=funcin a graficar
a=Punto de Inicio del intervalo
b= Punto final del intervalo
Ejemplo
Realice la grfica de la f(x)=x3-1 en el intervalo de
>> syms x
>> ezplot(x^3 -1,[-2 2])
41
Donde:
f=funcin a graficar
a=Punto de Inicio del intervalo
b= Punto final del intervalo
Ejemplo
Realice la grfica de la funcin y=2x-3 en el intervalo de
>> syms x
>> fplot('2*x-3',[-2 2])
Donde:
f=funcin a graficar
a=Punto de Inicio del intervalo
b= Punto final del intervalo
colSmbolo de color de trazo
estSmbolo de estilo de trazo
Ejemplo
Realice la grfica de la funcin y=x2-3 en el intervalo de
>> syms x
>> fplot('x^2 -3',[-4 4],'r --')
SUBFIGURAS
42
43
SOLUCION
>> x=-1.5:0.1:1.5;
>> y=tan(x);
>> y1=sinh(x);
>> subplot(2,1,1)
>> plot(x,y);
>> title('grafica de tan(x)');
>> xlabel('eje x');
>> ylabel('eje y');
>> grid
>> legend('tan(x)');
>> subplot(2,1,2);
>> plot(x,y1);
>> title('sinh(x)');
>> xlabel('eje x');
>> ylabel('eje y');
>> grid
>> legend('sinh(x)');
GRAFICAS LOGARITMICAS
44
Ejemplo
45
SOLUCION
>> x=0:0.01:3;
>> y=abs((exp(-0.5*x)).*sin(5*x));
>> subplot(2,2,1);
>> loglog(x,y);
>> title('grafica con loglog');
>> subplot(2,2,2);
>> semilogx(x,y);
>> grid
>> grid off
>> grid on
>> grid off
>> title('grafica con semilogx');
>> subplot(2,2,3);
>> semilogy(x,y);
>> title('grafica con semilogy');
>> subplot(2,2,4);
>> plot(x,y);
>> title('grafica normal');
46
>> w=0:0.1:2*pi;
>> r=1+cos(w);
>> polar(w,r)
EJERCICIO PROPUESTO
Calcule la grafica de la funcin r=1-2sen(3w) en el intervalo de con un intervalo de
0.1 y ponga titulo y etiquetas
>> w=0:0.1:2*pi;
>> r=1-2*sin(3.*w);
>> polar(w,r);
47
48
49
GRAFICAS EN 3D
Un grafico 3-D de lnea esta constituido por una lnea que se obtiene uniendo una serie de puntos
en un espacio tridimensional. La forma mas sencilla y bsica de crear un grafico 3-D es mediante
la funcin plot3
plot3 (x,y,z,col est)
Dnde:
x,y,z=representan los vectores con las coordenadas de los puntos.
colSmbolo de color de trazo
estSmbolo de estilo de trazo
Ejemplo
Calcule la grfica de los puntos, dentro del intervalo
= (2)
= (2)
= 0.5
>> t=0:0.1:6*pi;
>> x=sqrt(t).*sin(2*t);
>> y=sqrt(t).*cos(2*t);
>> z=0.5*t;
>> plot3(x,y,z,'g --')
>> grid
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
50
Ejemplo
Calcule la grfica de los puntos, dentro del intervalo
= (2 + 4 cos())cos()
= (2 + 4 cos())()
= 2
>> t=0:0.01:20;
>> x=(2+4*cos(t)).*sin(t);
>> y=(2+4*cos(t)).*cos(t);
>> z=t.^2;
>> plot3(x,y,z)
>> grid
>> plot3(x,y,z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
51
Superficies de Malla
La funcin mesh dibuja superficies 3D a partir de matrices.
Con mesh(X,Y,Z) se muestra la matriz Z sobre las coordenadas de la rejilla especificada
por las matrices X e Y. Para crear estas matrices se utiliza el comando meshgrid:
[X, Y] = meshgrid(x,y)
donde x e y son los vectores base a partir de los cuales se construye la rejilla. Las Filas de
la matriz de salida X son copias del vector x y las columnas de la matriz de salida Y son
copias del vector y.
Ejemplo
52
Es similar a la grfica de malla, pero aqu se rellenan los espacios entre lneas. La orden
que usamos
es surf con los mismos argumentos que para mesh.
Ejemplo
53
Ejemplo
>> [x,y] = meshgrid(-5:0.1:5);
>>z = sin(x)+cos(y);
>>mesh(x,y,z)
>> colormap(hot)
Dibujar al funcin
z=xy2x2+y21x3 1y4z=xy2x2+y21x3 1y4
>> x=-1:0.1:3;
y=1:0.1:4;
[X,Y]=meshgrid(x,y);
Z=(X.*Y.^2)./(X.^2+Y.^2);
mesh(X,Y,Z);
xlabel('X')
ylabel('Y')
zlabel('Z')
Ejercicio
Dibujar la superficie = en el dominio [-2 20]
Dibujar la funcin =
54
PROGRAMACION EN MATLAB
Entrar al menu New, y presionar en Script
Ejemplo
%hola esto es un comentario
LEER DATOS
a=input('Mensaje');
Ejemplo
a=input('ingrese el primer valor: ');
MOSTRAR DATOS
disp('Mensaje a mostrar');
Ejemplo
disp('la suma es: ')
ESTRUCTURA CONDICIONAL IF
La estructura condicinal if, verifica si la condicin es verdadera ejecuta ciertas tareas y si la
condicin es falsa no ejecuta nada.
Sintaxis.-
55
Ejemplo
x=0;
if x==0
disp('hola');
end
hola
Ejemplo
if x>0
disp('hola');
else
disp('chau');
end
chau
56
Ejemplo
x=-2;
if x>0
disp('hola')
elseif x==0
disp('chau')
else
disp('como estas')
end
como estas
ESTRUCTURA SELECTIVA SWITCH
La estructura selectiva SWITCH, verifica si la switch_expresion es igual a case_expr1 realiza la
tarea1, si switch_expresion es igual a case_expr2 realiza la tarea2, y asi sucesivamente hasta la
verificar con la case_exprn. Si al final switch_expresion no es igual a ninguno de los
{case_expr2, case_expr3, case_expr4,...case_exprn} entonces realiza la
tarea_defecto que est debajo de otherwise
Sintaxis.switch switch_expresion
case case_expr1,
tarea1
case {case_expr2, case_expr3, case_expr4,...case_exprn}
tarean
...
Otherwise,
tarea_defecto
end
Ejemplo
x=3;
switch x
case 1,
disp('uno')
57
Ejemplo
for i=1:2:11
disp(i);
end
1
3
5
7
9
11
Ejemplo2
for i=1:4
for j=1:4
a(i,j)=i*j;
end
end
>> a
a=
58
2 3
4 6
6 9
8 12
4
8
12
16
while condicion
tarea
end
Ejemplo
s=1;
i=1;
while s<100
s=s*i;
i=i+1;
end
disp(s)
disp(i)
120
6
59
Archivos-M
Cuando el nmero de rdenes a ejecutar aumenta o cuando se desea cambiar el valor de una o ms
variables y reevaluar una serie de instrucciones, MATLAB permite escribir y guardar dichas
instrucciones en un simple archivo de texto, de tal manera que si se lo invoca desde la ventana de
rdenes es ejecutado lnea por lnea como si hubiesen sido escritas en las lneas de la ventana de
rdenes.
La potencia de MATLAB reside en su capacidad para ejecutar una larga serie de comandos
almacenados en un archivo o fichero de texto. Estos ficheros reciben el nombre de Archivos-M ya
que sus nombres tienen la forma nombre_archivo.m.
Existen dos tipos de Archivos-M: los scripts y las funciones (functions).
Scripts:
Funciones:
Para elaborar un archivo-M de Script se hace clic en New del men File y se selecciona
Script. Aparecer una nueva ventana para la edicin de texto donde se teclea la lista de
instrucciones de MATLAB. Para guardarlo como archivo-M en el disco, se hace clic en Save As
del men File del editor y se agrega al nombre del archivo la extensin m.
Escribiendo simplemente el nombre del archivo (sin la extensin m) en la lnea de orden
de MATLAB, se ejecutarn las rdenes contenidas en el archivo.
Nota:
Para hacer algn comentario en el editor de cdigo el smbolo % delante de la lnea de
cdigo y matlab no leer esa lnea de cdigo.
Para poder mostrar algn mensaje en matlab se escribe disp se abre un parntesis y entre
comillas simples el texto que uno desea mostrar.
disp(texto a mostrar)
Ejemplo.- Crear un Archivo-M para calcular el volumen de una esfera con radio 2.4
60
r=2.4;
v=(4/3)*pi*r^3;
disp('El volumen de la esfera es: ')
v
61
Ahora para poder modificar nuestro archivo, primero debemos ir al men y clic en la opcin de
open, buscamos nuestro archivo lo abrimos y lo podemos editar.
62
Procedemos a editar
63
b=12.34;
h=7.82;
area=(1/2)*b*h;
disp('el area del triangulo es: ');
area
64
65
INCISO C)
PROCEDEMOS A MODIFICAR
66
67
function[V1,V2,...,Vn]=nombre_archivo(a1,a2,...an)
Donde:
V1, V2, ...,Vn = son las variables de salida
a1, a2,...,ak = son los argumentos o variables de entrada, que sern asignadas en el mismo orden
al convocar la funcin.
68
69
70
Otra forma
Nota:
El comando input nos permite poder mostrar un mensaje y leer un dato y almacenarlo en una
variable.
Se escribe input se abre un parntesis y entre comillas simples se escribe el texto que uno desea
mostrar
Ejem:
X=Input(mensaje)
Donde:
X= Es una variable cualquiera donde se va almacenar el valor ledo
mensaje= Es el mensaje que se muestra
function s=sumar3(a,b)
%esta es otra forma de sumar 2 numeros
%pero mostrando mensajes
a=input('ingrese el primer valor: ');
b=input('ingrese el segundo valor: ');
s=a+b;
disp('la suma es: ')
end
71
>> Tsen(150,9)
ans =
0.5000
72
function y=Tcos(x,n)
%calcula la el coseno aproximado
xt=x*pi/180;
y=0;
for k=0:1:n-1
y=y+(-1)^k *xt^(2*k)/factorial(2*k)
end
>> Tcos(150,9)
ans =
-0.8660
Ejemplo:
Un silo con estructura cilndrica de radio r posee una parte superior esfrica de radio R. La altura
de la porcin cilndrica es H. Escribir un fichero script que determine la altura H a partir de los
valores r y R, y del volumen V. Adems, el programa debe calcular el rea de la superficie del silo.
Los datos conocidos son r=30 pies, R=45 pies y V=120000 pies3. Asignar estos valores
directamente en la ventana de comandos.
73
Solucin.
El volumen total del silo se obtiene sumando el volumen de la parte cilndrica y el de la parte
correspondiente al techo esfrico. El volumen de un cilindro se calcula a partir de la expresin:
= 2
Y el volumen de techo esfrico se obtiene a partir de:
1
= 2 (3 )
3
Donde:
= = (1 ), se obtiene a partir de la expresin
=
El rea de la superficie del silo se calcula sumando el rea de la parte esfrica y el de la parte
cilndrica:
= + = 2 + 2
A continuacin se muestra el programa, en forma de fichero script llamado silo que resuelve el
problema propuesto.
fprintf(texto %f texto adicional,nombre_variable)
donde:
74
a) Calcular F(g)
b) Representar grficamente F(x) entre -1.5 x 6.7
c) Races del polinomio
75
76
77
Solucin
El rea se divide en seis secciones, como se muestra en la siguiente figura. El rea total se calcula
sumando las tres secciones de la parte izquierda y restando las tres secciones de la derecha. La
localizacin y coordenadas del centroide de cada seccin vienen marcadas en la figura, asi como el
rea de cada seccin.
78
>> centroide
Introduzca una matriz en la que cada fila tenga tres
elementos.
En cada fila debe introducir las coordenadas as x e y del
centroide, asi como el area de la seccion.
[100 100 200*200;60-120/pi 200+120/pi pi*60^2/4;60+140/3 220
140*60/2;100 100/pi -pi*50^2/2;150 95 -40*150;105 145 -50*50]
Las coordenadas del centroide son: (85.387547,131.211809)>>
79
Ejemplo
Suma, multiplicacin y divisin de polinomios
Suma:
Dos polinomios pueden ser sumados o restados sumando o restando sus vectores de coeficientes.
Si los polinomios no tienen el mismo grado (los vectores de coeficiente tienen distinto tamao), el
vector ms corto debe ser modificado, aadiendo ceros por la izquierda, para que tenga la misma
longitud que el vector ms largo. Por ejemplo, los polinomios:
() = + +
() =
Se pueden sumar de la siguiente forma:
>> p1=[3 15 0 -10 -3 15 -40];
>> p2=[3 0 -2 -6];
>> p=p1+[0 0 0 p2]
p=
3 15
0 -7 -3 13 -46
Multiplicacin:
Para multiplicar dos polinomios se utiliza la funcin conv de MATLAB, cuya sintaxis es la siguiente:
c=conv(a,b)
Donde:
a y b = son vectores que contienen los coeficientes de los polinomios a multiplicar
c= es un vector que contiene los coeficientes del polinomio producto, resultado de la
multiplicacin
En el caso de la multiplicacin, los polinomios no tienen por qu ser del mismo grado
La multiplicacin de tres o mas polinomios se lleva a cabo mediante el uso repetitivo de la funcin
conv
Por ejemplo, el producto de los polinomios f1(x) y f2(x) anteriores da como resultado
>> p1=[3 15 0 -10 -3 15 -40];
>> p2=[3 0 -2 -6];
>> pm=conv(p1,p2)
80
Divisin:
Para dividir un polinomio entre otro se utiliza la funcin deconv, cuya sintaxis es la siguiente:
[q,r]=deconv(u,v)
Donde:
u = es un vector que contiene los coeficientes de polinomio numerador
v= es un vector con los coeficientes del polinomio denominador
q= es un vector que contiene los coeficientes del polinomio cociente de la divisin
r= es un vector que contiene los coeficientes del polinomio resto de la divisin
3 -2
0
Veamos a continuacin otro ejemplo de divisin con resto distinto de cero. Se trata de
dividir el polinomio + + 0 entre
>> w=[2 -13 0 75 2 0 -60];
>> z=[1 0 -5];
>> [g,h]=deconv(w,z)
g=
2 -13 10 10 52
h=
0
0 50 200
81
50+200
2 5
Ejemplo
Calculo del grosor de una caja
Las dimensiones exteriores de una caja rectangular (el fondo y las cuatro caras, excluyendo la
parte superior) fabricada de aluminio son 24 x 12 x 4 pulgadas. El grosor del fondo y de las caras
de la caja es x. Deducir una expresin que relacione el peso de la caja con su grosor x. Calcular el
grosor x para una caja que pesa 15 libras. El peso especfico del aluminio es 0.101
libras/pulgadas3.
Solucion
El volumen del aluminio VAl se puede calcular a partir del peso W de la caja, de la forma:
Donde:
VAl=es el volumen del aluminio
= es el peso especifico
Por tanto, el volumen del aluminio a partir de las dimensiones de la caja vendra dada por:
= 24 12 4 (24 2)(12 2)(4 )
Donde el volumen interior de la caja se resta al volumen exterior. Esta ecuacion puede escribirse
de la siguiente forma:
(24 2)(12 2)(4 ) + (24 12 4) = 0
Que es un polinomio de tercer grado. Una de las raices del polinomio sera el valor del grosor x de
la caja. El siguiente programa script calcula este valor:
82
como puede comprobarse, a partir de la segunda linea hasta el final, para poder sumar Vin y VAl24*12*4, esta ultima expresion se debe representar como polinomio de grado identico al de Vin,
ya que Vin es un polinomio de tercer grado. Cuando se guarda (grosor) y se ejectura el script, se
visualizara el valor calculado x:
>> grosor
polyeq =
x=
10.8656 + 4.4831i
10.8656 - 4.4831i
0.2687
%El polinomio tiene una raiz real, x=0.2687 pulgadas, que se corresponde con el valor del grosor
de las paredes de aluminio de la caja.
83
Ejemplo:
Calculo de la altura de una boya
Una esfera de aluminio de pared delgada se utiliza como boya de sealizacin. La esfera tiene un
radio de 60 cm, y el grosor de la pared de aluminio, cuya densidad es = 2690 /3, es de
12 mm. La boya esta situada en el oceano, donde la densidad del agua es de 1030 kg/m3. Calcular
la altura h entre la parte superior de la boya y la superficie del agua.
Solucion
Segn el principio de Arquimides, la fuerza ascencional de empuje que se aplica a un cuerpo
sumergido en un fluido es igual al peso del fluido desplazado por el cuerpo en cuestion. Entonces,
la esfera de aluminio estara sumergida a una profundidad tal que el peso de la esfera sera igual al
peso del fluido desplazado por la parte de la esfera que esta sumergida en el agua.
4
= = ( ) ( 3 3 )
3
Donde:
VAl=es el volumen del aluminio
ro y ri= representan el radio exterior e interior de la esfera, respectivamente.
g= es la aceleracion de la gravedad
84
El peso del agua desplazado por la parte de la esfera que esta sumergida vendra dado por:
1
= = ( ) (2 )( + )
3
Igualando ambos pesos resulta la siguiente ecuacion
3 3 2 + 4 3 4
( 3 3 ) = 0
Esta ecuacion es un polinomio de tercer grado con h como incognita. La raiz de dicho polinomio
sera la solucion al problema.
Con MATLAB se puede obtener la solucion escribiendo el polinomio y utilizando la funcion roots
para calcular el valor de h. A continuacion se muestra el codigo correspondiente a esta solucion:
rexterior=0.60; rinterior=0.588;
%asigna valores a los radios
rhoalum=2690;rhoagua=1030;
%asigna las densidades a las variables
a0=(4*rexterior^3)-(4*rhoalum*(rexterior^3 -rinterior^3)/rhoagua);
%calcula el coeficiente a0
p=[1 -3*rexterior 0 a0];
%asigna los coeficientes del polinomio
h=roots(p)
%calcula las raices del polinomio
Una vez que se ejecuta el fichero en la ventana de comandos (guardado como boya). MATLAB
muestra tres posibles valores para la solucion h, ya que el polinomio calculado es de tercer grado.
Sin embargo, la unica solucion posible para este problema es h=0.9029 m
>> boya
h=
1.4542
0.9029
-0.5570
85