You are on page 1of 20

14/8/2015

Inicio

EjerciciosdeMATLAB.Partebsica

MATLAB

Bsico

Ejercicios

Clculosaritmticos
Variablesescalares

1.Variables

Vectoresymatrices
Entrada/salida
Grficos
bidimensionales
Funciones
Sentencias
condicionales

1.1.Evaluarlassiguientesexpresionesparaelvalordadodex
y =
y =
y =

x3

x x6

tan xsin x
xsin x
1
2(1 x)

, x = 2

, x =

1
3

3(1 x)

, x = 3

Solucin

Sentenciasiterativas
Ejemplos

>>x=2
>>y=1/(x3)5/(x^2x6)
y=0.2500
>>x=pi/6
>>y=(tan(x)sin(x))/(xsin(x))
y=3.2777
>>x=3
>>y=1/(2*(1sqrt(x)))1/(3*(1nthroot(x,3)))
y=0.0707

1.2.Lalongituddelarcodeparboladelafiguraes

1
s =

2
2
b + 16a +

2
2
4a + b + 16a

ln (
8a

)
b

Calcularsparaa=12yb=8
Solucin
>>a=12b=8
>>s=sqrt(b^2+16*a^2)/2+b^2*log((4*a+sqrt(b^2+16*a^2))/b)/(8*a)
s=25.9922

1.3.Unproyectilsedisparaconunnguloyunavelocidadinicialv0.Calcularelalcancehorizontal,laaltura
mximayeltiempodevuelodelproyectil,desdequesalehastaqueimpactaconelsuelo
=60,v0=600m/s,g=10m/s2.
v

xmax =

ymax =

2
0

sin(2)

2
0

2g

tvuelo = 2

sin
v0
g

sin

Solucin
>>th=60v0=600g=10
>>x_max=v0^2*sind(2*th)/g

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

1/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
x_max=3.1177e+004
>>y_max=v0^2*sind(th)^2/(2*g)
y_max=1.3500e+004
>>t_vuelo=2*v0*sind(th)/g
t_vuelo=103.9230

1.4.LeydelenfriamientodeNewton
T = T s + (T 0 T s ) e

kt

LatemperaturaambienteesTs=20,latemperaturainicialdelcuerpoT0=5.CalcularlatemperaturaTdelcuerpo
enelinstantet=3,sabiendoquek=0.45.
Solucin
>>Ts=20T0=5k=0.45
>>T=Ts+(T0Ts)*exp(k*3)
T=16.111396090311629

2.Vectoresymatrices
2.1.Crearelvectorquecontengalosnmerosparesentre10ycero.Crearunvectorquecontengalosmltiplos
de3entre6y36,ambosinclusive.
Solucin
>>x=10:2:0
x=1086420
>>x=6:3:36
x=69121518212427303336

2.2.Crearunamatriz32yotrade23conlosvectoresu=[1,0,3]v=[4,1,2]
Calcularelproductou.*vycocienteu./velementoaelementodelosdosvectores
Calcularelproductoescalardelosdosvectoresyelnguloentreellos
u v = uv cos

Solucin
>>u=[1,0,3]v=[4,1,2]
>>A=[u',v']
A=
14
01
32
>>A=[uv]
A=
103
412
>>u.*v
ans=
406
>>u./v
ans=0.250001.5000
>>p=u*v'
p=10
>>th=acosd(p/(norm(u)*norm(v)))
th=46.3647

2.3.Seaelvectoru=2:3:18
Accederalostresprimeroselementosdelvectoru
Accederalsegundo,cuartoysextoelementosdelvectoru
Accederalsexto,cuartoysextoelementodelvectoru
Accederalostresltimoselementosdelvectoru
Accederalprimero,terceroycuartoelementosdelvectoru
Solucin

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

2/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
>>u=2:3:18
u=258111417
>>u(1:3)
ans=258
>>u(2:2:6)
ans=51117
>>u(end2:end)
ans=111417
>>u([1,3,4])
ans=2811

2.4.CrearlamatrizA=[10:1:4ones(1,7)2:2:14zeros(1,7)]conlpizypapelyluego,comprobarconMATLAB
ObtenerlamatrizB=A([1,3],[1,3,5:7])conlpizypapelyluego,comprobarconMATLAB
Solucin
>>A=[10:1:4ones(1,7)2:2:14zeros(1,7)]
A=
10987654
1111111
2468101214
0000000
>>B=A([1,3],[1,3,5:7])
B=
108654
26101214

2.5.CrearestasdosmatricesAyBsininicializarcadaelementodelamatriz,enunasolalneaenlaventanade
comandos
1

0
0

10

15

20

20

30

40

50

10

11

25

60
4

Eliminarlaltimafiladelaprimeramatrizylaterceracolumnadelasegundamatriz
Solucin
>>A=[(1:5)',zeros(5,1),(6:2:2)']
A=
106
204
302
400
502
>>B=[1:2:110:5:2510:10:606:2:4]
B=
1357911
0510152025
102030405060
642024
>>A(end,:)=[]
A=
1357911
0510152025
102030405060
>>B(:,3)=[]
B=
137911
05152025
1020405060
64024

2.6.CrearlamatrizBde56apartirdeunvectorAde30elementosutilizandoelcomandoreshape,yaccedera
loselementosmarcadosencolorrojo

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

3/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

Nota:reshape(A,m,n)creaunamatrizmnapartirdeloselementosdelamatrizAquedebetenermn
elementos.
Solucin
>>A=1:30
>>B=reshape(A,5,6)
B=
1611162126
2712172227
3813182328
4914192429
51015202530
>>B([3,4,5],[4,5])
ans=
1823
1924
2025
>>B(2:4,3:5)
ans=
121722
131823
141924
>>B(2:end,end)
ans=
27
28
29
30
>>B(end,3:5)
ans=
152025

2.7.Sealamatriz

Crearunvectorcolumnadenueveelementosquecontengaloselementosdelaprimera,terceraycuarta
columna
Crearunvectorfiladeochoelementos,quecontengaloselementosdelasugundafilaydelaterceracolumna
Crearunvectorfiladecincoelementosquecontengalosdosltimoselementosdelaltimacolumnaylostres
primeroselementosdelaprimerafila.
Solucin
>>A=[0,2,3,4,22,3,1,5,10,2,4,3,1]
A=
02342
23151
02431
>>u=[A(:,1)A(:,3)A(:,4)]
u=
0
2
0
3
1
4
4
5
3
>>u=[A(2,:),A(:,3)']
u=
23151314
>>u=[A(end1:end,end)',A(1,1:3)]

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

4/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
u=11023

2.8.Crearunatabladevaloresdelcosenodelosnguloscomprendidosentre0y180,de30en30grados
ngulo
0
30
60
...

coseno

Solucin
>>ang=0:30:180
>>y=cosd(ang)
>>[ang',y']
ans=
01.0000
30.00000.8660
60.00000.5000
90.00000
120.00000.5000
150.00000.8660
180.00001.0000

2.9.Seanlasmatrices
A = (

) B = (

RealizarlassiguientesoperacionesconlpizypapelycomprobarluegoconMATLAB
A*BT(elsuperndiceTindicatraspuesta)
AT*B
A.*B(productoelementoaelemento)
A./B
Solucin
>>A=[1,0,14,2,3]
A=
101
423
>>B=[1,2,31,1,2]
B=
123
112
>>A*B'
ans=
21
10
>>A'*B
ans=
5611
224
459
>>A.*B
ans=
103
426
>>A./B
ans=
1.000000.3333
4.00002.00001.5000

2.10Seanlasmatrices
2

A = 3

5 B = 3

7 C = 2

Comprobarsisonverdaderasofalsasestasafirmaciones:
A+(B+C)=(A+B)+C,propiedadasociativa
2(A+B)=2A+2B
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

5/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

A*(B+C)=A*B+A*C,propiedaddistributiva
A*B=B*A,propiedadconmutativa
(A*B)T=BT*AT
(A*B)*C=A*(B*C)
(A+B)T=AT+BT

2.11.ResolverelsistemadetresecuacionesmediantelaoperacinX=A\b.dondeAeslamatrizdelos
coeficientes,beselvectordelostrminosindpendientesyXeselvectordelasincgnitas.
4x 2y + 6z = 8

2x + 8y + 2z = 4

6x + 10y + 3z = 0

2
8
10

2y = 4
3

Solucin
>>A=[4,2,62,8,26,10,3]
A=
426
282
6103
>>b=[840]
b=
8
4
0
>>X=A\b
X=
1.8049
0.2927
2.6341
>>A*X
ans=
8.0000
4.0000
0

2.12.Dadoelvectordedatosu=[5,9,2,4,1,12,7,6,5,8]
Elvalormximoyelndicededichoelementoenelvectoru
Elvalormnimoyelndicededichoelementoenelvectoru
Lasumadetodosloselementos
Elproductodetodosloselementos
Elvalormedio
Crearunvectorvapartirdeluperoconloselementosordenadosenordenascendente,utilizandolafuncinsort
Solucin
>>u=[5,9,2,4,1,12,7,6,5,8]
u=
59241127658
>>[m,k]=max(u)
m=12
k=6
>>[m,k]=min(u)
m=1
k=5
>>sum(u)
ans=59
>>prod(u)
ans=7257600
>>mean(u)
ans=5.9000
>>v=sort(u)
v=12455678912

2.13.Crearunatabladevaloresdelafuncin
2

2
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

6/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
2

y =
x + 4

paralossiguientesvaloresdex:3,2,1,0,1,2,3
Solucin
>>x=3:3
>>y=(x.^22)./(x+4)
>>[x',y']
ans=
3.00007.0000
2.00001.0000
1.00000.3333
00.5000
1.00000.2000
2.00000.3333
3.00001.0000

2.14.Comprobarque
sin x
lim

= 1
x

x0

Establecerelformatolargoparaexpresarlosnmeroscon15decimales(formatlong)
Crearunvectorxcuyoselementosson1,0.1,0.01,0.001,...ycalcularelcocientesin(x)/x.Regresaralformato
pordefecto(formatshort)
Solucin
>>formatlong
>>n=0:5
>>x=1./10.^n
>>y=sin(x)./x
>>[x',y']
ans=
1.0000000000000000.841470984807897
0.1000000000000000.998334166468282
0.0100000000000000.999983333416666
0.0010000000000000.999999833333342
0.0001000000000000.999999998333333
0.0000100000000000.999999999983333
>>formatshort

2.15.Comprobarquelasuma

n=1

= 1

Establecerelformato,15decimales(formatlong).Calcularlasuma(a)n=10,(b)n=20,(c)n=40.
Crearelvectorn,luegoelvectory=1/2n,ysumarloselementosdelvectoryconlafuncinsumdeMATLAB
Restaurarelformatopordefecto
Solucin
>>formatlong
>>n=1:10
>>y=1./2.^n
>>sum(y)
ans=0.999023437500000
>>formatshort

2.16.Comprobarquelasuma

(3)

12
2n + 1

n=0

Calcularlasuma(a)n=10,(b)n=20,(c)n=40.
Solucin
>>formatlong
>>n=0:10
>>y=sqrt(12)*(3).^(n)./(2*n+1)
>>sum(y)

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

7/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
ans=3.141593304503082
>>pi
ans=3.141592653589793
>>formatshort

2.17.Comprobar

1
= 1

1
+

1
+

+ ...
9

Solucin
>>n=1:4:10001
>>sum(1./n1./(n+2))
ans=0.7853
>>pi/4
ans=0.7854
>>n=1:2:10001
>>sum((1).^((n1)/2)./n)
ans=0.7854

3.Grficos
3.1LapoblacindeEstadosUnidossepuedemodelarmediantelasiguienteformula
y =

197273000
1 + e

0.03134(t1913.25)

dondeteseltiempoenaos.HacerungrficoquemuestrelapoblacindeUSAcada10aosdesdeelao1790
hastael2000.Crearunscript

Solucin
3.2Dibujarlafunciny=3x326x+10,suderivadaprimeraysuderivadasegunda,enelintervalo2x4,enla
mismagrficaycondistintoscoloresyestilodelnea.Crearunscript

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

8/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

Solucin
3.3Dibujarunacurvacicloide,queenecuacionesparamtricases
x=r(tsint),
y=r(tcost),
Tomarr=1.5y0t4

Solucin
3.4.Dibujarlasuperposicinx1+x2dedosMovimientosArmnicosSimplesdelamismadireccinydistinta
frecuenciaenelintervalo0t4,
x1=sin(t)
x2=sin(2t)
Superponerenelmismogrficolaamplitudmodulada(envolvente)encolordiferenteycongrosordelnea1.5

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

9/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

Solucin
3.5.Tiroparablico

Uncuerposelanzadesdelaalturay0convelocidadv0,quehaceunnguloconlahorizontal.
Lasecuacionesdelmovimientoson:
x = v0 cos t
y = y0 + v0 sin t +

1
2

(g)t

Laecuacindelatrayectoriadelmviles
2

g
y = y0 + x tan

x
2

2 v cos

= y0 + x tan x

(1 + tan )

2v

Dadoslosdatosdelaalturainicialy0,lavelocidadinicialv0yelngulodetirocalcularelalcancehorizontaly
eltiempodevuelodelproyectil,cuandollegaalsueloy=0.
Escribirelscriptparabolicoqueproduzcaunagrficasemejantealadelafigura(msabajo)yquerealicelas
siguientestareas:
1. Establezcamediantecomandosinput,losvaloresdelaalturay0,velocidadinicialv0yngulodetiro
2. Determineeltiempodevuelocalculandounadelasracesdelaecuacindesegundogrado
3. Calcularelalcance,conocidoeltiempodevuelo
4. Representelatrayectoriayladecoreconttulo,etiquetasenelejeXyenelejeY.Utiliceelcomandoaxispara
estabecernuevosvaloresmximosymnimosparaelejeXyparaelejeYdistintosdelosqueMATLAB
establecepordefecto
5. Utiliceelcomandotext,paraqueaparezaenalgnlugardelagrfica,losdatosdeltiempodevueloydel
alcance
Ejemplo:Uncandisparaunabaladesdeloaltodeunacantiladode100mdealturaconunavelocidadde46
m/shaciendounngulode30porencimadelahorizontal.Tomarg=10m/s2
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

10/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
>>parabolico
altura:100
velocidadinicial:46
ngulo:30

Solucin
3.6.Tiroparablico3D
Sedisparaunproyectilconvelocidadde60m/shaciendounngulode30,desdelaventanadelvagndeuntren
enmovimientoalolargodelejeXconvelocidadde20m/s.Tmeseg=10m/s2
Representarlatrayectoriadelproyectil
Ecuacionesdelmovimiento
ay = 0

v = 20

y = 20t

ax = 0
vx = 30 3
x = 30 3t

2
a z = 10
vz = 30 10t
z = 30t 5t

Comprobarque
Elproyectilalcanzalamximaalturacuandovz=0,enelinstantet=3s,laalturaesdezmax=45m.
Elproyectilimpactacontraelsuelocuandoz=0,enelinstantet=6s.Enesteinstantelascoordenadasdelpunto
deimpactoson:x=120m,y=311.8m

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

11/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

Solucin
3.7.Dibujaralfuncin
z =

xy
2

x +y

1 x 31 y 4

Solucin
3.8.Dibujarlafuncin
z = r
0 3600 r 2

Utilizarlafuncinpol2cartparaconvertircocordendaspolaresacoordenadasrectangulares.

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

12/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

Solucin

4.Funciones
4.1.EscribirunafuncinqueconviertagradosF(Fahrenheit)agradosC(Celsius)deacuerdoconlasiguiente
frmula
5
C =

(F 32)
9

>>gradosF_C(32)
ans=0
>>gradosF_C(212)
ans=100

LadefinicindelafuncingradosF_Ces
Solucin
functiongC=gradosF_C(gF)
gC=5*(gF32)/9
end

Otraforma
>>gradosF_C=@(x)5*(x32)/9
>>gradosF_C(32)
ans=0
>>gradosF_C(212)
ans=100

4.2.Lasnuevascoordendas(X,Y)deunpunto(x,y)delplanoqueesgiradoalrededordelejeZunngulo(enel
sentidodelasagujasdelreloj)vienedadopor
X = x cos y sin
{
Y = x sin + y cos
X
(

cos

sin

sin

cos

) = (
Y

x
)(

)
y

Utilizarelcomandocompassparadibujarelvectorposicinr=xi+yjycorrespondienteelvectorgiradoR=Xi+Yj
unngulo.
>>u=[sqrt(3)1]
>>ang=120
>>v=rotacion(ang,u)
v=
1.7321

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

13/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
1.0000
>>holdon
>>compass(u(1),u(2))
>>compass(v(1),v(2))
>>holdoff

Definimoslafuncinrotacion
Solucin
functionv=rotacion(ang,u)
R=[cosd(ang),sind(ang)sind(ang),cosd(ang)]
v=R*u
end

5.Sentenciascondicionales
5.1.Seaelvectorx=[4,0,5,3,0,3,7,1,6]
Contarcuantoselementosdelvectorsonpositivos,negativosonulos
Solucin
>>x=[4,0,5,3,0,3,7,1,6]
>>ne=sum(x<0)
ne=3
>>pos=sum(x>0)
pos=4
>>cero=sum(x==0)
cero=2

5.2.Unaempresapagalossiguientestiposdesalarioanual:12000,15000,18000,24000,35000,50000y70000.
Elnmerodeempleadosencadaunadelascategorases:3000,2500,1500,1000,400,100y25.Calcular:
Elnmerototaldeempleados
Elnmerodeempleadosdelaempresacuyossalariossonsuperioresa32000einferioresadichacantidad
Elsalariomedioporempleadoenlaempresa(mediaponderada)
Solucin
>>salario=[12000,15000,18000,24000,35000,50000,70000]
>>empleados=[3000,2500,1500,1000,400,100,25]
>>n_empleados=sum(empleados)
n_empleados=8525
>>u=salario>32000

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

14/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
u=0000111
>>u.*empleados
ans=000040010025
>>n_alto=sum(u.*empleados)
n_alto=525
>>n_bajo=n_empleadosn_alto
n_bajo=8000
>>salario_medio=sum(empleados.*salario)/n_empleados
salario_medio=1.7038e+004

5.3.Crearunscriptquerealicelasiguientetarea:cuandoseproporcionaunamedidadelongitudexpresadaen
mm,cm,dm,m,kmseobtienelarespuestadedichamedidaconvertidaam(metros).Porejemplo,medida=50y
unidad='cm'aparece
0.5m

Elscripteselsiguiente
Solucin
medida=50
unidad='cm'
switch(unidad)
case{'km','kilmetro'}
y=1000*medida
case{'m','metro'}
y=medida
case{'dm','decmetro'}
y=medida/10
case{'cm','centmetro'}
y=medida/100
case{'mm','milmetro'}
y=medida/1000
otherwise
disp(['Unidaddesconocida:',unidad])
end
disp([num2str(y),'m'])

5.4.Elrecibodelaelectricidaddelosresidentesenunadeterminadaciudadsecalculadelsiguinetemodo:
1. Siseconsumen500Kwhomenoselcosteesde2cntimosporKwh
2. Siseconsumenmsde500Kwhyperonomsde1000elcostees10eurosporlosprimeros500Kwhy5
cntimosporKwhparaelconsumoqueexcedalos500Kwh
3. Siseconsumenmsde1000Kwhelcostees35eurosporlosprimeros1000Kwhy10cntimosporKwhpara
elconsumoqueexcedalos1000Kwh
4. Lacompaaelctricaincluyeungastofijode5euros,independientedelconsumo.
Laslecturasdelcontadordeelectricidaddecincofamiliashasidoelsiguiente:200,500,700,1000,1500Kwh,
respectivamente.Mostrarlosresultadosdelclculoendoscolumnas,unadelcosumoylaotradelcostedela
electricidadconsumida.
2009
50015
70025
100040
150090

Solucin
consumo=[200,500,700,1000,1500]
coste=5+10*(consumo>500)+25*(consumo>1000)
coste=coste+0.02*(consumo<=500).*consumo
coste=coste+0.05*(consumo>500&consumo<=1000).*(consumo500)
coste=coste+0.1*(consumo>1000).*(consumo1000)
disp([consumo',coste'])

5.5.Escribirunafuncinqueconviertalascoordendasrectangularesxeyapolaresr,.
>>[r,ang]=r_polar(sqrt(3),1)
r=2.0000
ang=0.5236
>>[r,ang]=r_polar(sqrt(3),1)
r=2.0000
ang=3.6652
>>[r,ang]=r_polar(sqrt(3),1)

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

15/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
r=2.0000
ang=5.7596

Ladefinicindelafuncinr_polares
Solucin
function[r,ang]=r_polar(x,y)
r=sqrt(x^2+y^2)
ang=atan2(y,x)
ifang<0
ang=ang+2*pi
end
end

6.Sentenciasiterativas
6.1.Comprobar,utilizandounbuclefor

= 1

+ ...

Solucin
sgn=1
s=0
forn=1:2:99
sgn=sgn
s=s+sgn/n
end
disp([pi/4,s])

6.2.Clculoderazcuadradadeunnmeron,medianteelsiguientealgoritmo
1. Establecerelformatoa15decimales,(long)
2. Establecerelvalorinicialden
3. Establecerelvalorinicialdexenn/2
4. Repetirseisveces
Reemplazarxpor(x+n/x)/2
5. Mostrarlarazcuadradadenyx.
6. Restaurarelformatopordefecto,(short)
Solucin
formatlong
n=2
x=n/2
fori=1:6
x=(x+n/x)/2
end
disp([sqrt(n),x])
formatshort

6.3.Elnmeroirracional
ParahallarlalongituddeunacircunferenciaderadioR,primerosecalculaelpermetrodeuntringuloequiltero
(3lados)inscritoendichacircunferencia,luego,deunhexgono(6lados),undodecgono(12lados)yas,
sucesivamente.Ellmitedelasucesindepermetrosesprecisamentelalongituddelacircunferencia2R.
Sitomamosunacircunferenciaderadiounidad,aldividirentredoslosvaloresdelospermetrosiremos
obteniendolassucesivasaproximacionesdelnmeroirracional.

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

16/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

PodemoscalcularlalongituddelladoanunpolgonoregulardenladosinscritoenlacircunferenciaderadioR,
(encolorrojo).

a n = 2R sin (

)
n

Delmismomodo,obtenemoslalongituddelladodeunpolgonoregularinscritode2nlados(encolorazul)

a 2n = 2R sin (

)
2n

Teniendoencuentaquesin (

1 cos

) =

Establecemoslarelacinentreanya2nyportanto,entreelpermetroPndelpolgonoregulardenladosyel
permetroP2ndelpolgonoregularde2nlados.
P 2n

Pn

= 2nR
2
4
2
2

R n

TomandocomoradioR,launidad
Parauntringulo,n=3,lalongituddelladoesa3=2sin60,yelpermetroP

= 3 3

Paraunhexgono,n=6,lalongituddelladoesa6=2sin30=1,yelpermetroP6=6.
yas,sucesivamente.
Paraobtenerlassucesivasaproximacionesdelnmeroirracionalmediantelafrmulaanteriorprocedemosdel
siguientemodo:
1. PartimosdelvalordelpermetroPdeuntringuloequilteroinscritoenunacircunferenciaderadiounidad,el
valordenes3.
2. CalculamoselpermetroPdeunpolgonode2nladosapartirdelvalordelpermetrodeunpolgonoregular
denlados.
3. ElvalorobtenidoPserelvalordelpermetrodeunpolgonoregularden=2nlados.
4. SeimprimeelvalordePdivididoentredos(aproximacinde)
5. Sevuelvealpaso2.
6lados,aproximacindepi:3.00000000
12lados,aproximacindepi:3.10582854
24lados,aproximacindepi:3.13262861
48lados,aproximacindepi:3.13935020
96lados,aproximacindepi:3.14103195

Elscripteselsiguiente
Solucin
perimetro=3*sqrt(3)
n=3
iter=5
fori=1:iter
perimetro=2*n*sqrt(2.0sqrt(4.0(perimetro/n)*(perimetro/n)))
n=2*n
fprintf('%ilados,aproximacindepi:%1.8f\n',n,perimetro/2)
end

6.4Desarrolloenserie
Eldesarrolloenseriedesin(x)es
sin(x) x

1
3!

1
5!

sin(x) =

lim
N

(1)
n=0

...
2n+1

(2n + 1)!

CompararelvalordadoporlafuncinMATLABsin(x)conelvalorobtenidoalsumarunnmerodeterminado
detrminos(5,10,15..)deldesarrolloenserieparaunargumentodado,porejemplo,x=/6(30grados).
Definirunafuncindenominadaserie_sinqueadmitacomoparmetroselnmerondetrminosdelaserieyel
argumentox(radianes)delafuncinsin.
>>formatlong
>>serie_sin(2,pi/6)
ans=0.499674179394364
>>serie_sin(5,pi/6)

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

17/20

14/8/2015

EjerciciosdeMATLAB.Partebsica
ans=0.500000000020280
>>sin(pi/6)
ans=0.500000000000000
>>formatshort

Ladefinicindelafuncinserie_sineslasiguiente
Solucin
Repetiresteejercicioperoconlafuncincoseno
N

cos(x) =

lim
N

(1)
n=0

2n

(2n)!

6.5.Generarunnmeroaleatorioenteroentre1y10mediantelafuncinrandi.Esteeselnmerosecretoque
hayqueadivinar.Utilizarelbuclewhiledelquesesalecuandoelusuariointroducemedianteelcomandoinputel
nmerocorrecto.Orientaralusuariosielnmeroquepruebaesmayoromenorqueelnmerosecreto
Culeselnmerosecreto?:3
Esmspequeo
Culeselnmerosecreto?:2
Esmspequeo
Culeselnmerosecreto?:1
Hasacertado

Elscripteselsiguiente:
Solucin
6.6.Ordenarunalistadenmeros

Paraordenarunalistadenmerosemplearemoselmtododelaburbuja,unmtodotansimplecomopocoeficaz.
Secomparaelprimerelemento,ndice0,contodoslosdemselementosdelalista,sielprimerelementoes
mayorqueelelementoj,seintercambiansusvalores,siguiendoelprocedimientoexplicadoenlafigura.Se
continuaesteprocedimientocontodosloselementosdelarraymenoselltimo.Lafiguraexplicadeforma
grficaesteprocedimiento.
Crearunafuncindenominadaordenarquedevuelvaunvectorordenadoenordenascendentecuandoselepasa
unvectordedatosdesordenado
Llamamosalafuncinordenarylepasamoselvectordedatosdesordenados:1.651.821.721.751.731.851.90
1.741.761.77
>>ordenar([1.651.821.721.751.731.851.901.741.761.77])
ans=1.65001.72001.73001.74001.75001.76001.77001.82001.85001.9000

Ladefinicindelafuncinordenares
Solucin
MATLABdisponedeunafuncindenominadasortquerealizalamismatarea
>>sort([1.651.821.721.751.731.851.901.741.761.77])

Enelcasodetablasbidimensionalesomultidimensionales,podemoselaborarnuestrapropiaversindela
funcinordenar,peroMATLABdisponedelafuncinsortrowsquerealizaestatarea.Porejemplo,queremos
odenarlasiguientetablaprimeropordasydespusportemperaturas
Da
15

Temperatura
21

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

18/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

3
17
21
8

32
15
19
35

>>a=[152133217152119835]
a=
1521
332
1715
2119
835
>>sort(a,1)
ans=
315
819
1521
1732
2135
>>sortrows(a,1)
ans=
332
835
1521
1715
2119
>>sortrows(a,2)
ans=
1715
2119
1521
332
835

Fijarseenlaimportantediferenciaentrelosresultadosdelasllamadasasort(a,1)ysortrows(a,1)
6.7.LosprimerospolinomiosdeLegendreylafrmuladerecurrenciason,respectivamente
P 0 (x) = 1
P 1 (x) = x
P 2 (x) =
P 3 (x) =
P 4 (x) =
P 5 (x) =
P 6 (x) =

1
2
1
2
1
8
1
8

(3x

1)

(5x

3x)
4

(35x

(63x

1
16

30x

70x
6

(231x

+ 3)
+ 15x)
4

315x

+ 105x

5)

...
(n + 1)P n+1 = (2n + 1)xP n nP n1

Defineunafuncinrecursivalegendre(n,x)pararepresentargrficamenteloscincoprimerospolinomiosde
Legendrepara1x1.
Utilizarlafuncinplotpararepresentarcadaunodelospolinomiosconlasiguientesopciones
plot(x,y,color(n),'displayName',num2str(n))
....
legend('DynamicLegend','location','Best')
Definirunvectordecincocolores,color(n)eselelementondedichovector.Losotrosdosparmetrosnos
permitenidentificarcadaunadelascurvasmedianteelcomandolegend.

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

19/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

Solucin
functionres=legendre(n,x)
ifn==0
res=1
elseifn==1
res=x
else
res=((2*(n1)+1)*x*legendre(n1,x)(n1)*legendre(n2,x))/n
end
end

ElscriptpararepresentarlospolinomiosdeLegendre
x=1:0.05:1
y=zeros(length(x),1)
color=['b''g''r''m''k']
holdon
forn=1:5
fori=1:length(x)
y(i)=legendre(n,x(i))
end
plot(x,y,color(n),'displayName',num2str(n))
end
title('PolinomiosdeLegendre')
xlabel('x')
ylabel('y')
legend('DynamicLegend','location','Best')
gridon
holdoff

EnergasRenovablesEUITIdeEibar

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

20/20

You might also like