viernes, 20 de noviembre de 2015

Ecuaciones diferenciales, el método de variación de parámetros (ejercicio resuelto).

El método de variación de parámetros se utiliza para dar solución únicamente a ecuaciones diferenciales de primer orden (si no sabes como clasificar una ecuación diferencial, visita nuestra entrada en la sección de calculo y matemáticas), este método, además, solo es aplicable a ecuaciones homogéneas, esto significa que solo es aplicable a ecuaciones diferenciales que están igualadas a cero, lo anterior no es una limitante para el método, pues aún si la ecuación no está igualada a cero, es posible hacer el procedimiento mediante algunos arreglos matemáticos.

El modelo general para las ecuaciones en las que se puede aplicar el método es el siguiente 

Cualquier termino de "y" que pudiera estar a la derecha de la igualdad debe ser enviado hacia la izquierda para poder aplicar el método. 

No hay mejor manera de entender un método que a través de su ejemplificación, así que resolveremos la siguiente ecuación mediante el método que aquí intentamos explicar. 



1.- El primer paso del proceso es verificar si la ecuación diferencial es homogénea, en nuestro caso no lo es, por lo tanto deberemos llevar a cabo un proceso denominado homogeneización, el cual consiste, simplemente en sustituir el lado derecho de la igualdad por cero, la ecuación queda como sigue. Si la ecuación ya es homogénea, simplemente se procede al método de integración directa.



2.- La siguiente parte del proceso es aplicar el método de integración directa en la ecuación, lo cual simplemente consiste en despejar la ecuación de manera que las variables "x" y "y" queden el lados contrarios de la igualdad (el método de integración directa se explica en la entrada "Ecuaciones diferenciales"), posteriormente se integra ambos lados de la ecuación, tal como se muestra a continuación.





Nota: Recuerda que -2 ln x= ln (x)^-2, por lo tanto...


3.- El siguiente paso es despejar la ecuación directamente a la variable "y", en este caso cada lado de la ecuación se convierte en el exponente del numero de Euler, con el objetivo de eliminar el logaritmo natural de la parte izquierda. Recuerda que si realizas un cambio en igual en ambos lados de una ecuación, esta permanece inalterada.




A manera de recomendación, recuerda que si se eleva el numero de Euler a la potencia de una constante, se puede considerar que el numero resultante también será una constante, por lo tanto...
Considerando lo anterior, nuestra ecuación quedaría como sigue


Al hacer un pequeño arreglo matemático, la ecuación queda de la siguiente manera

El siguiente paso del procedimiento es muy importante, ya que se debe hacer una proposición, lo cual solamente significa que realizaremos un cambio de variable, o bien, como el nombre del procedimiento lo indica, una variación de parámetros, esto no implica ningún cambio en los valores. Se realiza con el objetivo marcar la diferencia entre los valores que hemos usado hasta ahora, y los que usaremos en los siguientes pasos, en el paso 6 observaras la razón de este cambio. Lo único que debemos hacer es cambiar la variable "c" por la variable "u". La ecuación queda de la manera siguiente

4.- El siguiente paso puede parecer un tanto confuso, pero intentaremos explicarlo de la mejor manera. Una vez que obtuvimos el valor de y, se procede a derivarlo, lo anterior se lleva a cabo debido a que, como se verá en los siguientes pasos, nuestra intención es sustituir los términos de la ecuación uno, por lo tanto, si en la ecuación uno tenemos una derivada, debemos sustituirlo por un valor equivalente, es decir, otra derivada. En el siguiente paso veremos cual es el objetivo de dicha derivación.


Nota: Observa que en las partes en las que se deriva la constante "u", simplemente se agrega el termino u'. Al hacer algunos arreglos matemáticos a la ecuación anterior, la derivada queda como se muestra a continuación.


Se hace la suma de fracciones y se continúan los arreglos.

5.- Una vez que tienen los valores tanto de y como de y', se procede a sustituirlos en la ecuación número uno, lo cual da como resultado la siguiente ecuación 


Al realizar la operación anterior, obtenemos lo siguiente 

- El proceso anterior es muy importante, se deben eliminar todos los términos de "u" quedando solo el termino de " u' ", si esta eliminación no toma lugar significa que hubo un error en el procedimiento, o que la ecuación diferencial no es de primer orden.


El resto del procedimiento es bastante sencillo, se debe despejar el termino " u' ", y se procede a integrar ambos lados de la ecuación, con el objetivo de obtener el valor de "u".


Nota: La constante de integración debe ser ignorada en esta parte del procedimiento 

6.- El siguiente y ultimo paso del proceso consiste en sustituir el valor recién encontrado de "u" en la ultima ecuación que definimos durante el paso número 3, quedando de la siguiente manera.

El valor final de la variable "y", el objetivo del procedimiento, quedaría como se muestra a continuación.




Si deseas saber más sobre las ecuaciones diferenciales, visita nuestra entrada del mismo nombre en la sección "Calculo y matemáticas". 










jueves, 19 de noviembre de 2015

Método de Müller en MATLAB para encontrar raíces imaginarías.

Este método te permitirá obtener las raices de una ecuación de cualquier grado, este método tiene la ventaja de que, además de obtener el resultado real, también otorga la parte imaginaría del resultado.

Para implementar el método en MATLAB, debes crear un Script que contenga el siguiente código, este será único script que debes correr.

%programa principal método Muller
fun=@(x)(16*x.^4-40*x.^3+5*x.^2+20*x+6) %La parte en negritas es la que debes sustituir
x=[0.5,-0.5,0] %El dominio en el que quieres que los resultados sean gráficados
N=5 %Corresponde al numero de iteraciones, te recomiendo que sea siempre mayor o igual a 5
P=metodoMuller(fun,x,N)

El siguiente será el código que llevará a cabo todo el proceso matemático, debe ser vaciado en un script distinto y guardado en la misma carpeta que el programa principal.

function P=metodoMuller(fun,x,N)
 l=0
 f=0;
  c=fun(x(3))
   b=(((((x(1)-x(3))^2)*(fun(x(2))-fun(x(3))))-((x(2)-x(3))^2)*(fun(x(1))-fun(x(3)))))/((x(1)-x(3))*(x(2)-x(3))*(x(1)-x(2)))
    a=(((((x(2)-x(3)))*(fun(x(1))-fun(x(3))))-((x(1)-x(3)))*(fun(x(2))-fun(x(3)))))/((x(1)-x(3))*(x(2)-x(3))*(x(1)-x(2)))
    x4=(x(3)-((2*c)/((b)+((b/abs(b))*sqrt((b^2)-(4*a*c))))))
%Scienceprocedures.blogspot.mx
    x0=min(x)-1:0.09:max(x)+1
    hold on
    grid on
    plot (x(1),fun(x(1)),'Ok')
    hold on
    plot (x(2),fun(x(2)),'Ok')
    hold on
    plot (x(3),fun(x(3)),'Ok')
    hold on
    plot(x0,fun(x0),'b')
    hold on
for i=1:1:N
    if i==N
         plot (x0,R(x0),'+r')
    hold on
    end
    c=fun(x(3))
   b=(((((x(1)-x(3))^2)*(fun(x(2))-fun(x(3))))-((x(2)-x(3))^2)*(fun(x(1))-fun(x(3)))))/((x(1)-x(3))*(x(2)-x(3))*(x(1)-x(2)))
    a=(((((x(2)-x(3)))*(fun(x(1))-fun(x(3))))-((x(1)-x(3)))*(fun(x(2))-fun(x(3)))))/((x(1)-x(3))*(x(2)-x(3))*(x(1)-x(2)))
    x4=(x(3)-((2*c)/((b)+((b/abs(b))*sqrt((b^2)-(4*a*c))))))
    x(1)=x(2)
    x(2)=x(3)
    x(3)=x4;
          x0=min(x)-1:0.09:max(x)+1
    R=@(x0)((a*((x0-x(3)).^2))+(b*(x0-x(3)))+c)
    C=['k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m',]
    plot (x0,R(x0),C(i))
    hold on
end
P=x(3)
plot (P,R(P),'*r')
end

Nota importante: Ten cuidado al escribir la ecuación cuya raíz deseas encontrar, observa, como en el ejemplo, que es necesario poner un punto antes del signo "^" para que el programa funcione apropiadamente. 
Si piensas utilizar el código anterior para propósitos no académicos, te pido que incluyas un link a esta pagina web.

lunes, 16 de noviembre de 2015

¿Qué es el ADN?

El ADN, una pequeña y, sin embargo, muy importante molécula para la vida, apareció por primera vez en la tierra quizá hace unos 3, 500 millones de años, cuando los primeros organismos vivos unicelulares aparecieron en la tierra.

La función de la molécula de ADN es almacenar información de la manera más eficiente posible, con el objetivo de mantener dicha información de forma casi inalterada el mayor tiempo posible, y digo "casi" por que si el ADN fuera totalmente inalterable no habría lugar para los procesos evolutivos que han permitido el surgimiento de seres cada vez mas complejos. Pero, a todo esto, ¿Para que sirve la información almacenada por el ADN? La información almacenada en esta preciosa molécula contiene las instrucciones necesarias para que la maquinaría celular lleve a cabo el proceso de síntesis de otras moléculas, de gran importancia, llamadas proteínas. Las proteínas son grandes moléculas formadas de aminoácidos, la tarea del ADN es indicar a la célula el orden y la naturaleza de los aminoácidos que deben ser ensamblados, de manera que la proteína resultante sea totalmente funcional, es importante señalar que un cambio en el orden de los aminoácidos puede dar como resultado una proteína anómala, que puede no funcionar de la manera adecuada o incluso llegar a ser peligrosa para la célula. 


Las proteínas son importantes para la supervivencia de la célula porque son los tabiques fundamentales con los que esta está construida, forman parte de las paredes celulares,  del sistema de endomembranas, todos los organelos celulares están constituidos fundamentalmente de proteínas. Son también importantes porque la mayoría de las reacciones químicas que se llevan a cabo en un organismo, como las reacciones llevadas a cabo durante el proceso de respiración celular, solo por dar un ejemplo, son posibles gracias a la intervención de enzimas de naturaleza proteica. 


Ahora bien, ¿Que es el ADN? El ADN es una molécula formada por una doble cadena de desoxirribonucleótidos. Es una molécula increíblemente larga, si pudiéremos extenderla al máximo podría llegar a medir más de dos metros, con un ancho de solamente unos pocos átomos. El tamaño promedio de una célula eucarionte (que posee un núcleo definido) es de aproximadamente 100 nanometros, por lo tanto, la molécula de ADN es empaquetado fuertemente en el interior de la célula al rededor de proteínas llamadas histonas, este empaquetamiento hace posible que una molécula de tales dimensiones pueda estar en el interior de un núcleo celular de tan solo unos pocos nanometros. Al empaquetamiento del ADN al rededor de las histonas se le denomina Cromatina. 
El ADN está formado, como se mencionó antes, por largas cadenas de desoxirribonucleótidos, los cuales son moléculas conformadas por una molécula de azúcar llamada desoxirribosa (de ahí el nombre de " desoxirribonucleotidos"), la cual esta unida por un extremo a un grupo fosfato y por el otro a una base nitrogenada. 
Cada base nitrogenada otorga una identidad química bien definida al nucleótido del que forma parte, las bases nitrogenadas pueden ser Adenina, Timina, Guanina y Citosina. Cuando el ADN está en su forma bicatenaria, la Adenina siempre se une a la Timina , mediante dos puentes de Hidrogeno (una clase de enlace químico), y la Guanina se une a la Citosina, a través de tres puentes de hidrogeno. Esto se dedujo por primera vez después del descubrimiento de la llamada regla de Chargaff, la cual se propuso tras encontrar que las cantidades de Adenina y de Timina en una célula son siempre iguales, así como las cantidades de Guanina y Citosina. 
¿Por que la complementariedad de bases es tan importante? Es importante por que, durante el proceso de replicación del ADN, el cual antecede a la division celular, es necesario copiar toda la información disponible en el genoma, el primer paso es separar las cadenas que conforman el ADN, lo cual es llevado a cabo a través de una enzima llamada Helicasa, una vez hecho esto, otra enzima, denominada ADN polimeraza, es responsable de crear una doble cadena a partir de solo una cadena de nucleotidos, es ahí donde el hecho de que cada base sea obligatoriamente unida con su reciproca hace posible que, a partir de solo una cadena, denominada cadena molde, se genere una segunda cadena de nucleotidos, la ADN polimeraza actúa siguiendo la "complementariedad de bases" para añadir un nucleotido "reciproco" a cada nucleotido presente en la cadena original, produciendose así dos nuevas cadenas de ADN bicatenario, donde, para cada nueva molécula de ADN, una de las cadenas corresponde al ADN original y la otra corresponde a ADN recién sintetizado, es por eso que se dice que la replicaron del ADN es semiconservativaEl proceso replicación del ADN es un tema en si mismo, por lo tanto será explicado más a fondo en posteriores publicaciones. La complementariedad de bases es también útil cuando porciones de una cadena son dañadas, pues es posible reparar la cadena afectada a partir de la información de su cadena complementaria, para ello la célula cuenta con varios sistemas de reparación del ADN los cuales se basan en la recuperación de la información perdida en una cadena a partir de la almacenada en su cadena homologa, entre estos sistemas destaca el sistema de corrección por escisión de basesel sistema de reparación por escisión de nucleotidos, así como el sistema de re-combinación por extremos homólogos, entre algunos otros. De alguna manera, el hecho de tener una molécula de doble cadena sirve como un "respaldo" para la célula, algo parecido a lo que hacemos cuando guardamos nuestra información digital en más de un lugar, lo cual hace posible recuperar la información que por algún motivo ha sido perdida.






Para concluir, es necesario señalar que la importancia del ADN va mucho más allá de su capacidad de almacenar la información necesaria para la síntesis de proteínas, puesto que, hasta ahora, se sabe que solo el 1.5% de genoma humano codifica la información necesaria para la síntesis proteica, el resto corresponde a secuencias genéticas denominadas intrones, se llegó a pensar que los intrones podrían ser secuencias genéticas inservibles, remanentes de nuestros ancestros, sin embargo, cada vez hay mas pruebas de que por lo menos una parte de dicha información es útil para la síntesis de ARN de interferencia, una molecula capaz de regular la síntesis proteica, así como para la síntesis de ARN de transferencia, indispensable durante el proceso de síntesis proteica, hay razones para pensar que los intrones están lejos de ser moléculas inservibles, ya que cada vez es más claro que el ADN es más que la suma de sus partes. 

Bibliografía. 
Starr, C., & Evers, C. (2012). Biology: Today and tomorrow with physiology (4th ed.). Pacific Grove, Calif.: Brooks/Cole

Deja tus preguntas en los comentarios, será un gusto responderlas. 

domingo, 15 de noviembre de 2015

Integración por el método del trapecio en MATLAB




Para implementar el método del trapecio en MATLAB se deben crear los siguientes scripts. El siguiente es solo un base, es posible complementarlo para mejorar la experiencia. 

A continuación se muestra el código que será responsable de desarrollar el proceso

function integral=Metodointegracion(a,b,nintervalos,fun)
ancho=((b-a)/nintervalos) 
integral=0;
for i=(1:nintervalos)
    A=(ancho*fun(a+(i*ancho)));
    B=(ancho*fun(a+(i-1)*ancho));
    integral=(integral+((A+B)/2))
end 
end 


En un script diferente se debe implementar el siguiente código, será el encargado de recibir los datos del usuario. (El codigo tiene los datos de la integral que resolvimos anteriormente)

nintervalos=4;
a=1;
b=5;
fun=@(x)(1./x)
integral=Metodointegracion (a,b,nintervalos,fun)

Nota: Asegúrate de guardar ambos scripts en la misma carpeta, de lo contrario MATLAB lanzará un error. 

Si quieres saber más sobre le procedimiento en papel, revisa nuestra entra de la sección "Métodos numéricos en papel"











Código en MATLAB para desarrollar el método de bisección

El programa responsable del proceso iterativo será el siguiente.

function z=Metbiseccion(a,b,err,fun)
while (abs(b-a)> err);
    fa=fun(a);
    fb=fun(b);
    z=a+((b-a)/2)
    fz=fun(z);
    if(fa*fz<0);
        b=z;
    else
        a=z;
    end
end

En un script distinto se implementará el siguiente código, el cual será el receptor de la ecuación problema.

function y=fun(x);
y=x.^3+4*x.^2-10;  %( aquí es donde debes escribir la ecuación problema)
end

No es estrictamente necesario hacer otro script para la función anterior, ya que se puede hacer uso de funciones simbólicas, por lo tanto sería posible escribir el siguiente código en el programa principal como sustitución para el código anteriormente descrito.
y=@(x.^3+4*x.^2-10)
Si realizas este procedimiento no olvides borrar el "@fun" y tampoco olvides escribir y=@(x.^3+4*x.^2-10) antes de llamar al programa Metbisección.

El programa principal, en un scrpt nuevo, será el siguiente.

err=0.001;
a=1; (Intervalo menor)
b=2; (Intervalo mayor)
z=Metbiseccion(a,b,err,@fun);
x=(1:0.1:2.5); ( este intervalo debe ser sustituido por uno en el cual se piensa que la raíz podría encontrarse)
hold on
plot (x,fun(x))
grid on
plot (z, fun(z), '*')

Recordar que "err" se refiere al margen de error deseado, esto debido a que el método de bisección , como todo método numérico, solo es capaz de aproximar el valor de la raíz con respecto del valor real, por lo tanto siempre habrá un error muy pequeño. Recordar también que  los script deben estar guardados en la misma carpeta, de lo contrario MARLAB marcará error. Sin duda hay muchas maneras para automatizar el código, el código aquí mostrado representa un esqueleto, puedes modificarlo y mejorarlo de la manera que mejor te convenga. 

Si te interesa aprender más sobre el método en lápiz y papel, visita nuestra entrada del método de bisección en la sección de "Métodos numéricos en papel".

sábado, 14 de noviembre de 2015

Método de Gauss-Jordan en MATLAB, solución de sistemas de ecuaciones lineales


Este código te permitirá resolver un sistema de ecuaciones lineales de cualquier tamaño, para comenzar, debes crear un Script en el cual debes vaciar el siguiente código.

%Programa principal, este es el único script que debes correr
A=[1,1,0,3;2,1,-1,1;3,-1,-1,2;-1,2,3,-1]; %Los datos que contiene representan una matriz de 4x4, debes sustituirlos por tus datos propios
B=[4,1,-3,4]'; %Los datos que contiene representan una matriz de 4x1, debes sustituirlos por tus datos propios
x=EliminacionGaussiana(A,B)

Importante: 
A: representa la parte "izquierda" del sistema de ecuaciones, es decir, solo debes añadir los valores que se encuentran antes del signo = para cada ecuación, recuerda que este sistema trabaja en forma matricial. B representa una matriz vertical la cual contiene los resultados de cada una de las ecuaciones, recuerda que el apostrofe que se encuentra despues del ultimo corchete en B, le indica a MATLAB que la matriz es vertical, por lo tanto es muy importante no removerlo.

Posteriormente debes crear un nuevo Script, en el cual se deberá vaciar el siguiente código.

function x=EliminacionGaussiana(A,B)
% A es una matriz de orden NxN
% B es una matriz de orden Nx1
% x es una matraz de orden Nx1 que contiene la solucion de Ax=B
%Scienceprocedures.blogspot.mx
[N N]=size(A);
x=zeros(N,1);
C=zeros (1,N+1);
Aug=[A B];
for q= 1:(N-1)
    [Y,j]=max(abs(Aug(q:N,q)));
    C=Aug(q,:);
    Aug(q,:)=Aug(j+q-1,:);
    Aug(j+q-1,:)=C;
    if Aug(q,q)==0
        'El valor de A es irregular. No hay solucion o no es unica';
        break
    end 
    for k=q+1:N
        m=Aug(k,q)/Aug(q,q);
        Aug(k,q:N+1)=Aug(k,q:N+1)-m*(Aug(q,q:N+1));
    end
    
end
x=resource(Aug(1:N,1:N),Aug(1:N,N+1));
end 

Para continuar, debes crear un tercer Script con el código que se muestra a continuación.

function x=resource(A,B)
n=length(B);
x=zeros(n,1); x(n)=B(n)/A(n,n);
for k=n-1:-1:1
    x(k)=(B(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end 


Consideraciones: Recuerda que debes guardar los tres script en la misma carpeta, de lo contrario no correrán adecuadamente.
El programa principal contiene los datos para resolver un sistema de 4 ecuaciones con cuatro incógnitas a manera de ejemplo para el usuario.





viernes, 13 de noviembre de 2015

Código en MATLAB para implementar el método de interpolación lineal.

Para implementar el método en MATLAB, se debe crear un script que contenga el siguiente código, este será el programa principal, en el cual se deben vaciar los valores de interés, este es el unico programa que se debe correr. El programa contiene los datos del problema que resolvimos en nuestra entrada "Métodos numéricos, ejemplo del método de aproximación lineal".

%Cienciaparacualquiera.blogspot.com
x=[1,4,5,7,9]
y=[2,4,6,7,10]
plot (x,y,'*r')
x0=0:0.1:10
P0=Metododeaproximacion(x,y,x0)
hold on
plot (x0,P0)
grid on
xlabel('x')
ylabel('y')

title('Plot using linear Interpolation method')

En un nuevo script, se debe vaciar el siguiente código, el cual contiene el método numérico, este programa no debe ser corrido, pero debes asegurarte de guardarlo en la misma carpeta que el script anterior.

function P0=Metododeaproximacion(x,y,x0)
s1=0;
s2=0;
s3=0;
p1=0;
p2=0;
p3=0;

for i=1:length(x)
    s1=(s1+(x(i))^2);
     s2=s2+(x(i));
     s3=s3+(x(i)*y(i));
end
s1=s1
s2=s2
s3=s3

for i=1:length(x)
    p1=p1+x(i);
    p2=(length(x));
    p3=p3+(y(i));
end
p1=p1;
p2=p2;
p3=p3;
a=(((p2*s3)-(p3*s2))/((p2*s1)-(s2*p1))) %"a" es el valor de la pendiente (a = slope value)
b=(((p1*s3)-(s1*p3))/((p1*s2)-(s1*p2)))
P0=((a.*x0)+(b))

PI=@(x0)(((a.*x0)+(b)))

Nota: El codigo aquí mostrado solo representa un esqueleto, si necesitas añadirle más funciones, eres libre de hacerlo.

Si quieres aprender más sobre el método, revisa la siguiente entrada
http://cienciaparacualquiera.blogspot.mx/2015/11/metodos-numericos-el-metodo-de.html




Métodos numéricos, ejemplo del método de interpolación lineal.


El problema consiste en encontrar la mejor recta que aproxime a un conjunto de puntos. A continuación se explicará el método y se realizará un ejemplo para mejorar la comprensión del tema.

Primeramente, debemos recordar la ecuación que describe la distancia entre 2 puntos en un plano.


 El método de aproximación hace uso de una variación de la ecuación anterior.

Para poder definir la ecuación de la recta que mejor aproxima a los puntos, debemos conocer los valores de las variables "m" y "b", que serán sustituidos en la siguiente ecuación (la ecuación general de una linea recta). 

Nota: Ambas ecuaciones son iguales, en el ejemplo que se desarrolla más adelante se utilizará la variable "a" en lugar de "m", debes tener muy claro que ambas variables representan la pendiente de la recta, lo único que se hace es cambiar el nombre de la variable. 



Para encontrar los valores desconocidos de "a" y "b", haremos uso de derivadas parciales, esto con el objetivo de obtener un sistema de 2 ecuaciones con 2 incógnitas, de otra manera sería imposible obtener el valor de dos variables desconocidas con una sola ecuación. El sistema se obtiene de la siguiente manera. 


Acomodando los términos, el sistema de ecuaciones queda de la siguiente manera. 


Nota: Te podrías estar preguntando ¿Que le pasó a ese número 2 que estaba en el sistema anterior? 
Observa que, si se despeja cada ecuación, el dos sería enviado al otro lado para dividir al cero, quedando 0/2, recuerda que el resultado de dividir cero entre cualquier otro número es siempre igual a cero. 

Despejando el anterior sistema de ecuaciones, es posible encontrar los valores de a y b. Seguramente hasta ahora no queda lo suficientemente claro el procedimiento, así que la mejor manera de hacer este procedimiento más fácil de entender, es a través de un ejemplo. 

Ejemplo

Propondremos los siguientes cinco puntos, para los cuales deberemos obtener la recta que mejor los describa, a continuación se muestran los puntos y una gráfica de los mismos. (Si quieres implementar el método en MATLAB, visita la siguiente entrada
http://scienceprocedures.blogspot.mx/2015/11/metodos-numericos-el-metodo-de.html)

X= [1,4,5,7,9]
Y=[2,4,6,7,10]




A partir de ahora, separaremos cada una de las ecuaciones anteriores para que la solución del problema sea más sencilla y didáctica. Comenzaremos con la primera ecuación, separandola en partes más pequeñas.

Al sustituir los valores de "x" y "y" para cada "s", las ecuaciones quedan como se muestra a continuación.

A continuación repetiremos el proceso anterior con la segunda ecuación.


Al sustituir los valores de "x" y "y" para cada "s", las ecuaciones quedan como se muestra a continuación.



Ahora, volveremos a escribir las ecuaciones 1 y 2 en los términos de "s" y "z" que acabamos de obtener.


Al sustituir cada valor, se obtiene el siguiente sistema de ecuaciones.

Ahora es posible encontrar los valores de "a" y "b" para completar la ecuación de la recta que mejor se acerca a nuestros puntos. A continuación se resolverá el sistema de ecuaciones 

Con la información recién obtenida, obtenemos que la ecuación que describe la recta que mejor se acerca a los puntos propuestos es:
Nota que el valor de 0.9837 corresponde a la pendiente de la recta.

A continuación se muestra la gráfica de nuestros puntos propuestos junto con la gráfica de la recta encontrada,

X= [1,4,5,7,9]
Y=[2,4,6,7,10]
y=0.9837x+0.6848
Si quieres implementar el método en MATLAB, visita la siguiente entrada
http://cienciaparacualquiera.blogspot.mx/2015/11/metodos-numericos-el-metodo-de.html