Advertisement
tomasfdel

Métodos Práctica 2

Sep 1st, 2017
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scilab 4.27 KB | None | 0 0
  1. //Ejercicio 1
  2. function r = misraices2(poli)
  3.     a = coeff(poli, 2);
  4.     b = coeff(poli, 1);
  5.     c = coeff(poli, 0);
  6.     if b < 0 then
  7.         r(1) = (2*c) / (-b + sqrt(b^2-4*a*c));
  8.         r(2) = (-b + sqrt(b^2-4*a*c)) / (2*a);
  9.     else
  10.         r(1) = (-b - sqrt(b^2-4*a*c)) / (2*a);
  11.         r(2) = (2*c) / (-b - sqrt(b^2-4*a*c));
  12.     end;
  13. endfunction
  14.  
  15. //Ejercicio 2
  16. //Justificación en carpeta
  17. -->0.9222 * 10^4
  18.  ans  =
  19.     9222.  
  20. -->0.9222 * 10^4 + 0
  21.  ans  =
  22.     9222.  
  23. -->0.9222 * 10^4 + 0.9123 * 10^3
  24.  ans  =
  25.     10134.3  
  26. -->0.1013 * 10^4
  27.  ans  =
  28.     1013.  
  29. -->0.1013 * 10^5
  30.  ans  =
  31.     10130.  
  32. -->0.1013 * 10^5 + 0.3244 * 10^3
  33.  ans  =
  34.     10454.4  
  35. -->0.1045 * 10^5
  36.  ans  =
  37.     10450.  
  38. -->0.1045 * 10^5 + 0.2849 * 10^3
  39.  ans  =
  40.     10734.9  
  41. -->resultado1 = 0.1073 * 10^5
  42.  resultado1  =
  43.     10730.
  44. -->0.2849 * 10^3 + 0.3244 * 10 ^ 3
  45.  ans  =
  46.     609.3  
  47. -->0.6093 * 10^3
  48.  ans  =
  49.     609.3  
  50. -->0.6093 * 10^3 + 0.9123 * 10^3
  51.  ans  =
  52.     1521.6  
  53. -->0.1522 * 10 ^ 4
  54.  ans  =
  55.     1522.  
  56. -->0.1522 * 10 ^ 4 + 0.9222 * 10 ^ 4
  57.  ans  =
  58.     10744.  
  59. -->resultado2 = 0.1074 * 10^5
  60.  resultado2  =
  61.     10740
  62. -->resultadoPosta = 9222 + 912.3 + 324.4 + 284.9
  63.  resultadoPosta  =
  64.     10743.6
  65.  
  66.  
  67.  
  68. //Ejercicio 3
  69. //Apartado b
  70. function r = horny(polinomio, valor)
  71.     grado = length(coeff(polinomio))
  72.     r = coeff(polinomio, grado)
  73.     for i = grado-1:-1:0
  74.         r = r * valor + coeff(polinomio, i)
  75.     end
  76. endfunction
  77.  
  78. //Apartado d
  79. function r = horny2(polinomio, valor)
  80.     grado = length(coeff(polinomio))
  81.     r(1) = coeff(polinomio, grado)
  82.     r(2) = coeff(polinomio, grado)
  83.     for i = grado-1:-1:1
  84.         r(1) = r(1) * valor + coeff(polinomio, i)
  85.         r(2) = r(2) * valor + r(1)
  86.     end
  87.     r(1) = r(1) * valor + coeff(polinomio, 0)
  88. endfunction
  89.  
  90.  
  91. //Ejercicio 4
  92. //La introducción de error viene de un método malo, y se va propagando en cada iteración.
  93. function y = aplicar(f,var,x)
  94.     deff("z=F("+var+")","z="+f)
  95.     y = F(x)
  96. endfunction
  97.  
  98. function y = derivame(fun, var, orden, step, valor)
  99.     if orden == 0 then
  100.         y = aplicar(fun, var, valor)
  101.     else
  102.         deff("z = Pepe0("+var+")", "z =" + fun)
  103.         for i=1:orden-1
  104.             deff("z = Pepe"+string(i)+"("+var+")", "z = numderivative(Pepe"+string(i-1)+","+var+","+string(step)+",4)")
  105.         end;
  106.         deff("z = Fin("+var+")", "z = numderivative(Pepe"+string(orden-1)+","+var+","+string(step)+",4)")
  107.         y = Fin(valor)
  108.     end;
  109. endfunction
  110.  
  111.  
  112. function y = MInumderivative(fun, step, valor)
  113.     y = (fun(valor + step) - fun(valor)) / step
  114. endfunction
  115.  
  116.  
  117. function y = MIderivame(fun, var, orden, step, valor)
  118.     if orden == 0 then
  119.         y = aplicar(fun, var, valor)
  120.     else
  121.         deff("z = Pepe0("+var+")", "z =" + fun)
  122.         for i=1:orden-1
  123.             deff("z = Pepe"+string(i)+"("+var+")", "z = MInumderivative(Pepe"+string(i-1)+","+string(step)+","+var+")")
  124.         end;
  125.         deff("z = Fin("+var+")", "z = MInumderivative(Pepe"+string(orden-1)+","+string(step)+","+var+")")
  126.         y = Fin(valor)
  127.     end;
  128. endfunction
  129.  
  130.  
  131.  
  132. //Ejercicio 5
  133. function y = aplicar(f,var,x)
  134.     deff("z=F("+var+")","z="+f)
  135.     y = F(x)
  136. endfunction
  137.  
  138. function y = derivame(fun, var, orden, step, valor)
  139.     if orden == 0 then
  140.         y = aplicar(fun, var, valor)
  141.     else
  142.         deff("z = Pepe0("+var+")", "z =" + fun)
  143.         for i=1:orden-1
  144.             deff("z = Pepe"+string(i)+"("+var+")", "z = numderivative(Pepe"+string(i-1)+","+var+","+string(step)+",4)")
  145.         end;
  146.         deff("z = Fin("+var+")", "z = numderivative(Pepe"+string(orden-1)+","+var+","+string(step)+",4)")
  147.         y = Fin(valor)
  148.     end;
  149. endfunction
  150.  
  151. function y = factorial (n)
  152.     if n == 0 then
  153.         y = 1
  154.     else
  155.         y = n * factorial (n-1)
  156.     end
  157. endfunction
  158.  
  159. function y = taylor(fun, var, inicio, grado, valor)
  160.     deff("z = Funcion("+var+")", "z =" + fun)
  161.     y = Funcion(inicio)
  162.     for i=1:grado
  163.         y = y + (derivame(fun, var, i, 0.01, inicio) * (valor - inicio)**i / factorial(i))
  164.     end  
  165. endfunction
  166.  
  167.  
  168.  
  169.  
  170. // Ejercicio 6
  171. function y = ejercicio6(valor, grado)
  172.     y = 1
  173.     for i = 1:grado
  174.         y = y + valor**i / factorial(i)
  175.     end
  176. endfunction
  177.  
  178. --> ejercicio6(-2,10)
  179.  ans  =
  180.    0.1353792
  181. --> %e**-2
  182.  ans  =
  183.    0.1353353
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement