Giliat en español
Página 44 Ej.3
Página 45 Ej.5
Codigo:
%Problema 5
%Cree un vector fila con 15 elementos igualmente distanciados, en el cual
%el primer elemento sea 7 y el ultimo 40.
A=linspace(7,40,15)
Página 45 Ej.7
Aprimero=[Link]
Aprimero=Aprimero'
Asegundo=[Link] [Link]
Asegundo=Asegundo'
Página 45 Ej.9
A=[6 43 2 11 87;12 6 34 0 5;34 18 7 41 9];
va=A(2,:)
vb=[A(:,4)']
vc=[A(1,:),A(2,:)]
vd=[A(:,2)',A(:,5)']
Corriendo el programa obtenemos:
Página 45 Ej.11
%ejercicio 11 inciso a, página 45, libro Giliat en español
A=[1 2 3 4 5 6 7;2 4 6 8 10 12 14;21 18 15 12 9 6 3;5 10 15 20 25 30 35];
A(2,:)=[];
A(:,2)=[];
A(:,3)=[];
A(:,4)=[];
B=A
%ejercicio 11 inciso b, página 45, libro Giliat en español
A=[1 2 3 4 5 6 7;2 4 6 8 10 12 14;21 18 15 12 9 6 3;5 10 15 20 25 30 35];
a=A(3,:);
b=A(:,5)';
c=A(:,6)';
d=A(:,7)';
v=[a b];
w=[v c];
u=[w d]
Página 72 Ej.3
La profundidad de un pozo, d, en metros se puede determinar a partir del tiempo que tarda en caer una
piedra a su interior (velocidad inicial cero). Este cálculo viene determinado por:d=1/2gt2, donde t es el
tiempo en segundos y g=9.81 m/s2
Calcular d parar t=1,2,3,4,5,6,7,8,9 y 10 s.
En ventana script:
g=9.8;
'Calculo de ''d'' para t=1,2,3,4,5,6,7,8,9,10 respectivamente'
for t=1:10
d=(1/2)*g*t^2
end
Página 72 Ej. 7
function [s]=ej_suma_2(n)
%Ejercicio 7 página 72 del Libro Gilat en español. Calcular la suma para
n=100, n=1000, n=10000
s=0;
for k=1:n
s=s+(1)/(k^2);
end
end
Página 103 Ej.5
Escriba un fichero script que calcule el balance de una cuenta de ahorros a
final de año, durante 10 años. La cuenta tiene un capital inicial de $1000 y
un intereses de 6.5% que produce beneficios anualmente. Visualice la
información en una tabla.
Para un capital inicial A, y una tasa de interés r, el balance B, después de
n años, viene dado por la expresión:
𝑟 𝑛
𝐵 = 𝐴(1 + )
100
Solución:
%Este programa calcula el balance de una cuenta de ahorros a final de años
function B=int_comp(A,r,n)
A=1000;
r=0.065;
n=10;
B=A*(1+r/100)^n;
end
Página 132 Ej.1
Represente dos gráficos, de forma separada, de la función f(x)=0.6x^5-5x^3+9x+2;uno
de los gráficos debe estar en el dominio -4≤x≤4, y el otro en el dominio -2.7≤x≤2.7.
%fichero script representar grafico
%funcion:0.6*x^5-5*x^3+9*x+2
x=[-4:0.1:4];
y=0.6*x.^5-5-5*x.^3+9*x+2;
plot(x,y)
%fichero script representar dos graficos de forma separada con la misma
%funcion:0.6*x^5-5*x^3+9*x+2
x=[-2.7:0.1:2.7];
y=0.6*x.^5-5-5*x.^3+9*x+2;
plot(x,y)
Página 132 Ej.2
(𝑥 2 )−𝑥+1
Represente la función 𝑦 = ((𝑥 2 )+𝑥+1) para −10 ≤ 𝑥 ≤ 10
syms x;
y=(((x^2)-x+1)/((x^2)+x+1));
ezplot(y,[-10,10])
S
Página 132 Ej.3
Página 132 Ej.5
𝑥 2 −5𝑥+10
Represente la función 𝑓(𝑥) = 𝑥 2 −2𝑥−3
para −10 ≤ 𝑥 ≤ 10. Observe que esta función tiene dos asíntotas
verticales. Represente la función dividiendo el dominio de x en tres partes; una que vaya desde -10 hasta
aproximadamente la asíntota izquierda, otra entre las dos asíntotas y una tercera desde
aproximadamente la asíntota derecha hasta 10. Establezca el rango del eje y entre -20 y 20.
Respuesta:
fplot('(x.^2-5*x+10)./(x.^2-2*x-3)',[-10 10]);
grid on
Página 133 Ej. 7
Solución:
%Este script genera una grafica que representa a la P en funcion de RL,
%en un intervalo de 1<=RL>=10
vs=12;%fuente de voltaje
rs=2.5;%resistencia interna
RL=[1:10];%resistencia de carga
P=(RL.*(vs^2))./((RL+rs).^2)%Potencia disipada
plot(RL,P)
Página 133 Ej. 9
Programa:
P=5000;
r=(7.5)/100;
m0=1;
m1=4;
t=[0:0.01:15];
V1=P.*(1+r/m0).^(m0.*t);
V2=P.*(1+r/m1).^(m1.*t);
V3=P.*exp(r*t);
plot(t,V1,'-b');
title('Gráfica de Comparación de Valor Capital')
xlabel('Tiempo transcurrido (Años)')
ylabel ('Valor Capital Actual ($)')
hold on
plot(t,V2,'--r');
plot(t,V3,':k');
legend('Anual','Trimestral','Continuo')
hold off
Página 135 Ej. 5
Página 135 Ej.15
Codigo
t = 0:.01:2*pi;
P1=200;
e1=0.2;
P2=15963;
e2=0.00677
polar(t,e1*P1./(1-e1*cos(t)),'.b');
hold on;
polar(t,e2*P2./(1-e2*cos(t)),'--r');
hold off
Grafica
Página 135 Ej.17
x=[0:0.1:20];
%x=(2+4.*cos(t)).*sin(t);
I=9.19*10^-6;
L=6;
E=70*10^9;
w=80*10^3;
y=((-w/(24*E*I))*((x.^4)-(4*L*x.^3)+(6*L.^2*x.^2)));
plot(x,y,'k','linewidth',1)
grid on
xlabel('x'); ylabel('y')
Página 154 Ej.5
function P=saval(P0,r,t);
% Este programa calcula el valor futuro de una cuenta de ahorros
% P=valor de la cuenta a partir de los datos de entrada
% P0=capital inicial
% r=tasa de interés anual (en %)
% t=número de años
P=P0*(1+r/100)^t;
fprintf('El valor de un capital inicial de %5.0f euros, a un interés anual
del %2.2f porciento, después de %5.0f años es %f',P0,r,t,P)
end
Corriendo el programa obtenemos:
Página 154 Ej.7
function [alp1,bet1,gam1]= pag154_7(a,b,c)
%obtener los ángulos de un triángulo a partir de sus lados
alp= acos(((a^2)-(b^2)-(c^2))/(-2*(b*c)));
bet= acos(((b^2)-(a^2)-(c^2))/(-2*(a*c)));
gam= acos(((c^2)-(a^2)-(b^2))/(-2*(a*b)));
alp1=(alp*180)/pi;
bet1=(bet*180)/pi;
gam1=(gam*180)/pi;
disp(alp);
disp(bet);
disp(gam);
end
Página 154 Ej.9
Escriba una función que calcule la distancia entre un punto y una recta en el plano x-y. Utilice
d=DistPaL(x0,y0,A,B,C).
Utilice posteriomente esta función para calcular la distancia entre los siguientes casos:
a)Punto:(2,-4), recta:-2x+3.5y-6=0
En script:
% a) Punto:(2,-4), recta:-2x+3.5y-6=0
%(x0,y0)= coordenadas del punto.
%(A,B,C)= cte de la ecuación de la recta.
x0=2; y0=-4; A=-2; B=3.5; C=-6;
p=[x0,y0];
L=A*x0+B*y0+C;
d=dist(p,L)
b) Punto:(11,2): recta:y=-2x+6
% a) Punto:(11,2), recta:y=-2x+6
%(x0,y0)= coordenadas del punto.
%(A,B,C)= cte de la ecuación de la recta.
x0=11; y0=2; A=-2; B=-1; C=6;
p=[x0,y0];
L=A*x0+B*y0+C;
d=dist(p,L)
Página 154 Ej.11
function [hmax,dmax]=trayectoria(v0,theta)
%Ejercicio 11 de la página 154 del librio Gilat. Calcular la altura y
distancia de un proyectil
g=9.81;
v0x=v0*cos(theta*pi/80);
v0y=v0*sin(theta*pi/180);
thmax=v0y/g;
hmax=v0y^2/(2*g);
ttot=2*thmax;
dmax=v0x*ttot;
tplot=linspace(0,ttot,200);
x=v0x*tplot;
y=v0y*tplot-0.5*g*tplot.^2;
plot(x,y)
xlabel('Distancia (m)')
ylabel('Altura (m)')
title('Trayectoria de un proyectil')
Página 177 Ej.7.5
a)
n=input('da el valor de k');
%este progrma calcula la sumatoria de los primeros numeros n dados
s=0;
for k=1:n
s=s+((-1)^k*k)/(2^k);
end
disp(s)
b)
function y = Tsen(x,n)
%este rograma calula por la sserie de Taylor el valor del seno de x
xr=x*pi/180;
y=0;
for k=0:n-1
y=y+(-1)^k*xr^(2*k+1)/factorial(2*k+1);
end
end
Página 196 Ej.7
Represente la siguiente función de dos formas distintas:
Solución:
%Este fichero script representa una función utilizando bucles y sentencias
condicionales
n=input('introduzca x en un intervalo de -6 a 6: ');
y=0;
for k=1:n
if -6<=k<=-2
y=4*exp(x+2)
elseif -2<=k<=2.5
y=k^2
elseif 2.5<=k<=6
y=(k+6.5)^(1/3)
end
end
Página 196 Ej.8
Escriba un programa script que calcule las raíces reales de una función cuadrática ax^2
+bx +c=[Link] al fichero raícescuad. Cuando el fichero se ejecute, este debe pedir al
usuario que introduzca los valores de las constantes a, b y c. Para calcular las raíces
de la ecuación, el programa calculara el discriminante D:
D=b^2-4ac
Si D>0,el programa visualizara un mensaje de tipo: ‘La ecuación tiene dos raíces’ . y los
valores de las raíces se visualizarán en la línea siguiente
S i D=0, el programa visualizara un mensaje del tipo: ‘La ecuación tiene una raíz ‘. Y el
valor de la raíz visualizara en la línea siguiente .
Si D<0, el programa visualizara un mensaje tipo :’La ecuación no tiene raíces reales’.
Ejecute el fichero script en la ventana de comando tres veces para calcular las
soluciones de las siguientes ecuaciones:
a) 2x^2+8x-3=0
%Este programa calcula las raices reales en la
%funcion cuadratica ax^2 +bx +c=0
a=input('ingrese el termino a: ');
b=input('íngrese el termino b: ');
c=input('ingrese el termino c: ');
d=b^2-4*a*c;
if d<0
disp ('la ecuacion no tiene raices reales');
elseif d==0
disp ('la ecuacion tiene un raiz');
x=b/(2*a);
disp(x)
else d>0
disp ('la ecuacion tiene dos raices');
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
End
Command window
raices
ingrese el termino a: 2
íngrese el termino b: 8
ingrese el termino c: -3
ans =
logical
la ecuacion tiene dos raices
b) 15x^2+10x+5=0
1%Este programa calcula las raices reales en la
2%funcion cuadratica ax^2 +bx +c=0
3a=input('ingrese el termino a: ');
4b=input('íngrese el termino b: ');
5c=input('ingrese el termino c: ');
6d=b^2-4*a*c;
7if d<0
8 disp ('la ecuacion no tiene raices reales');
9elseif d==0
10disp ('la ecuacion tiene un raiz');
11 x=b/(2*a);
12 disp(x)
13else d>0
14 disp ('la ecuacion tiene dos raices');
15 x1=(-b+sqrt(d))/(2*a);
16 x2=(-b-sqrt(d))/(2*a);
17End
>>Command Window
raices
ingrese el termino a: 15
íngrese el termino b: 10
ingrese el termino c: 5
la ecuacion no tiene raices reales
c) 18x^2+12x+2=0
1%Este programa calcula las raices reales en la
2%funcion cuadratica ax^2 +bx +c=0
3a=input('ingrese el termino a: ');
4b=input('íngrese el termino b: ');
5c=input('ingrese el termino c: ');
6d=b^2-4*a*c;
7if d<0
9 disp ('la ecuacion no tiene raices reales');
9elseif d==0
10disp ('la ecuacion tiene un raiz');
13 x=b/(2*a);
14 disp(x)
13else d>0
d) disp ('la ecuacion tiene dos raices');
e) x1=(-b+sqrt(d))/(2*a);
f) x2=(-b-sqrt(d))/(2*a);
17End
Command Window
raices
ingrese el termino a: 18
íngrese el termino b: 12
ingrese el termino c: 2
la ecuacion tiene un raiz
0.3333
Página 196 Ej.9
Utilice bucles para crear una matriz A de dimensión 4x7, en la cual el valor de
cada elemento sea la suma de sus índices (el número de la fila y el número de la
columna de cada elemento). Por ejemplo, el valor del elemento A(2,5) será 7.
m=7;
n=4;
[m,n] = size(A);
for i=1:m
for j=1:n
s=i+j;
end
end
A(i,j)=s
Página 196 Ej.11
Página 197 Ej.13
Escriba un programa script que encuentre el menor numero entero impar que sea divisible por 3, y cuyo
cubo sea mayor que 4000. Utilice un bucle que comience en 1 y se detenga cuando encuentre el numero
que cumpla las condiciones anteriores. Finalmente, el programa visualizara el mensaje: ‘El número pedido
es:’, y visualizara seguidamente el numero calculado.
Respuesta:
%Este programa encuentra el menor número entero impar que sea divisible por
3, y cuyo cubo sea mayor que 4000
k=1;
while k
if rem(k,2)==0
k=k+1;
else
if rem(k,3)==0
if k^3>4000
disp('El número pedido es: ');
disp(k);
break
else
k=k+1;
end
else
k=k+1;
end
end
end
Página 198 Ej.17
Solución:
%Este programa borra de un vector cual sea los numeros que sean divisibles
%entre 3,4 o 5. Y da como resultado otro vector sin dichos numeros.
V=[1:50];%Solucion del ejercicio 5 de giliat
s=mod(V,3)~=0;%primera condicion
V1=V(s);
V2=mod(V1,4)~=0;%segunda condicion
V3=V1(V2);
V4=mod(V3,5)~=0;%tercer condicion
Vf=V3(V4)
Página 198 Ej.18
Programa:
%La ecuación debe estar evaluada a 0
a=input('Introduzca el valor de la constante a: ');
b=input('Introduzca el valor de la constante b: ');
c=input('Introduzca el valor de la constante c: ');
D=(b^2)-(4*a*c);
if D>0
disp('La ecuación tiene dos raíces');
y1=(-b+sqrt(D))/(2*a);
disp(y1);
y2=(-b-sqrt(D))/(2*a);
disp(y2);
end
if D==0
disp('La ecuación tiene una raíz');
y3=(-b)/(2*a);
disp(y3);
end
if D<0
disp('La ecuación no tiene raíces reales');
y4=(-b+sqrt(D))/(2*a);
disp(y4);
y5=(-b-sqrt(D))/(2*a);
disp(y5);
end
Página 198 Ej.19
Página 198 Ej.20
Programa Aceleracion
function a=Aceleracion(t)
if (t >= 0) && (t <= 10)
syms t
a = subs(diff(1.4*t),t);
elseif (t >= 10) && (t <= 25)
syms t
a = subs(diff(14+5*sin(pi/10*(t-10))),t);
elseif (t >= 25) && (t <= 35)
syms t
a = diff(9);
elseif (t >= 35) && (t <= 40)
syms t
a = subs (diff(9-9/5*(t-35)),t);
end
end
Programa velocidad
function v=Velocidad(t)
if (t >= 0) && (t <= 10)
v = 1.4*t;
elseif (t >= 10) && (t <= 25)
v = 14+5*sin(pi/10*(t-10));
elseif (t >= 25) && (t <= 35)
v = 9;
elseif (t >= 35) && (t <= 40)
v = 9-9/5*(t-35);
end
end
Grafica Aceleracion, velocidad vs tiempo
clc,clear
t=0:0.01:40;
for i=1:numel(t)
if (t(i) >= 0) && (t(i) <= 10)
v(i) = 1.4*t(i);
a(i)= 7/5;
elseif (t(i) >= 10) && (t(i) <= 25)
v(i) = 14+5*sin(pi/10*(t(i)-10));
a(i) =(pi*cos((pi*(t(i) - 10))/10))/2 ;
elseif (t(i) >= 25) && (t(i) <= 35)
v(i) = 9;
a(i)=0;
elseif (t(i) >= 35) && (t(i) <= 40)
v(i) = 9-9/5*(t(i)-35);
a(i)= -9/5;
end
end
plot(t,v)
hold on
plot (t,a)
hold off
Página 247 Ej.1
t=[0:0.1:20];
x=(2+4.*cos(t)).*sin(t);
y=(2+4.*cos(t)).*cos(t);
z=t.^2;
plot3(x,y,z,'k','linewidth',1)
grid on
xlabel('x'); ylabel('y');zlabel('z')
Página 247 Ej.2
% R=radio de la escalera
% h=altura
% n=número de revoluciones de la escalera en cada piso
h=3*2;
R=1.5;
n=3;
t=(0:0.1:6*pi);
x=R*cos(2*pi*n.*(t/h));
y=R*sin(2*pi*n.*(t/h));
z=t/h;
plot3(x,y,z,'LineWidth',2)
hold on
h=3*2;
R=4;
n=2;
t=0:0.1:6*pi;
x=R*cos(2*pi*n*(t/h));
y=R*sin(2*pi*n*(t/h));
z=t/h;
plot3(x,y,z,'LineWidth',2)
hold off
grid on
xlabel('x');ylabel('y');zlabel('z');
Corriendo el programa obtenemos:
2
z
0
4
2 4
0 2
0
-2 -2
y -4 -4
x
Página 248 Ej.4
%ejercicio 4 inciso a,página 248, Giliat en español
x=-4:0.25:4;
y=-4:0.25:4;
[X,Y]=meshgrid(x,y);
Z=-((X.^2)/(4))-((Y.^2)/(4));
surf(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z')
Página 248 Ej.5
Haga un gráfico de superficie 3-D y otro de contorno (ambos en la misma gráfica) de la función
Z=(y+3)2+1.5x2-x2 y en el dominio -3<x<3 y -3<3<3.
%Función Z=(y+3)2+1.5x2-x2
%dominio -3<x<3 y -3<3<3.
x=-3:.25:3;
y=-3:.25:3;
[X,Y]=meshgrid(x,y);
Z=(Y+3).^2+1.5*X.^2-X.^2;
surf(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z')
Página 248 Ej.6
R=8.31;
n=1.00794;
x=0.005:0.25:0.003;
y=273:0.25:473;
[V,T]=meshgrid(x,y);
Z=(n*R*T)/(V);
mesh(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z')
Página 248 Ej.7
%este programa realiza una representación 3D de la función señalada
M=0.032;
R=8.31;
x=0:0.25:1000;
y=70:0.25:320;
[v,T]=meshgrid(x,y);
Z=(4*pi)*((((M)/(2*pi*R*T)).^(3/2))*v.^2*exp((-M*v.^2)/(2*R*T)));
mesh(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z')
Giliat en inglés
Página 342 Ej.5
Make a 3-D Surface plot of the fuction z=0.5|x|+|y|0.5 in the domain -2 ≤x ≤2
and -2 ≤y ≤2.
%make a 3D surface plot of the fuction Z
[x,y]=meshgrid(-2:2,-2:2);
z=0.5*abs(x)+0.5*abs(y);
surf(x,y,z)
Página 342 Ej.6
Make a 3-D mesh plot of the function Z=sin R/R , where . 𝑅 = √𝑥 2 + 𝑦 2 in the domain -
10≤x≤10 and -10≤x≤10
%Matlab, Amos Gilat (En Inglés) Problemas 10.6, 6)
%Este programa grafica una funcion z en 3D de malla(mesh)
%los ddomios x y y
x=-10:0.3:10; y=-10:0.3:10;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2);
Z=sin(R)./R;
mesh(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z')
Página 342 Ej.7
Make a 3-D surface plot of the function 𝑧 = cos(𝑥𝑦)cos(√𝑥 2 + 𝑦 2 ) in the domain −𝜋 ≤
𝑥 ≤ 𝜋 and −𝜋 ≤ 𝑦 ≤ 𝜋.
[x,y]=meshgrid(-pi:0.1:pi,-pi:0.1:pi);
z=cos(x*y)*cos(sqrt(x^2+y^2));
mesh(x,y,z);
xlabel('x'), ylabel('y'), zlabel('z')
Página 342 Ej.9
Página 342 Ej.11
The wind chill temperature, Twc, is the air temperature felt on exposed skin due to win. In U.S.
customary units it is calculated by:
𝑇𝑤𝑐 = 35.74 + 0.6215 ∗ 𝑇 − 35.75 ∗ 𝜐 0.16 + 0.4275 ∗ 𝑇 ∗ 𝜐 0.16
Where T is the temperature in degrees F, and 𝜐 is the wind speed in mi/h. Make a 3-D plot of Twc as a
function of 𝜐 and T for 0 ≤ 𝜐 ≤ 70 mi/h and for 0 ≤ 𝑇 ≤ 50 F.
Respuesta:
%Este programa grafica la función: Tw=35.74+0.6215*T-
35.75u^0.16+0.4275*T*u^0.16
%Donde T es la temperatura en Fahrenheit
%u es la corriente de viento in mi/h.
[u,T]=meshgrid([Link],[Link]);
Tw=35.74+0.6215.*T-35.75.*u.^0.16+0.4275.*u.^0.16;
mesh(u,T,Tw)
Página 342 Ej.12
Solución:
n=0.05; S=0.001;
w=0:0.25:8%eje x
d=0:0.25:4;%eje y
[W,D]=meshgrid(w,d);% Comando para determinar las líneas de cuadrícula x y y.
Q=(D.*W/n).*(((W.*D)./(W+2*D)).^(2/3))*sqrt(S)% eje z
mesh(W,D,Q)%comando que muestra la superficie en 3D
xlabel('w');ylabel('d');zlabel('Q')
Página 345 Ej.19
Giliat en español
Capitulo 1 Ej.14
Capitulo 2 Ej.2
%Ejercicios de Matlab
%Gillat
%Capitulo II
%Ejercicio 2
V=[55,14,log(51),987,5*sin(2.5*pi)]'
Comand Window
Capitulo 2 Ej.4
x=[15:-5:-25];
x=x'
Capitulo 2 Ej.7
Aprimero=linspace(4,49,16);
Asegundo=Aprimero(:,[1:4,13:16])
Corriendo el programa obtenemos:
Capitulo 2 Ej.8
B=[Link];72:-6:24;0:0.125:1]
Capitulo 2 Ej.9
Cree un vector de columna en el que el primer elemento sea 22.5, los elementos
Disminuye con incrementos de –2.5, y el último elemento es 0. (Un vector de columna
se puede crear mediante la transposición de un vector de fila).
Capitulo 2 Ej.10
%Ejercico 10 del capítulo II. Calcular los vectores columna
C=[2 4 6 8 10;
3 6 9 12 15;
7 14 21 28 35];
ua=C(:,3);
ub=C(2,:);
a=C(:,1);
b=C(:,5);
uc=[a; ua; b];
d=(:,2);
ud=[a; d];
Capitulo 2 Ej.11
%Este programa teniendo una matriz A selecciona partes de esta para realizar
%las operaciones indicadas
A=[1 2 3 4 5 6 7;2 4 6 8 10 12 14;21 18 15 12 9 6 3;5 10 15 20 25 30 35];
a)
%Crea una matriz B 3x4 con la primera, tercera y cuarta fila y la primera,
%tercera quinta y séptima columna de A
A(2,:)=[];
A(:,2)=[];
A(:,3)=[];
A(:,4)=[];
B=A
b)
%Crea un vector u de 15 elementos a partir de la tercera fila y de la quinta
%a la séptima columna de A
a=A(3,:);
b=A(:,5)';
c=A(:,6)';
d=A(:,7)';
v=[a b];
w=[v c];
u=[w d]
Capitulo 2 Ej.14
Utilizando las funciones zeros y ones, cree un matriz de 3x5 en la cual la
primera, segunda y quinta columnas sean ceros, y la tercera y cuarta columnas
sean unos.
%En este script se crea una matriz de 3x5, donde las columnas 1, 2 y 5 son = 0
y las columnas 13 y 4 son = 1
A=zeros(3,5);
A(:,3:4)=ones(3,2)
Command Window
A =
0 0 1 1 0
0 0 1 1 0
0 0 1 1 0
Capitulo 3 Ej.1
Sean los siguientes vectores:
U=4i+9j-5k
V=-3i+6j-7k
Utilice MATLAB para calcular el producto escalar u*v de estos vectores de dos formas
distintas:
a) Definiendo u como un vector fila y v como un vector columna. Utilizar
posteriormente la multiplicación matricial
>> U=[4 9 -5];
>> V=[-3;6; -7];
>> m=U*V
m=
77
b) Utilizando la función dot
>> U=[4 9 -5];
>> V=[-3 6 -7];
>> m=dot(U,V)
m=
77
Capitulo 3 Ej.2
Capitulo 3 Ej.3
Capitulo 3 Ej.4
Defina x e y como vectores, tales que x=2, 4, 6, 8 y 10, e y= 3, 6, 9, 12, 15. Posteriormente utilice estos
vectores en la siguiente expresión para calcular z, a partir de operaciones elemento a elemento.
𝑦
𝑥𝑦 + 𝑥 𝑥
𝑧= + 12 𝑦
(𝑥 + 𝑦)𝑦−𝑥
Respuesta:
%Este programa calcula el valor del vector z=(xy+y/x)/(x+y)^(y-x)+12^(x/y)a
partir de los vectores x e y
x=[2 4 6 8 10];
y=[3 6 9 12 15];
z=(x.*y+y./x)./(x+y).^(y-x)+12.^(x./y);
disp('El vector z es igual a: ');disp(z);
Capitulo 3 Ej.5
Solución:
%Este programa calcula la T con sus respectivas constantes y variables x, y
%z
h=0.9; k=12.5;
x=[1:4];%variable x
y=[0.9:-0.1:0.6];%variable y
z=[2.5:0.5:4];%variable z
T=((x.*y.*z)./((h+k)^(k/5)))+((k*exp((z./x)+y))/(z.^h))%Ecuacion para dar la
temperatura
Capitulo 4 Ej.1
Programa:
h=[Link];
V=250;
r=sqrt((V.*3)./(pi.*h));
S=pi.*r.*sqrt(r.^2+h.^2)
Capitulo 4 Ej.5
Programa:
function [P]=sava1(P0,r,t)
%Este programa calcula al valor de P de una cuneta de ahorro donde
%'Po' es el capitial inicial
%'r' es la tasa de interes anual (%)
%'t' años posteriores
disp ('El balance de ahorro es:');
P=P0*((1+r/100)^t)
Capitulo 4 Ej.6
Codigo Matlab
%Gillat
%Capitulo VI
%Ejercicio 6
clc,clear
t=1:10;
a=1.55;
v=a*t;
d=0.5*a*t.^2;
tabla=[t',v',d'];
disp(' Tiempo Velocidad Distancia');
disp(tabla);
Comand Window
Capitulo 5 Ej.1
%fplot ('0.6*x.^5-5*x.^3+9*x+2',[-4 4])
x=[-2.7:0.1:2.7];
y=0.6*x.^5-5*x.^3+9*x+2;
plot(x,y)
Capitulo 5 Ej.2
x=(-10:0.1:10);
y=(x.^2-x+1)./(x.^2+x+1);
plot(x,y)
Corriendo el programa obtenemos:
Capitulo 5 Ej.3
%comando fplot
fplot('0.01*x^5-0.03*x^4+0.4*x^3-2*x^2-6*x+5',[-3,3])
Capitulo 5 Ej.6
Una ecuación paramétrica viene dada por x = 1.5sin(5t) y = 1.5cos(3t)
Trace la función para 0<t<2pi.
En script:
%Una ecuación paramétrica viene dada por x = 1.5sin(5t) y = 1.5cos(3t)
%Trace la función para 0<t<2pi.
t=0:0.01:2*pi;
x=1.5*sin(5*t);
y=1.5*cos(3*t);
plot(t,x,t,y)
xlabel('t')
ylabel('x(t),y(t)')
title('multiplot')
Capitulo 5 Ej.7
%Ejercicio 7 Capítulo V: Mecanismo de un pistón
THDrpm=500;r=0.12;c=0.25;
THD=THDrpm*2*pi/60;
tf=2*pi/THD;
t=linspace(0,tf,200);
TH=THD*t;
d2s=c^2-r^2*sin(TH).^2;
x=r*cos(TH)+sqrt(d2s);
xd=-r*THD*sin(TH)-(r^2*THD*sin(2*TH))./(2*sqrt(d2s));
xdd=-r*THD^2*cos(TH)-
(4*r^2*THD^2*cos(2*TH).*d2s+(r^2*sin(2*TH)*THD).^2)./(4*d2s.^(3/2));
subplot(3,1,1)
plot(t,x)
grid
xlabel('Tiempo(s)')
ylabel('Posición(m)')
subplot(3,1,2)
plot(t,xd)
xlabel('Tiempo(s)')
ylabel('Velocidad(m/s)')
subplot(3,1,3)
plot(t,xdd)
grid
xlabel('Tiempo(s)')
ylabel('Aceleración(m/s^2)')
Capitulo 5 Ej.9
%Este programa reprecenta en una sola gráfica la distribución del capital
%por tres métodos: anual, tirmestral y continua
%Donde:
%VC= De manera continua
%VT= De manera trimestral
%VA= De manera anual
%ma= capitulación anual
%mt=capitulación trimestral
P=5000;
ma=1;
mt=4;
r=7.5;
x=[-[Link];
VA=P*(1+((r)/(ma)))^(ma*t);
VT=P*(1+((r)/(mt)))^(mt*t);
VC=P*exp(r*t);
plot(x,VA,'-b')
hold on
plot(x,VT,'--r')
plot(x,VC,':k')
hold off
Capitulo 5 Ej.10
La forma del “Gateway Arch” de San Luis viene determinado por la ecuación:
𝑥
𝑦 = 693,8 − 68,8 cosh ( ) 𝑓𝑡.
99,7
Represente un gráfico del mismo.
Solución:
%Gatewar_arch grafico
x= -5:0.01:5
y= 693.8-68.8*cosh(x/99.7)
plot(x,y)
grid on
hold on
Capitulo 5 Ej.12
La posición x en la función del tiempo t de una partícula que se mueve a lo largo de una
línea recta viene dada por :
X(t)=0.4r^3-2r^2-5t+13 metros
La velocidad v(t) de la partícula se calcula mediante la derivada de x(t) con respecto al
tiempo t, y la aceleración a(t) se calcula derivando v(t) con respecto al tiempo t
Deduzca las expresiones de la velocidad y la aceleración de la partícula y represente
su posición ,velocidad y aceleración su función del tiempo para 0≤t≤7 s .Utilice el
comando subplot para crear tres gráficos en la misma ventana de gráficos,
representando la posición en la parte superior , la velocidad en el medio y la
aceleración al final . Etiquete los ejes aproximadamente con las unidades correctas
% Amos Gilat, Capitulo V Ejercicio 12)
%Este programa presenta las graficas de la posicion x, la velocidad y la
%aceleracion respecto al tiempo de una particula que se mueve en linea
%recta.
subplot(3,1,1)
fplot('0.4*t^3-2*t^2-5*t+13',[0 7],'-b') %posicion
xlabel('TIEMPO');ylabel('POSICION(m)');
subplot(3,1,2)
fplot('1.2*t^2-4*t+13',[0 7],'-b') %velocidad
xlabel('TIEMPO');ylabel('VELOCIDAD(m/s)');
subplot(3,1,3)
fplot('12.4*t-4',[0 7],'-b') %aceleracion
xlabel('TIEMPO');ylabel('ACELERACION(m/s^2)');
Capitulo 5 Ej.15
La órbita de los planetas alrededor del Sol se puede modelar, de forma aproximada,
mediante la ecuación polar:
𝑒𝑃
𝑟=
1 − 𝑒 cos 𝜃
A continuación, se muestran los valores de las constantes “P” y “e” para cuatro
planetas. Dibuje las órbitas de esos cuatro planetas en un solo gráfico (utilizando el
comando “hold on”).
Planeta P(x10^6 m) e
Mercurio 269.2 0.206
Venus 15913 0.00677
Tierra 8964 0.0167
Marte 2421 0.0934
theta=0:pi/100:2*pi;
r1=((0.206)*(269.2*10^6))\(1-((0.206)*cos(theta)));
polar(theta,r1)
hold on
r2=((0.00677)*(15913*10^6))\(1-((0.00677)*cos(theta)));
polar(theta,r2)
r3=((0.0167)*(8964*10^6))\(1-((0.0167)*cos(theta)));
polar(theta,r3)
r4=((0.0934)*(2421*10^6))\(1-((0.0934)*cos(theta)));
polar(theta,r4)
hold off
Capitulo 6 Ej.2
Capitulo 6 Ej.3
Escriba una función MATLAB para la siguiente función matemática:
𝑟(𝜃) = 2(1,1 − 𝑠𝑒𝑛2 𝜃)
La entrada de la función será θ (en radianes) y la salida será r. Escriba la función de forma que θ pueda ser
un vector, y utilícela para:
a)Calcular r(π/3) y r(3π/2)
b)Representar gráficamente (en coordenadas polares) r(θ) para 0 ≤ θ ≤ 2π
Respuesta:
a) function [r]=funcion(tetha)
%Este programa calcula el valor de tetha dentro de una función r
r=(1.*(1-sin(tetha).^2));
b) function [r]=funcion(tetha)
%Muestra la gráfica de la función en coordenadas polares
tetha=linspace(0,2*pi,1000);
r=(2.*(1-sin(tetha).^2));
polar(tetha,r,'r')
Capitulo 6 Ej.4
Capitulo 6 Ej.5
Programa:
function [P]=sava1(P0,r,t)
%Este programa calcula al valor de P de una cuneta de ahorro donde
%'Po' es el capitial inicial
%'r' es la tasa de interes anual (%)
%'t' años posteriores
disp ('El balance de ahorro es:');
P=P0*((1+r/100)^t)
Capitulo 4 Ej.9
Capitulo 4 Ej.10
function g=Calificaciones(n)
%Este programa calcula las calificaciones finales de n estudiantes
if n==1
T=input('Ingrese las calificaciones de los trabajos en forma de vector: ');
E=input('Ingrese las calificaciones de los examenes parciales en forma de
vector: ');
F=input('Ingrese las calificaciones de los examenes finales en forma de
vector: ');
R1=[T E F]';
R=ones(8,n).*R1;
T2=0.40*(sum(T)/length(T));
E2=(0.400*(sum(E)/length(E)))/10;
F2=(0.200*F)/10;
g=T2+E2+F2
elseif n>1
for i=1:n
N=input('Ingrese el nombre del estudiante : ','s');
fprintf('Ingrese los datos de %s /n',N);
T=input('Ingrese las calificaciones de los trabajos como vector fila ');
E=input('Ingrese las calificaciones de los examenes como vecor fila : ');
F=input('Ingrese la calificacion del examen final : ');
v=[T E F];
r(:,i)=v;
for k=1:n
T1=r(1:5,k);
PT=0.40*(sum(T1)/5);
E1=r(6:7,k);
PE=(0.40*(sum(E1)/2))/10;
F1=r(8,k);
PF=(0.20*F1)/10;
C=PT+PE+PF;
fprintf('Las calificaciones se mostraran a continuacion como vector columna
donde cada fila representa al alumno en el orden que ingreso los datos')
for j=1:n
g(j,:)=C;
end
end
end
end
Capitulo 7 Ej.1
a=5<=8-3
b=7<3-1+6>2
c=(7<3)-1+(6>2)
d=2*4+5==7+(20/4)
Capitulo 7 Ej.2
a=10; b=6;
ay=a>=b
by=a-b<=b/2
cy=a-(b<=b/2)
Corriendo el programa obtenemos:
Capitulo 7 Ej.3
%ejercicio 3, capítulo 7 inciso a
a=10;
b=6;
y=a>=b
%ejercicio 3, capítulo 7, inciso b
a=10;
b=6;
y=a-b<=(b/2)
%ejercicio3, capítulo 7, inciso c
a=10;
b=6;
y=a-(b<=(b/2))
Capitulo 7 Ej.6
Escriba una función MATLAB definida por el usuario que determine el área de un triángulo
cuando se dan las longitudes de los lados. Para el nombre de la función y argumentos
use [Área] = triángulo (a, b, c). Usa la función para determinar las áreas
de triángulos con los siguientes lados.
En ventana Function:
function [Area] = triangulo(a, b, c)
%Éste programa calcula el area de un triangulo por el metodo de Heron
%Fórmula de Heron: Aréa =Raiz(s*(s-a)(s-b9(s-c))
%Donde:a,b,c son los lados del triangulo
%y s=(a+b+c)/2
s=(a+b+c)/2
Area=sqrt(s*(s-a)*(s-b)*(s-c))
En script:
a)
a=3;b=8;c=10;
[Area] = triangulo(a, b, c)
b)
a=7;b=7;c=5;
[Area] = triangulo(a, b, c)
Capitulo 7 Ej.7
function [y]=ejercicio_7_bucles(x)
k=x;
while -6<=k<=2
y=4*exp(k)+2;
end
while -2<=k<=2.5
y=k^2;
end
while (2.5<=k)&&(k<=6)
y=(k+6.5)^(1/3);
end
end
Capitulo 7 Ej.8
%Este programa evalua si un función cuadrática tiene 2 raices o olo tinen
%una o si no tinen ninguna raiz
a=input('da el valor de a:');
b=input('da el valor de b:');
c=input('da el valor de c:');
D=b*b-4*a*c;
if D>0
fprintf('la ecuación tine dos raices');
raiz1=((-b)+sqrt(D))/(2*a);
raiz2=((-b)-sqrt(D))/(2*a);
disp(raiz1)
disp(raiz2)
end
if D==0
fprintf('La ecuación tiene una sola raiz')
raiz1=((-b)+sqrt(D))/(2*a);
raiz2=((-b)-sqrt(D))/(2*a);
if raiz1==raiz2
disp(raiz2);
end
end
if D<0
fprintf('La ecuación no tiene raices reales')
end
Capitulo 7 Ej.9
Utilice bucles para crear una matriz A de dimensión 4 x 7, en la cual el
valor de cada elemento sea la suma de sus índices (el numero de la fila y el
numero de la columna de cada elemento). Por ejemplo, el valor del elemento
A(2,5) será 7.
%En este script se crea una matriz 4x7 donde el calor de cada elemento es la
suma de la fila y la columna
A=[];
for k=1:4
for h=1:7
A(k,h)=k+h
end
end
Command Window
A =
2 3 4 5 6 7 8
3 4 5 6 7 8 9
4 5 6 7 8 9 10
5 6 7 8 9 10 11
Capitulo 7 Ej.10
Utilice bucles y sentencias condicionales para crear una matriz de dimensión 5x8 en el
cual el valor de cada elemento sea igual a la raíz cuadrada de la suma de los índices
de cada elemento, siempre que el elemento no se encuentre en una columna o fila par.
El valor de un elemento que este en una fila o columna par será igual a la suma del
cuadrado de los índices. (Los índices de un elemento de una matriz son el numero de
fila y el numero de columna que le corresponden)
n=input('introduzca el numero de filas: ');
m=input('íntroduzca el numero de columna: ');
A=[];
for k=1:n
for h=1:m
if k==1
A(k,h)=h-1;
elseif h==1
A(k,h)=k;
else
A(k,h)=(sqrt(n+m));
end
end
end
A
Capitulo 7 Ej.11
Escriba un programa (utilizando un bucle) que calcule la suma de los m primeros
términos de la serie:
Esta serie se denomina serie de Leibniz, y converge a 𝜋/4. Ejecute el programa para m =
10 y m = 500. Compare posteriormente estos resultados con el valor exacto 𝜋/4.
%Serie de Leibniz
function [P]=leibniz(m)
%Este programa calcula una aproximación al valor de Pi/4 utilizando
%la serie de Leibniz
p=0;
for n=0:m
p=p+(4*((-1)^n))/(2*n+1);
end
P=p;
Capitulo 7 Ej.12
Capitulo 7 Ej.13
Capitulo 7 Ej.14
Solución:
function y = ordenar(x)%Este programa ordena los elementos de un vector cual
sea de mayor a menor
n=length(x);
for i=1:n %primer ciclo
for j=i:n %segundo ciclo
if (x(i)<x(j))
z=x(i);%numero auxiliar
x(i)=x(j);%cambio de posicion, el elemento primero y el menor
despues
x(j)=z;
end
end
end
y=x;
Para este ejercicio se necesita un vector de 14 elementos aleatorios que
estén en el intervalo (-30,30) el comando rand, recordamos que existe la
formula: x = a + (b-a).*rand(N,1). Asi que en este caso quedaría:
x=-30+(30+30)*rand(1,14)
Capitulo 7 Ej.17
Programa:
function [V]=Eliminar_Multiplos(v,n)
%este programa elimina cualquier multilplo de cualquier vector
%v; es un vector cualsea
%n; es el multiplo que se quiere eliminar
clc;
m=v(mod(v,n)==0);
v(m)=[];
V=v;
Capitulo 7 Ej.18
Capitulo 7 Ej.19
function V=Vtanque(h)
%Este programa calcula el volumen de un tanque en forma de
%capsula en funcion de la altura
r=0.40;
V=pi*r.^2*((4/3)*r+h);
Capitulo 7 Ej.20
Capitulo 8 Ej.1
p=[1.5 0 -5 1 2];
x=(-2:0.1:2);
y=polyval(p,x);
plot(x,y)
Corriendo el programa obtenemos:
Capitulo 8 Ej.2
%ejercicio 2, capítulo 8, Giliat en español
u=[15 35 -37 -19 41 -15];
v=[5 -4 3];
[a b]=deconv(u,v)
Capitulo 8 Ej.3
Use MATLAB para llevar a cabo la siguiente multiplicación de dos polinomios:
(2x^2+3)(x^3+3.5*x^2+5x-16)
En script
%p1=2*x.^2+3;
%p2=x.^3+3.5*x.^2+5*x-16;
p1=[2 0 3];
p2=[1 3.5 5 -16];
conv(p1,p2)
Capitulo 8 Ej.6
Capitulo 8 Ej.7
function [ x,y,w ] = maxomin( a,b,c )
%El precente programa calcula el valor del máximo o del mínimo de una
%función cuadrática
%donde
% x=el valor del máximo o mínimo
% y=el valor del maximo o mínimo
% w sera 1 si y es un máximo y 2 si y es un mínimo
p=[a b c];
d=polyder(p);
r=roots(d);
y=polyval(p,r);
x=r;
if y>0
w=1;
else
w=2;
end
Capitulo 8 Ej.8
Capitulo 4 Ej.4