Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

jueves, 20 de septiembre de 2012

Tarea 5

En esta semana se trabajo realizando un webservice, para esto utilice PHP y mysql


 El siguiente es el código para la conexión de la base de datos, en donde use mi contraseña.
<?php
$host="localhost";
$user="root";
$password="blanka";
conn= mysql_connect (host, user, password) or die ("<b>No se puede conectar con la base de datos\n</b>\n");
$db="validacion";
if(!(mysql_select_db(db,conn))){
echo "No se puede conectar a la base de datos";
}
?>
view raw conn.php hosted with ❤ by GitHub
Después tenemos lo que es el programa en si, por un lado el usuario podemos generar un challege que seria en este caso un numero random asignado a una variable x, el programa me da la opción de descargar el script, que correremos para poder generar el response. También tenemos que seleccionar el usuario antes de picarle submit.


<?php
require("conn.php");
?>
<html>
<head>
<script>
function generar(inf,sup){
numP = sup - inf;
rnd = Math.random() * numP;
rnd = Math.round(rnd);
document.formulario.challengen.value=parseInt(inf) + rnd;
}
</script>
</head>
<a href="script.py">Descargar script</a>
<form name="formulario" method="POST" action="validar.php" >
<b>Challenge:</b><input type="text" name="challengen"><input type="button" value="Generate" onclick="generar(0,100)">
<br><b>User:</b><select name="user">
<?php
$query="SELECT user FROM users";
result=mysql_query(query,$conn);
while(row=mysql_fetch_array(result)){
echo "<option value='".row["user"]."'>".row["user"]."</option>";
}
?>
</select>
<br><b>Response:</b><input type="text" name="response">
<br><input type="submit" value="submit">
<?php
function f($x){
return (x*7*x);
}
function fastmodexp(x, y, $mod){
$p = 1;
aux = x;
while($y > 0){
if ($y % 2 == 1){
p = (p * aux) % mod;
}
aux = (aux * aux) % mod;
y = y >> 1;
}
return ($p);
}
if(isset(_POST['response']) and isset(_POST['user']) and isset($_POST['challengen'])){
usuario = _POST['user'];
x = _POST['challengen'];
r = _POST['response'];
query="SELECT E,N From users WHERE user = '". usuario."'";
result=mysql_query(query,$conn);
publica = mysql_fetch_array(result);
e = publica["E"];
n = publica["N"];
y = f(x);
num = fastmodexp(r, e, n);
if (y == num){
echo "<strong><h2>Yes, it was ". $usuario ." :)</h2></strong>";
} else {
echo "<strong><h2>No, it wasn't ". $usuario ." :(</h2></strong>";
}
} ?>
</form>
</html>
view raw val.php hosted with ❤ by GitHub
Ahora el codigo del script:
def function(x):
return x*3*11*7
def fastmodexp(x, y, mod):
p = 1
aux = x
while y > 0:
if y % 2 == 1:
p = (p * aux) % mod
aux = (aux * aux) % mod
y = y >> 1
return p
def main():
x = int(raw_input("Dame x: "))
d = int(raw_input("Dame d: "))
n = int(raw_input("Dame n: "))
y = function(x)
r = fastmodexp(y, d, n)
print " r = ",r
main()
view raw script.py hosted with ❤ by GitHub

Código de la base de datos:


-- Database: `validacion`
--
-- --------------------------------------------------------
--
-- Table structure for table `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`user` varchar(50) NOT NULL,
`E` bigint(20) NOT NULL,
`N` bigint(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`user`, `E`, `N`) VALUES
('abraham', 1307909, 14287901),
('pepe', 17, 3233),
('cecy', 59, 5767),
('blanka', 79, 1067);
view raw db.sql hosted with ❤ by GitHub
Capturas de imagenes:

Primero que nada tenemos la interfaz :P, en donde nos da la opción de descargar el script, para poder correrlo.


Ya descargado le picamos en Generate para generar nuestra x que nos salio 38:




Ahora vamos a correr el script y nos pide x, en este caso ponemos la que se nos genero arriba, la d y la n son de la clave privada que esa nos la dieron al momento de crear un usuario en mi caso blanka.



Nos arroja un resultado que es r=response, lo pondremos donde viene la R que significa response.


 Le damos a submit y si soy yo :D




Y por ejemplo si pongo un usuario q no es correcto ya que no tengo sus claves privadas me sale q no soy :P



jueves, 13 de septiembre de 2012

En esta semana trabajamos con rsa,

from Crypto.Util.number import getPrime
from random import uniform
from sys import argv
def test_prime(num):
for i in range(2,num):
if num % i == 0:
return False
return True
def generate_prime():
while True:
num = int(uniform(10,100))
if test_prime(num):
break
return num
#where gcd means greatest common denominator)
def gcd(phi,e):
if phi % e == 0:
return e
else:
return gcd(e, phi%e)
def generate_e(phi):
while True:
e=generate_prime()
if gcd(phi,e)==1:
return e
break
def gcde(a,b):
x, X = 0, 1
y, Y = 1, 0
while(b != 0):
q = a / b
(a, b) = (b, a%b)
(x, X) = (X - q * x, x)
(y, Y) = (Y - q * y, y)
return(X, Y, a)
def inverse_modulo(e,phi):
d,q,gcd =gcde(e,phi)
if gcd == 1:
return (d + phi) % phi
else:
return 0
def keys(username,e,d,n):
r1=open('public_key.txt','w')
r2=open(str(username)+'.txt','w')
r1.write(username + ' ' + str(e) + ' ' + str(n) + '\n')
r2.write(username + ' ' + str(d) + ' ' + str(n) + '\n')
r1.close()
r2.close()
def main():
try:
username=argv[1]
except:
username=raw_input("Username: ")
print 'username', username
#p and q are prime numbers
p=generate_prime()
q=generate_prime()
print 'p', p
print 'q', q
#calculate n
n=p*q
print 'n', n
#calculate the Euler function OB=phi
phi = (p-1)*(q-1)
print 'phi', phi
#We choose a positive integer less than phi
#e must be relatively prime to phi
e = generate_e(phi)
print 'e', e
d=inverse_modulo(e, phi)
print 'd', d
if d<0:
d = d+phi
keys(username,e,d,n)
main()
view raw rsa.py hosted with ❤ by GitHub

Codigo del server:


from random import randint
import socket,sys,pickle
from math import sqrt
def get_password(usuario):
file = open('public_key.txt','r')
for line in archivo.readlines():
if len(line)==0:
continue
lin = line.split()
if lin[0] == usuario:
dates=[int(lin[1]),int(lin[2])]
return dates
else:
line +=1
file.close()
return False
def function(x):
return (x*(xsqrt(4))+2)
def main():
#Function socket.socket creates a socket and returns a socket descripto
#Propierties:
#Address Family: AF_INET(this is IP version 4)
#Type: SOCK_STREAM(this means connection oriented TCP protocol)
socket_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket Created'
host = 'localhost'
port = 8005
socket_s.bind((host,port)) #Se crea la conexion al IP y puerto
print 'Socket bind complete'
socket_s.listen(1)
print 'Socket now listening'
print 'Esperando cliente'
while 1:#loop to serve customers
#wait to accept a connection - blocking call
socket_client, address_client = socket_s.accept()
print 'Connection established...'
print 'La direccion del cliente es: ', address_client
#send the public key over
x = str(randint(1,100))
print 'x' ,x
usuario=socket_client.recv(512)
print 'usuario', usuario
socket_client.send(x)
#socket_client.send(pickle.dumps(rsapublickey))
entrada=True
while entrada:
request = socket_client.recv(512)
dates=get_password(request)
if dates==False:
print 'No eres '
socket_s.close()
client_socket.close()
e=dates[0]
n=dates[1]
y = (int(request)**e)%n
if function(x)==y:
socket_client.send('Welcome...')
else:
socket_client.send('Failure...')
socket_client.close()
main()
view raw server.py hosted with ❤ by GitHub
Código dle client:

import socket
from math import sqrt
def get_password(usuario):
file = open(usuario+'txt','r')
line=file.readlines()
usuario = line[0].split()
file.close()
return usuario
def function(x):
return (x*(xsqrt(4))+2)
def main():
host = 'localhost'
port = 8005
#Function socket.socket creates a socket and returns a socket descriptor
#Propierties:
#Address Family: AF_INET(this is IP version 4)
#Type: SOCK_STREAM(this means connection oriented TCP protocol)
socket_c = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
socket_c.connect((host,port))
print 'Client.'
x=socket_c.recv(512)
print 'x'
rx=int(x)
y=function(rx)
usuario = raw_input("Usuario: ")
dates=get_password(usuario)
if dates==False:
print 'No eres '
socket_c.close()
client_socket.close()
d=dates[0]
n=dates[1]
r =str(pow(y,d) % n)
socket_c.send(usuario)
socket_c.send(r)
s.close()
main()
view raw client.py hosted with ❤ by GitHub


martes, 11 de septiembre de 2012

Reporte 1_


Modelen lo que se controlará en su proyecto grupal y calculen la función de transferencia para la planta.



Descripción:

El proyecto sera controlado por medio de arduino, ya que tenemos un conocimiento más amplio acerca de este, lo que se hara es controlar un motor para que la rueda o el estacionamiento gire, lo que quiere decir que nuestro sistema sera un istema  mecánico de rotación.

El arduino enviara un impulso al motor para que este gire y al momento de que se mueva se movera la rueda, la rueda sufrira un desplazamiento, la fuerza aplicada a la rueda dependera del peso que se concentra en la rueda, que dependera del peso de la cantidad de los autos .

Al mometo  de que el primer coche se estaciona la rueda calcula el peso y lo manda como parametro para saber cual va a hacer la fuerza que el motor aplica sobre ella, para poder hacerla girar.

Función de Transferencia

La función de transferencia de un sistema descrito mediante una ecuación diferencial lineal e invariante con el tiempo se define como el cociente entre la transformada de Laplace de la salida (función de respuesta) y la transformada de Laplace de la entrada (función de excitación) bajo la suposición de que todas las condiciones iniciales son cero.[Texto sacado del libro ]
Link2
Funcion de Transferencia=\mathbf{G\left ( s \right )}=\frac{L[salida]}{L [entrada]}|\textrm{condiciones iniciales cero}

Salida del sistema:

La salida del sistema en este caso es es desplazamiento angular que sufre la rueda del estacionamiento.

Entrada del sistema:

La entrada del sistema seria el impulso enviado por el arduino.


Como la 2da ley de Newtón controla a los sistemas mecánicos, utilizaremos esta formula:

\mathbf{\sum F_{externas}=ma}

pero como es rotacional cambia a:

\mathbf{ F_{t}=ma_{t}=m(r\alpha )}
\mathbf{ F_{r}=ma_{r}=m(\omega ^{2}r)}

Datos:
\omega ^{2} : velocidad angular

\alpha: aceleración angular

Se aplica la primera ley de Newton.

Sistema mecánico:




En este caso x1 = \theta 

Función de trasferencia:

Funcion de Transferencia=\mathbf{G\left ( s \right )}=\frac{L[salida]}{L [entrada]}|\textrm{condiciones iniciales cero}

Y nuestra función de transferencia seria:

\mathbf{G\left ( s \right )}=\frac{\theta (s)}{V(t)}


V(t)= voltaje recibido por el motor

Ahora aplicado a todo el sistema:



 En este caso y2 y x1 = \theta _{1} y \theta _{2}

Aquí sacariamos las fuerzas q actuan sobre cada uno de los cuerpos para poder aplicarles la segunda ley de Newton.

Y para el sistema completo nuestra función de transferencia seria:

\mathbf{G\left ( s \right )}=\frac{\theta _{2} (s)}{U_{2}(s)}


Referencias:

Link1
Link2
Link3




sábado, 1 de septiembre de 2012

Actividad 2: Laboratorio

Transformada inversa de Laplace

Problema B.2.15

Obtenga el desarrollo en fracciones simples de la siguiente función utilizando MATLAB.


F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}


En mi caso yo no utilizare MATLAB sino el programa Octave ya que es con uno de los que estamos trabajando.

Utilizaremos la siguiente función:

\left [ r,p,k,e \right ]= residue\left ( num,den \right )

La cual nos sirve para poder calcular la descomposición de factores simples del cociente del polinomion num(numerador) entre el den(denominador):

r = Son los residuos (numeradores)
p = Son los polos (denominadores)
k = Es el cociente
e = Son los exponentes para cada denominador

Lo que quiere decir:

\frac{num\left ( s \right )}{den\left ( s \right )}= k\left ( s \right )+{\frac{r\left ( 1 \right )}{\left ( s-p\left ( 1 \right ) \right )^{e\left ( 1 \right )}}}+{\frac{r\left ( 2 \right )}{\left ( s-p\left ( 2 \right ) \right )^{e\left ( 2 \right )}}}

Ahora vamonos a octave en nuestra términal, para entrar tecleamos lo siguiente:

blanka@blanka:~$ octave
view raw octave1 hosted with ❤ by GitHub

Ya que estamos dentro de Octave capturamos dos vectores con los coeficientes del numerados y denominador en mi caso yo le llame num(numerados) y den(denominador):

Para poder hacer esto nosotros tenemos que tener la función expresada en un solo polinomio no en varios, pero para no hacerlo tan dificil y tener que estando multiplicando mucho lo que aremos sera usar otra función de octave que realiza esto por nosotros:

conv\left ( p,s \right )

Lo malo es que solo puede realizarse sobre dos polinomios entonces ajustaremos nuestra función dada para que solo sean dos en el caso del numerador y el denominador:

Recuerden que la función es:

F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}

Convertir numerador y denominador, los pasos son los siguientes

Paso 1:

En la parte del numerador juntamos el diez con alguno de los dos binomios para solo tener dos, yo lo hice con el primero binomio \left ( s+2 \right ).



F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}=F\left ( s \right )= \frac{\left ( 10s+20 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}
Paso 2:

Ahora con el denominador, multiplicamos los binomios \left ( s+1 \right )\left ( s+3 \right ) y realizamos el binomio cuadrado perfecto \left ( s+5 \right )^{2}:


F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}=F\left ( s \right )= \frac{\left ( 10s+20 \right )\left (s+4 \right )}{\left ( s^{2}+4s+3 \right )\left ( s{^{2}+10s+25} \right )}

Términando lo anterior pondremos los vectores en la términal, recuerden que solo se ponen los constantes:


octave:1> num = conv([10 20],[1 4]);
octave:2> den = conv([1 4 3],[1 10 25]);
view raw octave 2 hosted with ❤ by GitHub

Utilizamos la función residue para sacar lo que se nos pidio:

octave:3> [r,p,k,e] = residue(num,den)
view raw octave3 hosted with ❤ by GitHub
Nos arrojara lo siguiente en la términal:

























Como vimos es muy fácil obtener el desarrollo de fracciones simples con octave y lo obtenido fue:

F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}={\frac{.9375}{\left ( s+1 \right )}}+{\frac{1.25}{\left ( s+3 \right )}}+\frac{3.75}{\left ( s+5 \right )^{2}}+{\frac{-2.1875}{\left ( s+5 \right )}}

Después obtenga la transformada inversa de Laplace de F\left ( s \right )

Para poder obtener la transformada podemos usar lo que obtuvimos en lo anterior de fracciones simples con octave, primero lo aremos de esta manera y después de la manera larga en donde nosotros tenemos que obtenerlo por fracciones parciales:

Para calcular la transformada inversa necesitaremos la tabla de parejas de transformadas de laplace que viene en el libro que estamos utilizando: Link  (Libro 4ta edición-no vienen algunas páginas):





Tranformada inversa con los datos que nos arrojo octave

F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}={\frac{.9375}{\left ( s+1 \right )}}+{\frac{1.25}{\left ( s+3 \right )}}+\frac{3.75}{\left ( s+5 \right )^{2}}+{\frac{-2.1875}{\left ( s+5 \right )}}

Esto solo se hace en un paso ya teniendo los valores de las fracciones simples lo unico que hacemos es buscar en la tabla el denominador que tienen estas fracciones.

De la tabla las que utilizaremos serán:




Función f(t) Transformada F(s)
e^{-at} \frac{1}{s+a}
te^{-at} \frac{1}{\left ( s+a \right )^{2}}

Como se dan cuenta las fracciones simples que tenemos son como lo que tenemos en la parte de Transformada F(s) en nuestra tabla:

{\frac{.9375}{\left ( s+1 \right )}}-->{\frac{1}{\left ( s+a \right )}}

{\frac{1.25}{\left ( s+3 \right )}}-->{\frac{1}{\left ( s+a \right )}}

{\frac{3.75}{\left ( s+5 \right )^{2}}}-->{\frac{1}{\left ( s+a \right )^{2}}}

{\frac{-2.1875}{\left ( s+5 \right )}}-->{\frac{1}{\left ( s+a \right )}}

Lo unico que hacemos es tomar la Función f(t) que le pertenece a esa Transformada F(s) con sus valores de a indicados.

Ahora sacamos la transformada inversa directamente:

L^{-1}[F\left ( s \right )]=.9375e^{-t}+1.25e^{-5t}+3.75te^{-5t}-2.1875e^{-5t}

Ya terminado lo haremos por la parte larga que ya menciones, donde para ello utilizaremos las fracciones parciales.

Lo primero que haremos sera expresar la función que nos dieron en fracciones parciales:
Recurden que cuando tenemos factores de primer grado repetidos en el denoominador como en nuestro caso \left ( s+5 \right )^{2} , lo que haremos es poner una constante sobre cada raiz disminuyendo en uno el exponente.
La función queda de la siguiente manera:
F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}={\frac{A}{\left ( s+1 \right )}}+{\frac{B}{\left ( s+3 \right )}}+\frac{C}{\left ( s+5 \right )^{2}}+{\frac{D}{\left ( s+5 \right )}}

Pasos para Resolver:

Paso 1

Multiplicamos los miembros de las fracciones parciales por el denominador de la función que se nos dio:

\frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}=\left [ {\frac{A}{\left ( s+1 \right )}}+{\frac{B}{\left ( s+3 \right )}}+\frac{C}{\left ( s+5 \right )^{2}}+{\frac{D}{\left ( s+5 \right )}} \right ]{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}

Paso 2

La multiplicación anterior nos da como resultado:

{10\left ( s+2 \right )\left (s+4 \right )}=A\left ( s+3 \right )\left (s+5 \right )^{2}+B\left ( s+1 \right )\left ( s+5\right )^{2}+C\left ( s+1 \right )\left ( s+3 \right )+D\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )
{10\left ( s+2 \right )\left (s+4 \right )}=A\left ( s+3 \right )\left (s^{2}+10s+25 \right )+B\left ( s+1 \right )\left ( s^{2}+10s+25\right )^{2}+C\left ( s ^{2}+4s+3\right )+D\left ( s+1 \right )\left ( s^{2}+8s+15 \right )\left ( s+5 \right )
{10\left ( s+2 \right )\left (s+4 \right )}=A\left ( s^{3}+13^{2}+55s+75s \right )+B\left ( s^{3}+11s^{2}+35s+25 \right )+C\left ( s ^{2}+4s+3\right )+D\left ( s^{3}+9s^{2}+23s+15 \right )
{10\left ( s+2 \right )\left (s+4 \right )}=As^{3}+13A^{2}+55As+75As + Bs^{3}+11Bs^{2}+35Bs+25B+Cs^{2}+4Cs+3C + Ds^{3}+9Ds^{2}+23Ds+15D
Asosiamos:

{10\left ( s+2 \right )\left (s+4 \right )}=(A+B+D)s^{3}+(13A+11B+C+9D)s^{2}+(55A+35B+4C+23D)s+(75A+25B+3C+15D)

Formamos ecuaciones semejantes y queda:

1- A+B+D=0
2- 13A+11B+C+9D=10
3- 55A+35B+4C+23D=60
4- 75A+25B+3C+15D=80

Paso 3
Resolvemos el siguiente sistema de ecuaciones anterior.

Seleccionamos la primera ecuación y despejamos A.

A+B+D=0
A= -B -D

Ya que tenemos lo que vale A sustituimos  en las otras ecuaciones:

1-.
13A+11B+C+9D=10
13(-B-D)+11B+C+9D=10
 -13B-13D+11B+C+9D=10

 -2B+C-4D=10 <--1
2-.
55A+35B+4C+23D=60
55(-B-D)+35B+4C+23D=60
-55B-55D+35B+4C+23D=60

-20B+4C-32D=60 <--2
3-.
75A+25B+3C+15D=80
75(-B-D)+25B+3C+15D=80
75B+75D+25B+3C+15D=80

-50B-60D+3C=80 <--3


Ya reducidas las ecuaciones y con la primer ecuación trabajaremos con ellas para encontrar los resultados de A,B, C y D:

Paso1

Ecuaciones 1 y 2:

     -2B+C-4D= 10           (4)
     -20B+4C-32D= 60      (-1)
=
     -8B+4C-16D= 40
     20B+32D-4C= -60
  _____________________

     12B+  0 +16D= -20

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.


Ecuaciones 1 y 3:

     -2B+C-4D= 10            (3)
     -50B-+3C+60D=80      (-1)
=
     -6B+3C-12D=  30
     50B-3C+60D= -80
  _____________________

     44B+ 0 +48D= -50


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

Paso 2

Trabajamos con los dos resultados anteriores

12B+16D= -20
44B+48D= -50

Para no trabajar con numeros tan grandes lo que haremos sera dividir entre dos las ecuaciones anteriores:

6B+8D= -10
22B+24D= -25



     6B+8D= -10            (-24)
     22B+24D= -25         (8)
=
     -144B-192D= 240
     176B+192D= -200
  _____________________

      32B+ 0 = 40

      32B= 40
      B= 40/32

      B= 1.25 <--Valor de B encontrado

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

Paso 3

En contramos los demás valores sustituyendo en las ecuaciones.


22B+24D= -25 <-- Fue la ecuación que obtuvimos en el paso anterior, aquí sustutuimos la B ya encontrada para sacar D.

22(1.25)+24D= -25
27.5+24D=-25
24D=-25-27.5
24D= -52.5
D=-52.5/24

D=-2.1875

Obtenemos el valor de A:

A=-B -D
A=-(1.25) -(-2.1875)
A=-1.25+2.1875

A= .9375

Y para finalizar sacamos el valor de C usando la siguiente ecuación:

-2B+C-4D=10
-2(1.25)+C-4(-2.1875)=10
-2.5+C+8.75=10
C=10-8.75+2.5

C=-3.75

Ya obtuvimos todos los valores, ahora sustituimos ese valor en sus lugares respectivos:
F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}={\frac{A}{\left ( s+1 \right )}}+{\frac{B}{\left ( s+3 \right )}}+\frac{C}{\left ( s+5 \right )^{2}}+{\frac{D}{\left ( s+5 \right )}}

=

F\left ( s \right )= \frac{10\left ( s+2 \right )\left (s+4 \right )}{\left ( s+1 \right )\left ( s+3 \right )\left ( s+5 \right )^2}={\frac{.9375}{\left ( s+1 \right )}}+{\frac{1.25}{\left ( s+3 \right )}}+\frac{3.75}{\left ( s+5 \right )^{2}}+{\frac{-2.1875}{\left ( s+5 \right )}}

Si se fijan obtuvimos los mismos valores que nos arrojo octave, entonces solo es de sustituir como anteriormente con l función de f(t) que le pertenece a la transformada de F(s) y da el mismo resultado.


L^{-1}F\left ( s \right )= .9375e^{-t}+1.25e^{-5t}+3.75te^{-5t}-2.1875e^{-5t}


Referencias:
Información de residue y conv: octave