Anda di halaman 1dari 7

UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERAS CAMPUS GUANAJUATO

Mtodos Numricos

Edwin Armando Bedolla Montiel

4BM1

Tarea I

7/febrero/2014

RESULTADOS Y CDIGO EXPLICADO


Problema 1 -Cdigo generado.
P=55000; i=0.066; for n=1:5 A=(P*i*(1+i).^n)./(((1+i).^n)-1); disp(A) end

-Explicacin del cdigo.


Para este problema se requera generar los 5 valores de A tomando en cuenta los valores iniciales de P e i, para esto fue necesario generar un ciclo for , el cual, en un rango de 1 hasta 5, tena que tomar los valores iniciales y generar 5 nuevos valores de A. El ciclo for hace que la operacin dentro de este ciclo sea repetido cuantas veces se determine en el rango que se est definiendo, es decir, el rango de 1 a 5. Dentro, la frmula que se determin en el problema se copi tal cual, exceptuando por los puntos antes de los operadores, ya que estos puntos son necesarios porque la filosofa de Scilab es que siempre debe de hacer operaciones matriciales y los puntos antes de los operadores / y ^ son fundamentales para que las operaciones sean escalares y no matriciales. Es importante notar que se agrega la funcin disp() para que, por cada valor que toma n, se imprima en pantalla el valor de A. El cdigo es bastante simple y la frmula no tiene mucho problema en cuanto a ser entendida, pues fue copiada del mismo problema.

-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 definido. v 20. 3. = 41. 6. 1. 10. 33.

Vector ordenado.

ans 1. 3. 6.

= 10. 20. 33. 41.

Problema 3 -Cdigo generado.

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

-Explicacin del cdigo.


El algoritmo describe como se pueden transformar coordenadas cartesianas a polares. El cdigo empieza definiendo la funcin, que se llamar coord_pol() que tomar por entradas la variable x y la y; esta funcin est igualada a la variable t o theta, la letra griega, que es una de las coordenadas polares junto con la r. Despus, se define la coordenada r como la raz cuadrada de la suma de los cuadrados de las coordenadas cartesianas, x y y. Despus, empiezan los condicionales para cada uno de los posibles casos en las coordenadas polares. Cada caso est definido en un condicional if y dependiendo de que se cumpla esta condicin se cumplir la aseveracin que tiene. Por ejemplo, en el primer condicional if se menciona que si la variable x es mayor que 0 y la variable y es mayor o igual a 0 entonces la coordenada theta, o sea, la variable t, ser igual a la tangente inversa del cociente de la variable y y x, y as con cada una de las condiciones. Es importante mencionar que el smbolo de % antes de pi se coloca

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

0 0.7853982 1.5707963 2.3561945 3.1415927 3.9269908 4.712389 5.4977871 0

Anda mungkin juga menyukai