Professional Documents
Culture Documents
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