Vous êtes sur la page 1sur 9

Problemas: CAPÍTULO I “Fundamentos de MATLAB”

Al resolver los problemas que siguen, siempre prepare sus respuestas con MATLAB
(1.2) Cree un archivo M de función, fun_es(x), que calcule la siguiente
función:
𝑦 = 0.5𝑒 𝑥/3 − 𝑥 2 sen x
El argumento debe aceptar tanto un escalar como un vector. Pruebe su función
tecleando en MATLAB
fun_es (3) y fun_es ([1 2 3])

El script queda de la siguiente manera:

function y = fun_(x)
y =0.5.*exp(x/3)- x.^2.*sind(x);
end

>> fun_(3)
ans =0.0891

>> fun_([1,2,3])
ans = 0.6804 0.8343 0.8881

(1.4) a) Escriba un archivo M de función que calcule la solución de


𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0
Su forma general es r_cuad (a, b, c) donde a, b y c pueden ser vectores.
b) Pruebe la función con a=3, b=1,c=1, r_cuad(a,b,c).
c)Pruebe la función con a= [3 1 2], b= [1 -4 9], c= [1 3 -5].

El script queda de la siguiente manera:

function x=r_cuad(a,b,c)
a=input('a= ');
b=input('b= ');
c=input('c= ');
if a==0
x=-c./b
elseif b==0
x1=+sqrt(-c./a)
x2=-sqrt(-c./a)
elseif c==0
x1=(-b+sqrt(b.^2))./(2.*a)
x2=(-b-sqrt(b.^2))./(2.*a)
else
x1=(-b+sqrt(b.^2-4.*a.*c))./(2.*a)
x2=(-b-sqrt(b.^2-4.*a.*c))./(2.*a)
end

(1.6) Dos variables x y y se guardan en el archivo sal_asc.m:


x= 1:5
y= [-1:-1:-5]’
savesal_asc x y –ascii
¿Cómo se verá el archivo cuando se abra como M? ¿Es posible leer tanto x
como y del mismo archivo? Si x y y tienen que guardarse en formato ASCII y
también tiene que leerse posteriormente, ¿qué debe hacerse?

El script queda de la siguiente manera:


clear all
close all
clc
x = 1:5
y = -[-1:-1:-5]'
save sal_asc x y -ascii

>> sal_asc
x= 1 2 3 4 5
y=
1
2
3
4
5

 ¿Es posible leer tanto x como y del mismo archivo?

Si es posible visualizar x e y en el mismo archivo.

 Para guardar en formato ASCII y leer

Es necesario para este proceso usar “load(nombredel archivo)”


Si filename es un archivo ASCII, load(filename) crea una matriz de doble
precisión que contiene datos del archivo.

(1.8) Reescriba el guion del problema 1.7 utilizando while en lugar de for.

El script queda de la siguiente manera:


>> while p==7:8
while q==3:5
while r==1:2
fprintf(' %3.0f, %3.0f, %3.0f\n', p, q, r)
if q==4, end
end
end

(1.10) Escriba un guion para una función de dado que pida al jugador teclear 0
o 1. Si el jugador teclea 1, el software obtendrá diez números al azar entre 1 y
10 los imprimirá en forma de vector de fila. Si la entrada del jugador es 0, el
programa se detendrá. Obtenga un numero aleatorio que sirva como semilla
aprovechando clock como siguiente:c=clock;
numsem= c(1)*c(2)*c(3)*c(4)*c(5)*c(6);
El script queda de la siguiente manera:
clear all
clc
c=clock;
numsem= c(1)*c(2)*c(3)*c(4)*c(5)*c(6);
rand('seed', numsem)
%disp('Teclee 1 para iniciar')
%a = input('o 0 para terminar ','s')
a=2;
while a~='1' & a~='0'
disp('Teclee 1 para iniciar')
a = input('o 0 para terminar ','s');

while a == '1'
for i=1:11
n(i,:)=ceil(6*rand(1));
end
disp('Números de dado sacados:')
disp(n)
disp(' ')
disp('Teclee 1 para repetir')
a = input('o 0 para terminar ','s');
end
end

(1.12) Cree un archivo M de función llamado fun_xb que evalué la siguiente


serie:
𝒙𝟐 𝒙 𝟑 𝒙𝒏
𝒇(𝒙) = 𝒙 − + − ⋯ + (−𝟏)𝒏+𝟏
𝟐 𝟑 𝒏
Los valores de a y n se pasan a la función mediante argumentos. Pruebe la
función comparando el resultado con cálculos manuales para x=1 y n=4. La
serie en cuestión es una expansión de Mclaurin truncada de log(1+x) y
converge para -1<x<1. Sabiendo esto, pruebe la función con valores de x
selectos como x= -0.5 y 0.5, con n=1, 2, 3, 5, 10, 20, 50 y comprar el resultado
con log(1+x). (La convergencia se hace progresivamente más difícil al
acercarse a -1 o 1.)
El script queda de la siguiente manera:

function [y]=fun_xb(x,n)
i=0;
sfp=0;
sfn=0;
sfxi=0;
x=input('x= ');
n=input('n= ');
while 2
if i==n
fx =sfxi
break
else
i=i+1;
fxi=((-1)^(i+1))*(x^i)/i;
sfxi=sfxi+fxi;
end
end
end
Problemas: CAPÍTULO II “Gráficas con MATLAB”
2.1 Grafique las siguientes funciones en el dominio que se indica
𝒔𝒆𝒏(𝒙)
𝒚= , 𝟎 ≤ 𝒙 ≤ 𝟒𝝅
𝟏 + 𝐜𝐨𝐬(𝒙)

𝟏
𝒚= ,𝟎 ≤ 𝒙 ≤ 𝟒
𝟏 + (𝒙 − 𝟐)𝟐

𝒚 = 𝐞𝐱𝐩(−𝒙)𝒙𝟐 , 𝟎 ≤ 𝒙 ≤ 𝟏𝟎

2.3 Grafique las dos funciones que siguen en la misma gráfica con un solo comando plot:
(𝒙 − 𝟏)(𝒙 − 𝟐)(𝒙 − 𝟒)(𝒙 − 𝟓)
𝒚= ,𝟎 ≤ 𝒙 ≤ 𝟔
(𝟑 − 𝟏)(𝟑 − 𝟐)(𝟑 − 𝟒)(𝟑 − 𝟓)

(𝒙 − 𝟐)(𝒙 − 𝟑)(𝒙 − 𝟒)(𝒙 − 𝟓)


𝒚= ,𝟎 ≤ 𝒙 ≤ 𝟔
(𝟏 − 𝟐)(𝟏 − 𝟑)(𝟏 − 𝟒)(𝟏 − 𝟓

2.5 las siguientes


𝒕𝒂𝒏(𝒙)
𝒚= ,𝟎 < 𝒙 ≤ 𝟓
𝒙𝟎.𝟑

𝒆𝒙𝒑(𝒙)
𝒚= ,𝟎 < 𝒙 ≤ 𝟏
(𝟏 − 𝒙𝟐 )𝟏/𝟐
𝒚 = 𝒙−𝒙 𝟎 < 𝒙 ≤ 𝟐

2.7

2.9 Utiice contour para graficar la funcion implicita f(x,y)=0 donde

𝒇(𝒙, 𝒚) = 𝒚𝟐 + 𝒙 ∗ 𝒆𝒙𝒑(𝒚) − 𝒕𝒂𝒏𝒉(𝒙) , 𝟎 ≤ 𝒙 ≤ 𝟓


2.11 Repita el problema 2.10 con una grafica de contorno

0 < 𝑥 < 5 ,0 < 𝑦 < 5

𝒇 = 𝒙𝟐 − 𝟖𝒙 + 𝒚𝟐 − 𝟔𝒚 − 𝟎. 𝟏𝒙𝒚 + 𝟓𝟎

2.13

2.15
2.17 elabore un programa grafico interactivo modificando el guion del listado 2.31 de modo
que (a) se acumulen múltiples puntos haciendo clic en el botón izquierdo del ratón hasta que
se oprima el botón central, y (b) conforme los puntos se acumulen, se marquen en la pantalla
con ‘x’ y se conecten mediante líneas. La gráfica se mostrara solo después de haber hecho clic
dentro del cuadro que está en la esquina inferior izquierda.

hold on, clear,clf

axis([-5, 14, -5, 14])

hold on

axis('square')

axis('off')

x0=-1;

x1=2;

y0=2;

y1=2;

Body=10; %angulo del cuerpo

Rarm1=10;Rarm2=30;
Larm1=30;Larm2=90;

Rleg1=30;Rleg2=90;

Lleg1=90;Lleg2=20;

human_([2,0],[5,1], Body, Rarm1,Rarm2,Larm1,Larm2,Rleg1,Rleg2,Lleg1,Lleg2);

human_([3,1],[6,1], Body, Rarm1,Rarm2,Larm1,Larm2,Rleg1,Rleg2,Lleg1,Lleg2);

%human_([7,0.5],[10.5,0.5], Body, -Rarm1,

Rarm2*2,Larm1,Larm2,Rleg1,Rleg2,Lleg1,Lleg2;

xlabel('dos personas boxeando');

axis ('off')

[X,Y] = meshgrid(0:.2:5,0:.2:5);

Z =X.^2-8.*X+Y.^2-6.*Y-0.1.*X.*Y+50 ;

[C,h] = contour(X,Y,Z);

function r=fun_es(x)

y=0.5*exp(x/3)-x.^2.*sin(x);

disp(y);

Vous aimerez peut-être aussi