Sie sind auf Seite 1von 3

Programacin y mtodos numricos tarea 2

Kevin Steven Carrillo Reina


11 de septiembre de 2015

ndice
1. Problema

2. Solucin

3. Cdigos

1.

Problema
El problema consiste en hacer una funcin que haga lo mismo que el comando SORT.
Si definimos un vector x y se necesita ordenar sus componentes, podemos hacer lo siguiente con el vector, aplicando

el comando.
>> x=[4 2 3 7 1 0]
x =
4

>> sort(x)
ans =

2.

Solucin
Para resolver el problema en cuestin, se hicieron dos funciones, de las cuales una es complemento de la otra, es

decir, existe una funcin que hace que la otra funcin pueda llevar a cabo la solucin del problema; especficamente la
funcin solucin que en este caso se llama orden3 y la funcin complemento se llama orden2.
Para ilustrar cmo funcionan ambas funciones, vanse los siguientes ejemplos:
>> x=[4 2 3 7 1 0]
x =
4

>> orden2(x)
ans =

Lo que hace bsicamente esta funcin es averiguar cul es el mnimo del vector x dado, despus intercambiar la
posicin en donde se encuentra el mnimos y la primera posicin, finalmente, considerar el vector obtenido desde la
segunda componente.
El siguiente ejemplo es la aplicacin de la funcin orden3.
orden3(x)
h =
0

7
2

3.

Cdigos
Consideremos primero el cdigo de la funcin orden2.

function l=orden2(x)
z=size(x); (determina el tamao del vector dado)
n=z(2);;

(escoge la segunda componente del vector tamao escogido de un vector fila)

y=min(x);; (determina el mnimo del vector dado x)


for k=1:n
if (x(k)==y)

(si tomadas las componentes del vector desde 1 a n donde n es el

x(k)=x(1);

el tamao del vector, alguna de estas llega a ser igual al mnimo,

x(1)=y;

entonces los valores intercambian sus posiciones y el resultado de

l=x(2:n);

la funcin ser el vector obtenido considerado desde la segunda

end

componente.)

end
El cdigo de la segunda funcin es un poco ms complicado y es como sigue:
function orden3(x)
f=x;;

(asignamos el vector a una variable)

l=orden2(x);;

(evaluamos x en la funcion anterior)

z=size(l);;

(determinamos el tamao de l)

n=z(2);;

(tomamos la segunda componente puesto que estamos considerando un vector fila)

h=zeros(1,n);; (determinamos el vector 0 con la misma longitud que x)


h(1)=min(f);;

(asignamos a la primera componente del vector h (el vector 0) el mnimo de f)

h(2)=min(l);;

(asignamos a la segunda componente del vector h el mnimo de l)

for k=1:(n-1)
h(k+2)=min(orden2(l)); (debido al hecho que ya asignamos dos componentes al vector h que es el
l=orden2(l);

resultante, es necesario sumar 2 a k, para que no cambie ninguno de los valores


anteriormente fijados; de este modo asignamos a la posicin el mnimo de l y
debemos tener en cuenta que el vector que consideramos como l tiene n-1 componentes,

end

luego, al vector l le asignamos el vector orden2(l) lo que no es ms que un ciclo que


termina hasta hacer n-1 pasos.

(muestra finalmente el resultado)

Das könnte Ihnen auch gefallen