ejercicios de matlab resueltos

20
14/8/2015 Ejercicios de MATLAB. Parte básica http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html 1/20 Cálculos aritméticos Variables escalares Vectores y matrices Entrada/salida Gráficos bidimensionales Funciones Sentencias condicionales Sentencias iterativas Ejemplos Inicio MATLAB Básico Ejercicios 1.Variables 1.1.Evaluar las siguientes expresiones para el valor dado de x Solución >> 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.La longitud del arco de parábola de la figura es Calcular s para a=12 y b=8 Solución >> a=12; b=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.Un proyectil se dispara con un ángulo θ y una velocidad inicial v 0 . Calcular el alcance horizontal, la altura máxima y el tiempo de vuelo del proyectil, desde que sale hasta que impacta con el suelo θ=60°, v 0 =600 m/s, g=10 m/s 2 . Solución >> th=60; v0=600; g=10; >> x_max=v0^2*sind(2*th)/g

Upload: juanma-rivera-contioso

Post on 16-Aug-2015

567 views

Category:

Documents


18 download

DESCRIPTION

Ejercicios de MATLAB Resueltos

TRANSCRIPT

14/8/2015

Inicio

EjerciciosdeMATLAB.Partebsica

MATLAB

Bsico

Ejercicios

ClculosaritmticosVariablesescalares

1.Variables

VectoresymatricesEntrada/salidaGrficosbidimensionalesFuncionesSentenciascondicionales

1.1.Evaluarlassiguientesexpresionesparaelvalordadodexy =y =y =

1

5

x3

2

x x6

tan xsin xxsin x12(1 x)

, x = 2

, x =

6

13

3(1 x)

, x = 3

Solucin

SentenciasiterativasEjemplos

>>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

1s =

22b + 16a +

2

224a + b + 16a

2

b

ln (8a

)b

Calcularsparaa=12yb=8Solucin>>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,laalturamximayeltiempodevuelodelproyectil,desdequesalehastaqueimpactaconelsuelo=60,v0=600m/s,g=10m/s2.v

xmax =

v

ymax =

20

g

sin(2)

20

2g

tvuelo = 2

2

sinv0g

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.Partebsicax_max=3.1177e+004>>y_max=v0^2*sind(th)^2/(2*g)y_max=1.3500e+004>>t_vuelo=2*v0*sind(th)/gt_vuelo=103.9230

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

kt

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

2.Vectoresymatrices2.1.Crearelvectorquecontengalosnmerosparesentre10ycero.Crearunvectorquecontengalosmltiplosde3entre6y36,ambosinclusive.Solucin>>x=10:2:0x=1086420>>x=6:3:36x=69121518212427303336

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

Solucin>>u=[1,0,3]v=[4,1,2]>>A=[u',v']A=140132>>A=[uv]A=103412>>u.*vans=406>>u./vans=0.250001.5000>>p=u*v'p=10>>th=acosd(p/(norm(u)*norm(v)))th=46.3647

2.3.Seaelvectoru=2:3:18AccederalostresprimeroselementosdelvectoruAccederalsegundo,cuartoysextoelementosdelvectoruAccederalsexto,cuartoysextoelementodelvectoruAccederalostresltimoselementosdelvectoruAccederalprimero,terceroycuartoelementosdelvectoruSolucin

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

2/20

14/8/2015

EjerciciosdeMATLAB.Partebsica>>u=2:3:18u=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,comprobarconMATLABObtenerlamatrizB=A([1,3],[1,3,5:7])conlpizypapelyluego,comprobarconMATLABSolucin>>A=[10:1:4ones(1,7)2:2:14zeros(1,7)]A=10987654111111124681012140000000>>B=A([1,3],[1,3,5:7])B=10865426101214

2.5.CrearestasdosmatricesAyBsininicializarcadaelementodelamatriz,enunasolalneaenlaventanadecomandos1

0

6

234

0

4 2 0

00

5

0

1

3

5

7

9

0

5

10

15

20

20

30

40

50

6

4

2

0

2

10

2

11

25 60 4

EliminarlaltimafiladelaprimeramatrizylaterceracolumnadelasegundamatrizSolucin>>A=[(1:5)',zeros(5,1),(6:2:2)']A=106204302400502>>B=[1:2:110:5:2510:10:606:2:4]B=13579110510152025102030405060642024>>A(end,:)=[]A=13579110510152025102030405060>>B(:,3)=[]B=13791105152025102040506064024

2.6.CrearlamatrizBde56apartirdeunvectorAde30elementosutilizandoelcomandoreshape,yaccederaloselementosmarcadosencolorrojo

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)creaunamatrizmnapartirdeloselementosdelamatrizAquedebetenermnelementos.Solucin>>A=1:30>>B=reshape(A,5,6)B=161116212627121722273813182328491419242951015202530>>B([3,4,5],[4,5])ans=182319242025>>B(2:4,3:5)ans=121722131823141924>>B(2:end,end)ans=27282930>>B(end,3:5)ans=152025

2.7.Sealamatriz

0

2

0

2

3

4

2

3

1

5

1

2

4

3

1

Crearunvectorcolumnadenueveelementosquecontengaloselementosdelaprimera,terceraycuartacolumnaCrearunvectorfiladeochoelementos,quecontengaloselementosdelasugundafilaydelaterceracolumnaCrearunvectorfiladecincoelementosquecontengalosdosltimoselementosdelaltimacolumnaylostresprimeroselementosdelaprimerafila.Solucin>>A=[0,2,3,4,22,3,1,5,10,2,4,3,1]A=023422315102431>>u=[A(:,1)A(:,3)A(:,4)]u=020314453>>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.Partebsicau=11023

2.8.Crearunatabladevaloresdelcosenodelosnguloscomprendidosentre0y180,de30en30gradosngulo03060...

coseno

Solucin>>ang=0:30:180>>y=cosd(ang)>>[ang',y']ans=01.000030.00000.866060.00000.500090.00000120.00000.5000150.00000.8660180.00001.0000

2.9.SeanlasmatricesA = (

1

0

1

4

2

3

) B = (

1

2

3

1

1

2

)

RealizarlassiguientesoperacionesconlpizypapelycomprobarluegoconMATLABA*BT(elsuperndiceTindicatraspuesta)AT*BA.*B(productoelementoaelemento)A./BSolucin>>A=[1,0,14,2,3]A=101423>>B=[1,2,31,1,2]B=123112>>A*B'ans=2110>>A'*Bans=5611224459>>A.*Bans=103426>>A./Bans=1.000000.33334.00002.00001.5000

2.10Seanlasmatrices2

4

1

2

5

0

0

3

5

A = 3

1

5 B = 3

2

7 C = 2

1

0

6

9

6

3

0

1

4

1

4

Comprobarsisonverdaderasofalsasestasafirmaciones:A+(B+C)=(A+B)+C,propiedadasociativa2(A+B)=2A+2Bhttp://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,propiedaddistributivaA*B=B*A,propiedadconmutativa(A*B)T=BT*AT(A*B)*C=A*(B*C)(A+B)T=AT+BT2.11.ResolverelsistemadetresecuacionesmediantelaoperacinX=A\b.dondeAeslamatrizdeloscoeficientes,beselvectordelostrminosindpendientesyXeselvectordelasincgnitas. 4x 2y + 6z = 8 2x + 8y + 2z = 46x + 10y + 3z = 0

4

2

6

2810

6

x

8

2y = 43

z

0

Solucin>>A=[4,2,62,8,26,10,3]A=4262826103>>b=[840]b=840>>X=A\bX=1.80490.29272.6341>>A*Xans=8.00004.00000

2.12.Dadoelvectordedatosu=[5,9,2,4,1,12,7,6,5,8]ElvalormximoyelndicededichoelementoenelvectoruElvalormnimoyelndicededichoelementoenelvectoruLasumadetodosloselementosElproductodetodosloselementosElvalormedioCrearunvectorvapartirdeluperoconloselementosordenadosenordenascendente,utilizandolafuncinsortSolucin>>u=[5,9,2,4,1,12,7,6,5,8]u=59241127658>>[m,k]=max(u)m=12k=6>>[m,k]=min(u)m=1k=5>>sum(u)ans=59>>prod(u)ans=7257600>>mean(u)ans=5.9000>>v=sort(u)v=12455678912

2.13.Crearunatabladevaloresdelafuncin2

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

6/20

14/8/2015

EjerciciosdeMATLAB.Partebsica2

x

2

y =x + 4

paralossiguientesvaloresdex:3,2,1,0,1,2,3Solucin>>x=3:3>>y=(x.^22)./(x+4)>>[x',y']ans=3.00007.00002.00001.00001.00000.333300.50001.00000.20002.00000.33333.00001.0000

2.14.Comprobarquesin xlim

= 1x

x0

Establecerelformatolargoparaexpresarlosnmeroscon15decimales(formatlong)Crearunvectorxcuyoselementosson1,0.1,0.01,0.001,...ycalcularelcocientesin(x)/x.Regresaralformatopordefecto(formatshort)Solucin>>formatlong>>n=0:5>>x=1./10.^n>>y=sin(x)./x>>[x',y']ans=1.0000000000000000.8414709848078970.1000000000000000.9983341664682820.0100000000000000.9999833334166660.0010000000000000.9999998333333420.0001000000000000.9999999983333330.0000100000000000.999999999983333>>formatshort

2.15.Comprobarquelasuma

1

n=1

n

= 1

2

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

2.16.Comprobarquelasuma

n

(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.Partebsicaans=3.141593304503082>>pians=3.141592653589793>>formatshort

2.17.Comprobar

1= 1

4

1+

3

1

5

1+

7

+ ...9

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

3.Grficos3.1LapoblacindeEstadosUnidossepuedemodelarmediantelasiguienteformulay =

1972730001 + e

0.03134(t1913.25)

dondeteseltiempoenaos.HacerungrficoquemuestrelapoblacindeUSAcada10aosdesdeelao1790hastael2000.Crearunscript

Solucin3.2Dibujarlafunciny=3x326x+10,suderivadaprimeraysuderivadasegunda,enelintervalo2x4,enlamismagrficaycondistintoscoloresyestilodelnea.Crearunscript

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

8/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

Solucin3.3Dibujarunacurvacicloide,queenecuacionesparamtricasesx=r(tsint),y=r(tcost),Tomarr=1.5y0t4

Solucin3.4.Dibujarlasuperposicinx1+x2dedosMovimientosArmnicosSimplesdelamismadireccinydistintafrecuenciaenelintervalo0t4,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

Solucin3.5.Tiroparablico

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

12

(g)t

2

Laecuacindelatrayectoriadelmviles2

gy = y0 + x tan

x2

2

2

2 v cos

= y0 + x tan x

0

g

2

2

(1 + tan )

2v

0

Dadoslosdatosdelaalturainicialy0,lavelocidadinicialv0yelngulodetirocalcularelalcancehorizontalyeltiempodevuelodelproyectil,cuandollegaalsueloy=0.Escribirelscriptparabolicoqueproduzcaunagrficasemejantealadelafigura(msabajo)yquerealicelassiguientestareas:1. Establezcamediantecomandosinput,losvaloresdelaalturay0,velocidadinicialv0yngulodetiro2. Determineeltiempodevuelocalculandounadelasracesdelaecuacindesegundogrado3. Calcularelalcance,conocidoeltiempodevuelo4. Representelatrayectoriayladecoreconttulo,etiquetasenelejeXyenelejeY.UtiliceelcomandoaxisparaestabecernuevosvaloresmximosymnimosparaelejeXyparaelejeYdistintosdelosqueMATLABestablecepordefecto5. Utiliceelcomandotext,paraqueaparezaenalgnlugardelagrfica,losdatosdeltiempodevueloydelalcanceEjemplo:Uncandisparaunabaladesdeloaltodeunacantiladode100mdealturaconunavelocidadde46m/shaciendounngulode30porencimadelahorizontal.Tomarg=10m/s2http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/ejercicios/basico/ejercicios_1.html

10/20

14/8/2015

EjerciciosdeMATLAB.Partebsica>>parabolicoaltura:100velocidadinicial:46ngulo:30

Solucin3.6.Tiroparablico3DSedisparaunproyectilconvelocidadde60m/shaciendounngulode30,desdelaventanadelvagndeuntrenenmovimientoalolargodelejeXconvelocidadde20m/s.Tmeseg=10m/s2RepresentarlatrayectoriadelproyectilEcuacionesdelmovimientoay = 0

v = 20 y

y = 20t

ax = 0 vx = 30 3 x = 30 3t2a z = 10vz = 30 10tz = 30t 5t

ComprobarqueElproyectilalcanzalamximaalturacuandovz=0,enelinstantet=3s,laalturaesdezmax=45m.Elproyectilimpactacontraelsuelocuandoz=0,enelinstantet=6s.Enesteinstantelascoordenadasdelpuntodeimpactoson: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

Solucin3.7.Dibujaralfuncinz =

xy2

2

x +y

2

1 x 31 y 4

Solucin3.8.Dibujarlafuncinz = r0 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.Funciones4.1.EscribirunafuncinqueconviertagradosF(Fahrenheit)agradosC(Celsius)deacuerdoconlasiguientefrmula5C =

(F 32)9

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

LadefinicindelafuncingradosF_CesSolucinfunctiongC=gradosF_C(gF)gC=5*(gF32)/9end

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(enelsentidodelasagujasdelreloj)vienedadoporX = x cos y sin {Y = x sin + y cos X(

cos

sin

sin

cos

) = (Y

x)(

)y

Utilizarelcomandocompassparadibujarelvectorposicinr=xi+yjycorrespondienteelvectorgiradoR=Xi+Yjunngulo.>>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.Partebsica1.0000>>holdon>>compass(u(1),u(2))>>compass(v(1),v(2))>>holdoff

DefinimoslafuncinrotacionSolucinfunctionv=rotacion(ang,u)R=[cosd(ang),sind(ang)sind(ang),cosd(ang)]v=R*uend

5.Sentenciascondicionales5.1.Seaelvectorx=[4,0,5,3,0,3,7,1,6]Contarcuantoselementosdelvectorsonpositivos,negativosonulosSolucin>>x=[4,0,5,3,0,3,7,1,6]>>ne=sum(x>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:ElnmerototaldeempleadosElnmerodeempleadosdelaempresacuyossalariossonsuperioresa32000einferioresadichacantidadElsalariomedioporempleadoenlaempresa(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.Partebsicau=0000111>>u.*empleadosans=000040010025>>n_alto=sum(u.*empleados)n_alto=525>>n_bajo=n_empleadosn_alton_bajo=8000>>salario_medio=sum(empleados.*salario)/n_empleadossalario_medio=1.7038e+004

5.3.Crearunscriptquerealicelasiguientetarea:cuandoseproporcionaunamedidadelongitudexpresadaenmm,cm,dm,m,kmseobtienelarespuestadedichamedidaconvertidaam(metros).Porejemplo,medida=50yunidad='cm'aparece0.5m

ElscripteselsiguienteSolucinmedida=50unidad='cm'switch(unidad)case{'km','kilmetro'}y=1000*medidacase{'m','metro'}y=medidacase{'dm','decmetro'}y=medida/10case{'cm','centmetro'}y=medida/100case{'mm','milmetro'}y=medida/1000otherwisedisp(['Unidaddesconocida:',unidad])enddisp([num2str(y),'m'])

5.4.Elrecibodelaelectricidaddelosresidentesenunadeterminadaciudadsecalculadelsiguinetemodo:1. Siseconsumen500Kwhomenoselcosteesde2cntimosporKwh2. Siseconsumenmsde500Kwhyperonomsde1000elcostees10eurosporlosprimeros500Kwhy5cntimosporKwhparaelconsumoqueexcedalos500Kwh3. Siseconsumenmsde1000Kwhelcostees35eurosporlosprimeros1000Kwhy10cntimosporKwhparaelconsumoqueexcedalos1000Kwh4. Lacompaaelctricaincluyeungastofijode5euros,independientedelconsumo.Laslecturasdelcontadordeelectricidaddecincofamiliashasidoelsiguiente:200,500,700,1000,1500Kwh,respectivamente.Mostrarlosresultadosdelclculoendoscolumnas,unadelcosumoylaotradelcostedelaelectricidadconsumida.20095001570025100040150090

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

5.5.Escribirunafuncinqueconviertalascoordendasrectangularesxeyapolaresr,.>>[r,ang]=r_polar(sqrt(3),1)r=2.0000ang=0.5236>>[r,ang]=r_polar(sqrt(3),1)r=2.0000ang=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.Partebsicar=2.0000ang=5.7596

Ladefinicindelafuncinr_polaresSolucinfunction[r,ang]=r_polar(x,y)r=sqrt(x^2+y^2)ang=atan2(y,x)ifang>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.Partebsicaans=0.500000000020280>>sin(pi/6)ans=0.500000000000000>>formatshort

Ladefinicindelafuncinserie_sineslasiguienteSolucinRepetiresteejercicioperoconlafuncincosenoN

cos(x) =

limN

(1)n=0

2n

n

x

(2n)!

6.5.Generarunnmeroaleatorioenteroentre1y10mediantelafuncinrandi.Esteeselnmerosecretoquehayqueadivinar.Utilizarelbuclewhiledelquesesalecuandoelusuariointroducemedianteelcomandoinputelnmerocorrecto.OrientaralusuariosielnmeroquepruebaesmayoromenorqueelnmerosecretoCuleselnmerosecreto?:3EsmspequeoCuleselnmerosecreto?:2EsmspequeoCuleselnmerosecreto?:1Hasacertado

Elscripteselsiguiente:Solucin6.6.Ordenarunalistadenmeros

Paraordenarunalistadenmerosemplearemoselmtododelaburbuja,unmtodotansimplecomopocoeficaz.Secomparaelprimerelemento,ndice0,contodoslosdemselementosdelalista,sielprimerelementoesmayorqueelelementoj,seintercambiansusvalores,siguiendoelprocedimientoexplicadoenlafigura.Secontinuaesteprocedimientocontodosloselementosdelarraymenoselltimo.Lafiguraexplicadeformagrficaesteprocedimiento.CrearunafuncindenominadaordenarquedevuelvaunvectorordenadoenordenascendentecuandoselepasaunvectordedatosdesordenadoLlamamosalafuncinordenarylepasamoselvectordedatosdesordenados:1.651.821.721.751.731.851.901.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

LadefinicindelafuncinordenaresSolucinMATLABdisponedeunafuncindenominadasortquerealizalamismatarea>>sort([1.651.821.721.751.731.851.901.741.761.77])

Enelcasodetablasbidimensionalesomultidimensionales,podemoselaborarnuestrapropiaversindelafuncinordenar,peroMATLABdisponedelafuncinsortrowsquerealizaestatarea.Porejemplo,queremosodenarlasiguientetablaprimeropordasydespusportemperaturasDa15

Temperatura21

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

18/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

317218

32151935

>>a=[152133217152119835]a=152133217152119835>>sort(a,1)ans=315819152117322135>>sortrows(a,1)ans=332835152117152119>>sortrows(a,2)ans=171521191521332835

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

12121818

2

(3x

1)

3

(5x

3x)4

(35x

5

(63x

116

2

30x

3

70x6

(231x

+ 3)+ 15x)4

315x

2

+ 105x

5)

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

Defineunafuncinrecursivalegendre(n,x)pararepresentargrficamenteloscincoprimerospolinomiosdeLegendrepara1x1.Utilizarlafuncinplotpararepresentarcadaunodelospolinomiosconlasiguientesopcionesplot(x,y,color(n),'displayName',num2str(n))....legend('DynamicLegend','location','Best')Definirunvectordecincocolores,color(n)eselelementondedichovector.Losotrosdosparmetrosnospermitenidentificarcadaunadelascurvasmedianteelcomandolegend.

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

19/20

14/8/2015

EjerciciosdeMATLAB.Partebsica

Solucinfunctionres=legendre(n,x)ifn==0res=1elseifn==1res=xelseres=((2*(n1)+1)*x*legendre(n1,x)(n1)*legendre(n2,x))/nendend

ElscriptpararepresentarlospolinomiosdeLegendrex=1:0.05:1y=zeros(length(x),1)color=['b''g''r''m''k']holdonforn=1:5fori=1:length(x)y(i)=legendre(n,x(i))endplot(x,y,color(n),'displayName',num2str(n))endtitle('PolinomiosdeLegendre')xlabel('x')ylabel('y')legend('DynamicLegend','location','Best')gridonholdoff

EnergasRenovablesEUITIdeEibar

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

20/20