Mtodos Numricos
4BM1
Tarea I
7/febrero/2014
-Tabla de resultados. n
1 2 3 4 5
A
58630 30251.491 20804.855 16091.168 13270.638
Problema 2 -Cdigo generado. function v = met_burb(v) n=length(v); for i=1:(n-1) for j=2:n if v(j)<v(j-1) then B=v(j); v(j)=v(j-1); v(j-1)=B; end end end endfunction -Explicacin del cdigo.
Para este problema se utiliz el mtodo de burbuja que lo que hace es comparar cada entrada del vector que se pone como variable de entrada y si uno de ellos es mayor, se igualan y entonces se invierten las entradas. Esto se puede ver con claridad en el cdigo. Para empezar, se define una funcin donde se iguale al vector de salida, es decir, el vector ya ordenado; el nombre de la funcin es met_burb y tiene por entrada al vector v, que puede ser cualquier vector de n entradas. Despus, se aprecia que se utiliza la funcin length(), lo cual saca el valor de la longitud del vector, es decir, si el vector tiene 20 entradas y se aplicase la funcin length() se obtendra por resultado 20, esto se iguala a una variable denominada n. Posteriormente se inicia el ciclo, donde el rango de este primer ciclo empieza en 1 y termina en la entrada n -1', esto significa que si el vector tuviese 20 entradas, este ciclo empezara en la posicin 1 y terminara en la posicin 19; luego, dentro de este ciclo va a otro ciclo, que es el ciclo para la siguiente entrada, cabe mencionar que estos ciclos se deben poner pues estos ciclos generan las comparaciones entre ambas entradas y son 2 ciclos porque se comparan siempre 2 entradas, ahora bien, el rango del segundo ciclo es 2 hasta n, es decir, volviendo al ejemplo anterior, si se tuviese el vector con 20 entradas, este ciclo empezara en la entrada 2 y terminara en la entrada 20, esto se hace porque el mtodo burbuja necesita una especie de espacio para que las ent radas se puedan
intercambiar e igualar para que sea posible la ordenacin ascendente. Posteriormente est la condicin de igualacin, donde empieza el if que permite comparar las entradas j y j-1, es decir, en el ejemplo que se ha tomado, la entrada 2 y 1 en el vector de 20 entradas, esta condicin if lo que hace es que, textualmente dice, si la entrada j del vector v es menor que la entrada j-1 del vector v, entonces iguala a la variable B la entrada j, la variable B es una variable temporal que permite que las entradas sean intercambiadas, despus se igualan las entradas j y j-1 y al ltimo se iguala la entrada j-1 a la variable B. Con esto, si la entrada j, en el vector de 20 entradas, fuese 15 y la entrada j-1 fuese 2 se compararan y como 15 es mayor que 2 entonces 2 se iguala a B, luego 15 se iguala a 2 y luego 15 se iguala a B, por lo que 15 quedara en la posicin delante de 2 y ya se estara ordenando ascendentemente. As es como este algoritmo funciona, y los ciclos for terminan hasta que llegue a la ltima entrada del vector.
-Resultado.
Vector ordenado.
ans 1. 3. 6.
function t = coord_pol(x,y) r=sqrt((x^2)+(y^2)) if x>0 & y>=0 then t = atan(y/x); elseif x>0 & y<0 then t = atan(y/x)+2*%pi; elseif x<0 then t = atan(y/x)+ %pi; elseif x==0 & y>0 then t = %pi/2; elseif x==0 & y<0 then t = 3*%pi/2; elseif x==0 & y==0 then t = 0; end disp(r) endfunction
porque Scilab no reconoce a pi como valor numrico si este smbolo no est antes de la palabra pi. Por ltimo se escribe la funcin disp() que permite imprimir la variable r. Es un algoritmo bastante sencillo porque las condiciones y los resultados ya estn determinados.
-Tabla de resultados.
x
1 1 0 -1 -1 -1 0 1 0
y
0 1 1 1 0 -1 -1 -1 0
r
1 1.4142136 1 1.4142136 1 1.4142136 1 1.4142136 0