• No se han encontrado resultados

MATLAB Metodos Numericos y Aplicaciones

N/A
N/A
Protected

Academic year: 2021

Share "MATLAB Metodos Numericos y Aplicaciones"

Copied!
114
0
0

Texto completo

(1)

MATLAB

MATLAB

METODOS NUMERICOS Y APLICACIONES PARA INGENIERIA METODOS NUMERICOS Y APLICACIONES PARA INGENIERIA

DANIEL

DANIEL FLOREZ-ORREGOFLOREZ-ORREGO

Facultad Nacional de Minas Facultad Nacional de Minas Universidad Nacional de Colombia Universidad Nacional de Colombia

Sede Medellín Sede Medellín

2015 2015

(2)

2 2

CONTENIDO

CONTENIDO

1. CAPITULO 1. GRAFICAS DE FUNCIONES EXPLICITAS Y RAICES DE ECUACIONES.

1. CAPITULO 1. GRAFICAS DE FUNCIONES EXPLICITAS Y RAICES DE ECUACIONES.………....……..3 2. CAPITULO 2. SISTEMAS DE ECUACIONES.

2. CAPITULO 2. SISTEMAS DE ECUACIONES.………...…………..19..19 3. CAPITULO 3. REGRESION E INTERPOLACION

3. CAPITULO 3. REGRESION E INTERPOLACION………..………..4141

4. CAPITULO 4. PROBLEMAS DE VALOR INICIAL DE PRIMER ORDEN. 4. CAPITULO 4. PROBLEMAS DE VALOR INICIAL DE PRIMER ORDEN.

……… ..

……….. 61 61 5. CAPITULO 5. PROBLEMAS DE VALOR INICIAL DE SEGUNDO ORDEN ORDEN

5. CAPITULO 5. PROBLEMAS DE VALOR INICIAL DE SEGUNDO ORDEN ORDEN………..……8484 6. CAPITULO 6. PROBLEMAS CON VALOR EN LA FRONTERA

(3)

3 3

CAPITULO 1

CAPITULO 1

GRAFICAS DE FUNCIONES EXPLICITAS Y RAICES DE ECUACIONES GRAFICAS DE FUNCIONES EXPLICITAS Y RAICES DE ECUACIONES

(4)

4 4

1) Para calcular la velocidad límite, en metros por segundo, de una partícula de 2 gramos de masa que desciende verticalmente, se debe resolver la ecuación:

0 10 62 . 19 10 15 . 1 10 4 . 1

5 3/2

5 2

3

v v (1)(1)

a) Represente gráficamente la función en el intervalo:0

 

v 50 SOLUCIÓN

Para graficar la función f   1.4 10    3/2 5 v 1.15 10  5 2  v 19.62 103  , se genera un vector de abscisas en el intervalo dado [0,50], así:

>>v=0:0.5:50;% numero de subdivisiones: 100

El tamaño de paso se determinó a partir de la expresión:h b a N

 

  

 

50 0 100 0.5

Se ingresa en MATLAB la función f como: >>f='1.4e-5.*v.^(3/2)+1.15e-5.*v.^2-19.62e-3'

Luego se llama el comando plot , agregándole un color rojo a la grafica: >>plot(v, eval(f), 'r');gridon

Además, se utilizan los comandos xlabel y ylabel para nombrar los ejes coordenados: >>xlabel('v')

>>ylabel('f(v)')

Lo anterior arroja la gráfica de la Figura 1.

Figura 1. Grafica de f(v) vs. V Figura 1. Grafica de f(v) vs. V 0 5 10 15 20 25 30 35 40 45 50 -0.02 -0.015 -0.01 -0.005 0 0.005 0.01 0.015 v f ( v )

(5)

5 5

b)

b)Determine la velocidad límite por el método de Newton con 4 cifras decimales y redondeo. SOLUCIÓN

Para determinar la velocidad límite se soluciona la ecuación:

0 10 62 . 19 10 15 . 1 10 4 . 1

5 3/2

5 2

3

v v

Por lo tanto debe hallarse la raíz de la función

3 2 5 2 / 3 5 10 62 . 19 10 15 . 1 10 4 . 1

v v f (2)(2)

Según la Figura 1, la raíz se encuentra en el intervalo [35,40]. Usando el método de Newton se realizan varias iteraciones según la expresión(3)(3) hasta obtener la tolerancia esperada:

1 ( ) '( ) i i i i f v v v f v    (3) (3)

Tomando como semilla v0=37, y sabiendo que la derivada de f respecto a vpuede hallarse a partir del comandodiff ::

>>diff('1.4e-5*v^(3/2)+1.15e-5*v^2-19.62e-3') Lo que da como resultado:

>>df(v) /dv = 0.000023*v + 0.000021*v^(1/2)

Seconstruye la Tabla1 haciendo uso de la expresión(3)(3):

Tabla 1. Determinación de la raíz de f en el intervalo [35,40] usando el método de Newton Raphson i

i vvii f(vf(vii)) f ‘(vf ‘(vii) ) vvi+1i+1 0 37.0000 -7.2563E-04 9.7874E-04 37.7414 1 37.7414 6.8015E-06 9.9706E-04 37.7346 2 37.7346 2.1991E-08 9.9690E-04 37.7345 3 37.7345 -7.7699E-08 9.9689E-04 37.7346 4 37.7346 2.1991E-08 9.9690E-04 37.7346 5 37.7346 2.1991E-08 9.9690E-04 37.7346 6 37.7346 2.1991E-08 9.9690E-04 37.7346 7 37.7346 -1.7744E-08 9.9689E-04 37.7346

En la última columna de la Tabla 1 se muestran las diferentes aproximaciones con 4 cifras decimales de la raíz de la funciónf para las diferentes iteraciones. Por lo tanto una buena aproximación del valor de la velocidad límite es:

s m v

37.7346

(6)

6 6

c) Calcule la velocidad límite usandofzero. SOLUCIÓN

Al utilizar el comandofzero para hallar la raíz de la función f , usando como semilla x0= 37, se obtiene:

>>fzero(f,37)=37.7346

Cabe anotar que debió redefinirse la función fcomo una función de x y no de v para utilizar fzero. RUTINA MATLAB

RUTINA MATLAB

Para agilizar la generación de la Tabla 1, puede realizarse una rutina (metodonewton.m) cuyas entradas son la función, la semilla, la tolerancia y el número máximo de iteraciones. Esta rutina arroja como salida la tabla con los valores obtenidos para cada iteración (el valor de la aproximación de la raíz, el valor de la función y la derivada en ese punto, y el error absoluto calculado como la diferencia entre la iteración anterior y la siguiente). Además, puede graficarse ambas, función y derivada, en un intervalo dado.

El código de la rutina aparece a continuación: clear all

clc

display('MÉTODO DE NEWTON-RAPHSON') disp(' ')

disp('Este algoritmo permite hallar las raíces de una función mediante el método de Newton-Raphson.')

disp(' ') format short

disp('Escriba la función entre signos ''') disp(' ')

f=input('f(x)= '); disp(' ')

disp('La derivada de la función f(x) es') disp('df(x)/dx= '),char(diff(f))

dfdx=diff(f);

x0=input('Valor de la aproximación inicial= '); tol=input('Valor de la tolerancia= ');

(7)

7 7

disp(' ')

display('A continuación se muestra la tabla de resultados:') disp(' ')

disp(' i xi f(xi) f´(xi) error absoluto') i=1;

delta=1; x(1)=x0;

while (delta >= tol) && (i < N) x=x(i); fun=eval(f); funpri=eval(dfdx); xnext=x-(fun/funpri); delta=abs(xnext-x); Tab=[i-1,x,fun,funpri,delta]; disp (Tab) i=i+1; x(i)=xnext; end aux=x(i); raiz=x(i);

disp('La mejor aproximación a la raíz es='),raiz

t=input('Para graficar en la bola [raiz-(t*raiz),raiz+(t*raiz)], ingrese 0.1 < t < 5= '); a=aux-t*aux; b=aux+t*aux; Xmin_Xmax=[a,b]; disp(' ') Xmin_Xmax

disp('A continuación se presentan las dos gráficas: f(x) y f''(x) vs x') subplot(1,2,1)

(8)

8 8 xlabel('x') ylabel('f(x)') h=ezplot(f,Xmin_Xmax); set(h, 'Color', 'm') hold on plot(aux,0,'ob') grid on subplot(1,2,2) xlabel('x') ylabel('f''(x)') l=ezplot(dfdx,Xmin_Xmax); set(h, 'Color', 'r') grid on

Figura 1a) Graficas de f (x) y f’(x) creadas mediante la subrutina metodonewton.m 2) Una masa de 1 Kilogramo de CO está contenido en un recipiente a una temperaturaT  215K y a una presiónP 70 bars. Para calcular el volumen específico del gas se usa la ecuación de estado de Van der Waals para un gas no ideal, la cual viene dada por:

P

a v2

v

b

RT / (5)(5) 0 10 20 30 40 50 60 70 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05 0.06 x

1.4e-5 x3/2+1.15e-5 x2-19.62e-3

f ( x ) 0 10 20 30 40 50 60 70 0 2 4 6 8 10 12 14 16 18 20 x 10-4 x 0.000023 x + 0.000021 x1/2 d f ( x ) / d x

(9)

9 9

En la ecuación se tiene que:

kg mol K

m bar R 

0.08314 3/  2 6 463 . 1 bar m kg mol a   kg m b

0.0394 3/

a) Tomando como semilla el volumen específico calculado con la ecuación del gas idealPv RT , resuelva la ecuación usandofzero.

SOLUCIÓN

Calculemos la semilla utilizando la ecuación de gas ideal:

Kg m P RT v 0.255358 3 70 215 08314 . 0    

Ahora, usamos (5)(5) para obtener la ecuación que permite hallar el valor del volumen específico. Se reemplazan los valores conocidos deR ,a,b, Py Ty se despeja de manera conveniente:

(6) (6)

Luego, se define la función fcuyos ceros son la solución de(6):(6):

Para visualizar dicha función con el comando plot , generamos un vector de abscisas: >> v=linspace(0.05,0.3,1000)

Y definimos fasí:

f='((70+(1.463./v.^2)).*(v-0.0394))-0.08314*215' Usando los comandos:

>>plot(v, eval(f),'r');grid on >>xlabel('v')

>>ylabel('f(v)')

Se obtiene la gráfica de la función fdonde puede apreciarse el cero de la función:

2

 

70 1.463  v   v 0.0394 0.08314 215 0

2

 

70 1.463 0.0394 0.08314 215

(10)

10 10

Figura 2. f(v) vs v.

Para hallar el valor de la raíz se utiliza el comando fzero con una semilla igual a 0.2554, y se obtiene:

fzero(f,0.2554)=0.2155m3/Kg b) Usando la función Roots, determine el volumen específico. SOLUCIÓN

Debido a que la función Roots determina las raíces de un polinomio, debemos expresar la ecuación (5)(5) como un polinomio, destruyendo los paréntesis según la ley distributiva y multiplicando a ambos lados de la expresión porv 2 , para finalmente organizar de forma adecuada, dando srcen al polinomio:

(7) (7) Luego, los coeficientes del polinomio son: C1: 70, C2: -20.6331, C3: 1.463, C4: -0.05764

Para utilizar el comandoRoots, se genera un vector con los coeficientes anteriormente mencionados: C=[70, -20.633, 1.463, -0.0576] 0.05 0.1 0.15 0.2 0.25 0.3 -12 -10 -8 -6 -4 -2 0 2 4 6 v f ( v )

3 2 ( ) 70 70(0.0394) 0.08314(215) 1.463 0.0394(1.463) P v

 

v

 

v v

(11)

11 11

Se ejecuta como roots(C), lo que arroja el valor de 3 raíces, dos imaginarias y una real: v

v11=0.2155=0.2155 v2=0.0396 + 0.0474i v3=0.0396 - 0.0474i

De acuerdo al sentido físico, se asume la solución real como el volumen específico: 0.2155m3/Kg. Nótese que es el mismo valor obtenido mediante el comandofzero.

Utilizando el comando plot puede visualizarse la gráfica del polinomio y su cero real: >>v=linspace(-0.2,0.5,1000);

>>plot(v, polyval(C,v),'r') >>xlabel('v')

>>ylabel('P(v)') >>grid on

Nótese el uso del comando polyval(C,v), especial para la representación de polinomios.

Figura 3. P(v) vs v. -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 -2 -1 0 1 2 3 4 5 v P ( v )

(12)

12 12

3) Una mezcla equimolar de monóxido de carbono y oxígeno alcanza el equilibrio a K 300 y a una presión de 5 atmósferas. La reacción química real es:

2 2 2 (1 ) (1 ) 2 1 ) ( x CO x O x CO O CO     

La ecuación de equilibrio químico para determinar la fracción del monóxido de carbono restante x , se escribe como: 1 0 ; ) 1 ( 5 3 ) 1 (       x x x x x K p (8)(8)

SiK p3.06, determine el valor de x usando fzero. SOLUCIÓN

Para determinar el valor de la fracción del monóxido de carbono, x , sabiendo que Kp es igual a 3.06 en la expresión (8)(8), planteamos una funciónc tal que los ceros de f satisfagan la igualdad (8)(8). Dicha función es:

1 0 ; 0 ) 1 ( 5 3 ) 1 ( 06 . 3         x x x x x f (9) (9)

En MATLAB se define así:

>>f='3.06-((1-x)*sqrt(x+3))/(x*sqrt(5*(x+1)))'

Utilizando la rutinafzero con una semilla de x0=0.5, elegido arbitrariamente entre 0 y 1, se encuentra que el cero de f es:

fzero(f,0.5)=0.1930

Es decir, el valor de la fracción de monóxido de carbono restante esx=0.1930x=0.1930. Este valor se obtiene para diferentes semillas utilizadas (x=0.4, 0.7, 1, excepto claramente para x=0)

Usamos los comandos para representar gráficamente la función f : >> x=linspace(0.1,1,1000);

>>plot(x,eval(f),'k') >>grid on >>xlabel('x')

>>ylabel('f(x)')

(13)

13 13

Figura 4. f(x) vs x

4) El coeficiente de fricciónf para el flujo turbulento en un tubo satisface la correlación de Colebrook, la cual establece que:

           f R D e f e 35 . 9 lo g 2 14 . 1 1 10 (10)(10)

En la expresión anterior se tiene que: 4 10 3  e R : Es el número de Reynolds 0025 . 0 

e : Es la rugosidad de la superficie del tubo m

D 10. : Es el diámetro del tubo

a) Escriba la correlación de Colebrook con la información dada. Utilizando la información dada, la ecuación(10)(10) queda:

f f (30000) 35 . 9 1 . 0 0025 . 0 log 2 14 . 1 1 10 (11)(11)

b) Calcule el coeficiente de fricción usando fzero

Para calcular el valor del coeficiente de fricciónf utilizando el comandofzero, primero hacemos un cambio de variable según:

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -4 -3 -2 -1 0 1 2 3 4

x

f f ( ( x x ) )

(14)

14 14

f

x 1 con f 0 (11a)(11a)

Expresamos la ecuación (11)(11) en términos de x. Generamos una función auxiliar g, la cual es igualada a cero. Finalmente determinamos sus raíces con el comandofzero.

0 ) 30000 ( 35 . 9 1 . 0 0025 . 0 log 2 14 . 1 ) ( 10





x x x g (12)(12)

En MATLABg se define g así:

g='x-1.14+2*log10((0.0025/0.1)+(9.35/30000)*x)'

Usando el comando fzero(g,x0) con dos opciones de semilla (X0=0.5 y 0.05) se obtiene el mismo resultado:

x=4.2988 x=4.2988 Hallamos el valor def según el cambio de variable(12):(12):

0541 . 0 ) 2988 . 4 ( 1 1 1 2 2

x f f x

La grafica de la función g y la respectiva raíz se muestran a continuación:

Figura 5. g(x) vs x -10 -5 0 5 10 -15 -10 -5 0 5 10 x g ( x )

(15)

15 15

Lo anterior puede corroborarse en el Diagrama de Moody de la Figura 6:

Figura 6. Diagrama de Moody.

5) El modelo de crecimiento logístico de una población establece que la población en todo instante está regida por la ecuación:

( ) 1 ( / 1) kM t M x t M N e     (13)(13)

En la expresión anterior se tiene que:

M : Es la población de saturación, es decir, el máximo posible de habitantes (en millones) N : Es la cantidad inicial de habitantes (en millones)

k : Es la tasa de crecimiento de la población.

Una población tiene inicialmente 2 millones de habitantes y al cabo de 10 años se espera que se duplique. Si la tasa de crecimiento es numéricamente igual a 2

10 , determine la población de saturación usando fzero.

(16)

16 16

Identificando las condiciones: k = 2 10

N 2 millones

M Incógnita

t 10 años

) 10 ( x 4 millones Rescribimos la expresión(13)(13)

Ahora generamos una función auxiliar f (M), así:

Igualando a cero dicha función y hallando sus raíces determinamos la solución a la ecuación(13).(13). La función es ingresada en MATLAB como:

>>f=’4-(x./((1+(x./2-1).*exp(-1e-1.*x))))’

Utilizando la rutina fzero con una semilla de x0=2e6 se obtiene: fzero(f,2)= 9.8655

Lo cual quiere decir que la población de saturación es de 9’865.500 de habitantes. A continuación se muestra la gráfica de la función f y sus ceros:

Figura 7. f(x) vs x

10 2 10

4 1 / 2 1 M M M e  

10 2 10

4 1 / 2 1 M f    M   M e    -4 -2 0 2 4 6 8 10 12 14 16 -3 -2 -1 0 1 2 3 x f ( x )

(17)

17 17

6) La carga en el capacitor en todo instante en un circuito RLC está regida por la ecuación:

                   t L R LC e CE t q Rt L 2 1 cos ) ( /2 (15)(15)

En la expresión anterior se tiene que:

C : Es la capacitancia del capacitor y se mide en Faradios. E : Es el voltaje de la fuente y se mide en Voltios. R : Es la resistencia del resistor y se mide en Ohmios. L : Es la autoinductancia del inductor y se mide en Henrios. Tomando los datos L

2 H ,C

104 F , E

10V

, determine la resistencia del resistor que se requiere para que la carga, al cabo de 5 milisegundos sea de 100 microculombios.

SOLUCIÓN

Tomando los datos anteriores para la capacitancia, la inductancia y el voltaje, además teniendo en cuenta quet 3 seg

10 5

y queqt 4culombios 10 1 )

(

 la ecuación (15)(15) se expresa así:

4 3 4 ) 2 ( 2 / ) 10 * 5 ( 4 3 10 1 10 5 ) 2 ( 2 ) 10 )( 2 ( 1 cos ) 10 ( 10 ) 10 5 (    3                         e  R q R

Según lo cual se obtiene finalmente:

4 3 4 4 / 10 * 5 3 10 * 1 10 * 5 4 10 * 2 1 cos 10  3

e R R

Simplificando más aun la expresión anterior:

1 10 * 5 4 10 * 2 1 cos 10 3 4 4 / 10 * 5 3

    R e R (16) (16)

Generamos una funcióng(R) tal que los ceros de dicha función satisfagan la ecuación(16)(16), así:

1 10 * 5 4 10 * 2 1 cos 10 ) ( 3 4 4 / 10 * 5 3

    R e R g R

En MATLAB definimosg así:

(18)

18 18

Utilizando la función fzeros(g, x0) y usando como semilla x0=0.5, 0.05 y 2, se llega al mismo resultado que indica que la resistencia es igual a:

R=1.7957e+0031.7957e+003 Ohmios La grafica de la funcióng se muestra a continuación:

Figura 8. g(x) vs x 1400 1500 1600 1700 1800 1900 2000 2100 2200 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 x g ( x )

(19)

19 19

CAPITULO 2

CAPITULO 2

SISTEMAS DE ECUACIONES SISTEMAS DE ECUACIONES

(20)

20 20

1) Un polinomio de variable compleja viene dado por:

C a a z a z a z a z a z P i n n n n         ... ; ) ( 2 1 0 2 1 1

El polinomio se puede expresar mediante su parte real y su parte imaginaria haciendoz   x jy , así: ) , ( ) , ( ) ( x jy u x y jv x y P   

A partir del teorema fundamental del álgebra se puede concluir que un polinomio de gradonn tiene

exactamenten raíces en el campo de los complejos. Las raíces se calculan resolviendo el sistema de ecuaciones no lineales:      0 ) , ( 0 ) , ( y x v y x u

Con base en lo presentado, dado el polinomio de tercer grado:

2 3

2 3 3 6 ) ( 3 2 j z j z j z j z P

a) Exprese el polinomio mediante su parte real y su parte imaginaria.

SOLUCIÓN

Sabiendo que z x jy

 

Primero desglosamos todo el polinomio:

3 3 2 ( ) 2 3 2 3 3 6 P z

 

z j z

  

j z j z j y reemplazamos el valor de z : 3 3 2 ( ) 2( ) 3( ) 2( ) 3( ) 3 6 P z

  

x jy

 

j x jy

 

j x jy

  

j x jy j Se desarrollan los binomios y se distribuyen los coeficientes, obteniéndose:

3 2 2 3 3 2 2 3 2 2 ( , ) 2 6 6 3 9 9 3 2 4 2 3 3 3 6 P x jy x j x y xy jy j x x y j xy y j x xy j y j x y j

 

 

  

 

 

   

Parte real

 

3 2 2 3 Re P 2 6

 

x 9

xy 3 4

   

x y 3 3y xy y Parte imaginaria

 

2 3 3 2 2 2 Im P 6

x y y

  

3 9 x

 

2 2 3 6xy

 

x y x

(21)

21 21

b) Represente gráficamente el sistema

SOLUCIÓN

Para representar gráficamente el sistema hacemos

 

3 2 2 3 ( , ) Re 2 6 9 3 4 3 3 F x y

P

      

x xy x y y xy y

 

2 3 3 2 2 2 ( , ) Im 6 3 9 2 2 3 6 G x y

P x y y

      

x xy x y x Se ingresan las funciones F y G en MATLAB como: F='2*x^3-6*x*y^2-9*x^2*y+3*y^3+4*x*y-3*y-3' G='6*x^2*y-y^3+3*x^3-9*x*y^2-2*x^2+2*y^2+3*x-6'

Se grafican ambas con el comandoezplot y se le da el color a cada gráfica con el comandoset y la propiedadcolor , así:

h=ezplot(F);set(h, 'Color', 'm')% color magenta

hold on, grid on

l=ezplot(G); set(l, 'Color', 'b')% color azul

La gráfica del sistema se muestra a continuación. Se señalan los puntos de intercepción entre las curvas F(x,y)=0 y G(x,y)=0

Figura 1.

Figura 1. Gráfica del sistema F(x,y)=0 y G(x,y)=0

-6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6 x y F F G G

(22)

22 22

c) Determine las tres raíces por el método de Newton.

SOLUCIÓN

Para hallar las raíces por el método de Newton, generamos un código como el que se presenta a continuación:

clearall

clc

symsxy

n=input('Ingrese el número de iteraciones, n=');

F=input('Ingrese la función F=');

G=input('Ingrese la función G=');

xi=input('Ingrese la semilla para x=');

yi=input('Ingrese la semilla para y=');

Fx=diff(F,x); Fy=diff(F,y); Gx=diff(G,x); Gy=diff(G,y); X(1)=xi; Y(1)=yi; for k=1:n x=X(k); y=Y(k); H(k)=eval(Fx)*eval(Gy)-eval(Gx)*eval(Fy); Hx(k)=eval(F)*eval(Gy)-eval(G)*eval(Fy); Hy(k)=eval(Fx)*eval(G)-eval(Gx)*eval(F); Dx(k)=Hx(k)/H(k); Dy(k)=Hy(k)/H(k); X(k+1)=X(k)-Dx(k); Y(k+1)=Y(k)-Dy(k);

(23)

23 23

end

[X',Y']

Como se mencionó anteriormente, F y G se definen respectivamente: F='2*x^3-6*x*y^2-9*x^2*y+3*y^3+4*x*y-3*y-3'

G='6*x^2*y-y^3+3*x^3-9*x*y^2-2*x^2+2*y^2+3*x-6'

Para hallar cada una de las tres raíces, deben ingresarse tres semillas. La convergencia, que por sí ya es rápida con este método, se acelera más aún seleccionando una semilla cercana a la raíz Para una semilla (X0,Y0) =(-0.35,1.3) se obtiene una aproximación a la raíz(X,Y)(X,Y)11=(-0.3445,1.3051)=(-0.3445,1.3051) Los resultados en MATLAB son:

Ingrese el número de iteraciones, n=5

Ingrese la función F='2*x^3-6*x*y^2-9*x^2*y+3*y^3+4*x*y-3*y-3' Ingrese la función G='6*x^2*y-y^3+3*x^3-9*x*y^2-2*x^2+2*y^2+3*x-6' Ingrese la semilla para x=-0.35

Ingrese la semilla para y=1.3

-0.3500 1.3000

-0.3444 1.3051

-0.3445 1.3051

-0.3445 1.3051

-0.3445 1.3051

Para una semilla (X0,Y0)=(-0.35,-1.3)se obtiene una aproximación(X,Y)(X,Y)22=(-0.2726,-1.1594)=(-0.2726,-1.1594)

-0.3500 -1.3000

-0.2816 -1.1742

-0.2727 -1.1595

-0.2726 -1.1594

-0.2726 -1.1594

(24)

24 24 1.1900 0.0200 1.1861 0.0303 1.1862 0.0304 1.1862 0.0304 1.1862 0.0304

Luego, las tres raíces deP , calculadas como los puntos donde se cortan las curvas F y G, son:

r 1=-0.3445+j1.3051 r 2=-0.2726-j1.1594 r 3=1.1862+j0.0304

d) Halle las raíces de manera directa usando roots

2

i*3,

i*2,i*3,

3

i*6

y compare

Para usar el comando Roots, se debe formar un vector con los coeficientes del polinomioP :

     

3 2

(

) 2 3 2 3 3 6

P z

 

j z

 

j z

  

j z j

De acuerdo a lo anterior, definimos un vector C, que contenga los coeficientes del polinomio (en MATLAB se usa i en vez de j):

2 *3, *2, *3, 3 *6 C

  

j j j j

 

Aplicando el comando, se obtiene:

C=[2+i*3,-i*2,i*3,-3-i*6]; roots(C)

Los dos primeros valores resultan diferentes de los hallados mediante el método de Newton, aunque del mismo orden de magnitud.

2) Considere el sistema de ecuaciones:

             4 2 1 2 2 2 z y x z y x z y x -0.4679 + 1.3467i -0.2568 - 1.0694i 1.1862 + 0.0304i

(25)

25 25

a) Elimine la variablez y represente gráficamente el sistema resultante.

SOLUCIÓN:

Eliminamos la variable z, igualando las dos primeras y las dos últimas ecuaciones, y se obtiene:

2 2 2 2 2 1 1 2 2 2 4 4 z x y x y x y z x y x y x y z x y                          

Para representar gráficamente el sistema, definimos sendas funciones F y G, ó F y H, así:

2 2 ( , ) 1 2 F x y

     

x y x y 2 2 ( , ) 2 4 ) , ( 2 4 G x y x y

     

x y ó H x y x y

     

x y Se utilizan los comandos:

f=ezplot(F); set(f,'Color','m'),hold on,grid on g=ezplot(G); set(g,'Color','b'),hold on,grid on

h=ezplot(H); set(h,'Color','r'),hold on,grid on, axis([-4 4 -4 4])

Figura 2.

Figura 2. Gráfica del sistemaF(x,y)=0,G(x,y)=0 yF(x,y)=0,H(x,y)=0

-4 -3 -2 -1 0 1 2 3 4 -4 -3 -2 -1 0 1 2 3 4 x y H H G G F F

(26)

26 26

Otro modo de representar gráficamente:

Otro modo de representar gráficamente: Eliminando la variable z, despejándola de la primera ecuación: 2

1

z

  

x y y reemplazándola en la segunda y la tercera ecuación) se obtiene:

2 2 2 2 1 2 1 4 x y x y x y x y          

Para representar gráficamente el sistema, definimos dos funciones F y G, así:

2 2 2 2 ( , ) 1 2 ( , ) 1 4 F x y x y x y G x y x y x y             Se ingresan las funciones F y G en MATLAB como: F='x+y^2-(1-x^2-y)-2'

G='x-y+(1-x^2-y)^2-4'

Se grafican ambas con el comandoezplot y se le da el color a cada gráfica con el comandoset y la propiedadcolor , así:

h=ezplot(F);set(h, 'Color', 'm')% color magenta

hold on, grid on

l=ezplot(G); set(l, 'Color', 'b')% color azul

axis([-4 4 -4 4])

La gráfica del sistema se muestra a continuación. Se señalan los puntos de intercepción entre las curvas F(x,y)=0 y G(x,y)=0.

(27)

27 27

Figura 3.

Figura 3. Gráfica del sistema F(x,y)=0 y G(x,y)=0 b) Determine todas las raíces usando el método de Gauss-Seidel.

SOLUCIÓN:

Para resolver el sistema de ecuaciones usando el método de Gauss-Seidel, debe despejarse la variable x de la primera ecuación, la variabley de la segunda, y la variablez de la tercera, así:

1 2 3 ( , ) 1 1 0 ,, ( , ) 2 2 0 ,, ( , ) 4 4 0 ,, g y z x y z y z para x y z g x z y x z x z para x y z g x y z x y x y para x y z                              

Y asignar los superíndices de forma que siempre se use el valor más reciente de cada variable en cada iteración: 1 1 1 1 1 1 1 2 4 k k k k k k k k k x y z y x z z x y               

Para determinar las raíces usando el método de Gauss Seidel se utiliza el siguiente código en MATLAB: clearall -4 -3 -2 -1 0 1 2 3 4 -4 -3 -2 -1 0 1 2 3 4 x y G G F F

(28)

28 28

clc

% Método de Gauss Seidel

% Solución de un sistema de orden tres diagonalmente dominante % x=g1(y,z); y=g2(x,z); z=g3(x,y)

n=input('Ingrese el número de iteraciones=');

g1=input('Ingrese la función g1(y,z)=');

g2=input('Ingrese la función g2(x,z)=');

g3=input('Ingrese la función g3(x,y)=');

xi=input('Ingrese el valor semilla para x=');

yi=input('Ingrese el valor semilla para y=');

zi=input('Ingrese el valor semilla para z=');

% Se genera una matriz M cuya primera columna es la semilla

M(1,1)=xi; M(2,1)=yi; M(3,1)=zi; for k=1:n; x=M(1,k); y=M(2,k); z=M(3,k); M(1,k+1) = eval(g1); x=M(1,k+1); M(2,k+1) = eval(g2); y=M(2,k+1); M(3,k+1) = eval(g3); end M'

Selección de las semillas:

Selección de las semillas: Nótese que, según la Figura 2 (ó Figura 3), hay una o dos raíces cerca de los siguientes puntos:

(x,y) (x,y)00

1

(29)

29 29

(x,y) (x,y)00

2

2=(-2.3,-1.3)III cuadranteIII cuadrante x<0 yy<0 (x,y)

(x,y)00 3

3=(1.3,-1.5)IV cuadranteIV cuadrante x>0 yy<0

A partir del análisis anterior se determinan los signos que deben llevar las funcionesg 1, g 2 , g 3, para

obtener cada una de las raíces, mediante el código de Gauss Seidel:

 Para x<0 yy>0,el sistema es:

1 2 3 ( , ) 1 ( , ) 2 ( , ) 4 g y z x y z g x z y x z g x y z x y               

Se ha comprobado que para z>0 el sistema no converge en los reales. Pero si se escoge z<0, el sistema converge en los reales. La semilla paraz se obtiene a partir de la funcióng 3 así:

4 4 ( 1.7) 1 2.5884 2.6 z

          

x y

 

. Luego la semilla es: (x,y,z) (x,y,z)00

1

1=(-1.7,1.0,-2.6)

A continuación se presentan los resultados de la iteración:

Ingrese el número de iteraciones=9 Ingrese la función g1(y,z)='-sqrt(1-y-z)' Ingrese la función g2(x,z)='sqrt(2-x+z)' Ingrese la función g3(x,y)='-sqrt(4-x+y)' Ingrese el valor semilla para x=-1.7 Ingrese el valor semilla para y=1.0 Ingrese el valor semilla para z=-2.6

-1.7000 1.0000 -2.6000 -1.6125 1.0062 -2.5727 -1.6020 1.0146 -2.5723 -1.5993 1.0134 -2.5715 -1.5994 1.0138 -2.5716 -1.5993 1.0137 -2.5716 -1.5993 1.0138 -2.5716

(30)

30 30

-1.5993 1.0138 -2.5716

-1.5993 1.0138 -2.5716

Por lo anterior, una aproximación numérica a la raíz es(x,y,z)(x,y,z)11=(-1.5993,1.0138,-2.5716)

 Para x<0 yy<0,el sistema es:

1 2 3 ( , ) 1 ( , ) 2 ( , ) 4 g y z x y z g x z y x z g x y z x y                z>0 z>0 (x,y) (x,y)00 2 2 ==(-2.3,-1.3) 4 4 ( 2.3) ( 1.3) 2 .24 z

         

x y

La semilla será(x,y,z)(x,y,z)00

2

2 ==(-2.3,-1.3,2.24) Ingrese el número de iteraciones=9 Ingrese la función g1(x,y)='-sqrt(1-y-z)' Ingrese la función g1(x,y)='-sqrt(2-x+z)' Ingrese la función g3(x,y)='sqrt(4-x+y)' Ingrese el valor semilla para x=-2.3 Ingrese el valor semilla para y=-1.3 Ingrese el valor semilla para z=2.24

-2.3000 -1.3000 2.2400 -0.2449 -2.1178 1.4585 -1.2881 -2.1787 1.7634 -1.1897 -2.2255 1.7217 -1.2263 -2.2244 1.7326 -1.2214 -2.2258 1.7308 -1.2227 -2.2256 1.7312 -1.2225 -2.2257 1.7311 -1.2225 -2.2257 1.7311 z<0 z<0 (x,y) (x,y)00 2 2 ==(-2.3,-1.3) 4 4 ( 2.3) ( 1.3) 2.24 z

         

x y

 

La semilla será(x,y,z)(x,y,z)00

2

2 ==(-2.3,-1.3,-2.24) Ingrese el número de iteraciones=9 Ingrese la función g1(y,z)='-sqrt(1-y-z)' Ingrese la función g2(x,z)='-sqrt(2-x+z)' Ingrese la función g3(x,y)='-sqrt(4-x+y)' Ingrese el valor semilla para x=-2.3 Ingrese el valor semilla para y=-1.3 Ingrese el valor semilla para z=-2.24

-2.3000 -1.3000 -2.2400 -2.1307 -1.3750 -2.1808 -2.1344 -1.3977 -2.1764 -2.1387 -1.4008 -2.1767 -2.1395 -1.4010 -2.1768 -2.1396 -1.4010 -2.1768 -2.1396 -1.4010 -2.1768 -2.1396 -1.4010 -2.1768 -2.1396 -1.4010 -2.1768

Por lo anterior, una aproximación numérica a dos de las raíces,es: (x,y,z)

(x,y,z)22=(-1.2225,-2.2257,1.7311) y(x,y,z)(x,y,z)33=(-2.1396,-1.4010,-2.1768)

 Finalmente, para x>0 yy<0,el sistema se plantea como sigue:

1 2 3 ( , ) 1 ( , ) 2 ( , ) 4 g y z x y z g x z y x z g x y z x y               

(31)

31 31

Se ha comprobado que para z<0 el sistema no converge en los reales. Pero si se escoge z>0, el sistema converge en los reales. La semilla paraz se obtiene a partir de la funcióng 3 así:

4 4 (1.3) ( 1.5) 1.0954 1.1 z

      

x y

  

Luego la semilla es: (x,y,z) (x,y,z)00 3

3=(1.3,-1.5,1.1)

A continuación se presentan los resultados de la iteración:

Ingrese el número de iteraciones=10 Ingrese la función g1(y,z)='sqrt(1-y-z)' Ingrese la función g2(x,z)='-sqrt(2-x+z)' Ingrese la función g3(x,y)='sqrt(4-x+y)' Ingrese el valor semilla para x=1.3 Ingrese el valor semilla para y=-1.5 Ingrese el valor semilla para z=1.1

1.3000 -1.5000 1.1000 1.1832 -1.3845 1.1968 1.0898 -1.4515 1.2077 1.1153 -1.4465 1.1992 1.1168 -1.4431 1.2000 1.1149 -1.4440 1.2005 1.1151 -1.4441 1.2003 1.1152 -1.4440 1.2003 1.1152 -1.4440 1.2003 1.1152 -1.4440 1.2003

Por lo anterior, una aproximación numérica a la raíz es(x,y,z)(x,y,z)44==(1.1152,-1.4440,1.2003)

Puede verificarse que la norma euclidiana del gradiente de cada una de las funciones en las inmediaciones de la solución es menor a 1. Hallamos pues los gradientes:

1 1 1 1 1 2 1 2 1 y z y z g g g y   z  y z  y z              

(32)

32 32 1 1 2 2 g x

   

2 2 2 1 1 2 2 2 2 x z x z g g g x   z  x z  x z               2 1 2 2 g y

   

3 3 3 1 1 2 4 2 4 x y x y g g g x y x y x y                  3 1 2 2 g z

   

c) Determine todas las raíces por el método de Newton

Para determinar las raíces por medio del método de Newton, planteamos el siguiente sistema de ecuaciones:

2 2 2 2 ( , ) 1 2 ( , ) 1 4 F x y x y x y G x y x y x y            

El cual se obtiene a partir del sistema de 3x3 planteado en el enunciado, despejando la variablez ,

2

1

z

  

x y, de la primera ecuación y reemplazándola en las otras dos ecuaciones. En MATLAB se definen como:

F='x+y^2-(1-x^2-y)-2' G='x-y+(1-x^2-y)^2-4'

Mediante el siguiente algoritmo, teniendo en cuenta semillas adecuadas, encontramos los valores para x, y :

clearall

clc

symsxy

n=input('Ingrese el número de iteraciones, n=');

F=input('Ingrese la función F=');

G=input('Ingrese la función G=');

(33)

33 33

yi=input('Ingrese la semilla para y=');

Fx=diff(F,x); Fy=diff(F,y); Gx=diff(G,x); Gy=diff(G,y); X(1)=xi; Y(1)=yi; for k=1:n x=X(k); y=Y(k); H(k)=eval(Fx)*eval(Gy)-eval(Gx)*eval(Fy); Hx(k)=eval(F)*eval(Gy)-eval(G)*eval(Fy); Hy(k)=eval(Fx)*eval(G)-eval(Gx)*eval(F); Dx(k)=Hx(k)/H(k); Dy(k)=Hy(k)/H(k); X(k+1)=X(k)-Dx(k); Y(k+1)=Y(k)-Dy(k); end [X',Y']

Utilizamos las siguientes semillas y obtenemos valores para cada raíz:

 (x,y)(x,y)0011= (-1.7,1.0), II cuadrante II cuadrante x<0 yy>0

Ingrese el número de iteraciones, n=6 Ingrese la función F='x+y^2-(1-x^2-y)-2' Ingrese la función G='x-y+(1-x^2-y)^2-4' Ingrese la semilla para x=-1.7

(34)

34 34 -1.7000 1.0000 -1.6090 1.0095 -1.5994 1.0137 -1.5993 1.0138 -1.5993 1.0138 -1.5993 1.0138

El valor de z se determina a partir de la expresión:

Luego, una aproximación numérica a la raíz es:(x,y,z)(x,y,z)11==(-1.5993,1.0138,-2.5715)

 (x,y)(x,y)0022= (-2.3,-1.3) III cuadranteIII cuadrante x<0 yy<0

Ingrese el número de iteraciones, n=6 Ingrese la función F='x+y^2-(1-x^2-y)-2' Ingrese la función G='x-y+(1-x^2-y)^2-4' Ingrese la semilla para x=-2.3

Ingrese la semilla para y=-1.3

-2.3000 -1.3000 -2.1642 -1.3681 -2.1406 -1.4001 -2.1396 -1.4010 -2.1396 -1.4010 -2.1396 -1.4010

El valor de z se determina a partir de la expresión:

2 2 1 1 ( 1.5993) (1.0138) 2.5715 z

     

x y

2 2 1 1 ( 2.1396) ( 1.4010) 2.1768 z

     

x y

 

(35)

35 35

Luego, una aproximación numérica a la raíz es:(x,y,z)(x,y,z)22==(-2.1396,-1.4010,-2.1768)

La otra raíz en ese cuadrante se calcula usando el mismo algoritmo:

Ingrese el número de iteraciones, n=6 Ingrese la función F='x+y^2-(1-x^2-y)-2' Ingrese la función G='x-y+(1-x^2-y)^2-4' Ingrese la semilla para x=-1.2

Ingrese la semilla para y=-2.2

-1.2000 -2.2000 -1.2227 -2.2259 -1.2225 -2.2257 -1.2225 -2.2257 -1.2225 -2.2257 -1.2225 -2.2257

El valor de z se determina a partir de la expresión:

Luego, una aproximación numérica a la raíz es:(x,y,z)(x,y,z)33==(-1.2225,-2.2257,1.7311)

 (x,y)(x,y)0033=(1.3,-1.5)IV cuadranteIV cuadrante x>0 yy<0

Ingrese el número de iteraciones, n=6 Ingrese la función F='x+y^2-(1-x^2-y)-2' Ingrese la función G='x-y+(1-x^2-y)^2-4' Ingrese la semilla para x=1.3

Ingrese la semilla para y=-1.5

2 2

1 1 ( 1.2225) ( 2.2257) 1.7311

(36)

36 36 1.3000 -1.5000 1.1091 -1.4736 1.1152 -1.4445 1.1152 -1.4440 1.1152 -1.4440 1.1152 -1.4440

El valor de z se determina a partir de la expresión:

Luego, una aproximación numérica a la raíz es:(x,y,z)(x,y,z)33==(-1.1152,-1.4440,1.2003)

3) El método de Gauss-Seidel es aplicable a sistemas diagonalmente dominantes que se pueden expresar en la forma: ) , , ( 3 ) , , ( 2 ) , , ( 1 z y x g z z y x g y z y x g x   

Elabore un programa en MATLAB para resolver el sistema y úselo para determinar una de las soluciones del sistema:

                6 3 2 3 2 2 2 2 z y x y z y x z y x x SOLUCION:

Primero observamos la ubicación de las raíces de forma gráfica. Expresamos el sistema en dos ecuaciones al eliminar la variablez , despejándola de la primera ecuación 2

3 2

z

   

x x y y reemplazándola en la segunda y la tercera:

2 2 (3 2 ) 2 3 x y

     

x x y

y 2 2 (3 2 ) 6 x y

     

x x y

Y planteamos las funciones F y G, así:

2 2 ( , ) (3 2 ) 2 3 F x y

    

x y x

 

x y

y 2 2 1 1 ( 1.1152) ( 1.4440) 1.2003 z

     

x y

 

(37)

37 37

2 2

( , ) (3 2 ) 6 G x y x y

    

x x y

 

Ingresamos las funciones en MATLAB así: F=’x+y^2+(3-x^2-2*x-y)-2*y-3’

G=’x+y+(3-x^2-2*x-y)^2-6’

Utilizamos los comandos mostrados a continuación para generar la gráfica del sistema F y G. h=ezplot(F);set(h, 'Color', 'm')% color magenta

hold on, grid on

l=ezplot(G); set(l, 'Color', 'b')% color azul

En la Figura 4 se muestra la grafica del sistema F(x,y)=0 y G(x,y)=0, y los puntos donde están las raíces de dicho sistema.

Figura 4.

Figura 4. Gráfica del sistema F(x,y)=0 y G(x,y)=0

Para determinar una de las soluciones del sistema expresamos el sistema de la siguiente forma:

-6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6 x y (3 2 ) (3 2 ) (6 ) x sqrt x y z y sqrt x z y z sqrt x y

 

  

 

  

 

 

F F G G

(38)

38 38

Optamos por hallar la raíz que se encuentra en el cuadrante x<0 yy>0 , de la Figura 4. Luego, el sistema se reescribe como:

1 2 3 ( , , ) (3 2 ) ( , , ) (3 2 ) ( , , ) (6 ) g x y z x sqrt x y z g x y z y sqrt x z y g x y z z sqrt x y                 Y en MATLAB: g1(x,y,z)=’-sqrt(3-2*x-y-z)’ g2(x,y,z)=’sqrt(3-x-z+2*y)’ g3(x,y,z)=’sqrt(6-x-y)’

A partir de la gráfica, se escoge una semilla apropiada: (x,y)(x,y)00==(-2.5,3.9). El valor dez se calcula a partir de la expresión z

 

sqrt (6

   

x y ) qrt

  

(6 ( 2.5) 3.9)

 

2.145 . Así una semilla apropiada puede ser: (x,y,z)(x,y,z)00==(-2.5,3.9, 2.145

). Se toma el signo de

z <0 para obtener convergencia en los reales con estas semillas

Para realizar la iteración, se utiliza el método de Gauss Seidel, el cual se describe iterativamente como: 1 1 1 1 1 1 3 2* 3 2* 6 k k k k k k k k k k k x x y z y x z y z x y                   

Usamos el código para el método de Gauss Seidel en MATLAB, como se presenta a continuación:

clear all

clc

% Metodo de Gauss Seidel

% Solucion de un sistema de orden tres diagonalmente dominante % x=g1(y,z); y=g2(x,z); z=g3(x,y)

% n número de iteraciones

n=input('Ingrese el número de iteraciones=');

g1=input('Ingrese la función g1(y,z)=');

g2=input('Ingrese la función g2(x,z)=');

g3=input('Ingrese la función g3(x,y)=');

(39)

39 39

yi=input('Ingrese el valor semilla para y=');

zi=input('Ingrese el valor semilla para z=');

% Se genera una matriz M cuya primera columna es la semilla

M(1,1)=xi; M(2,1)=yi; M(3,1)=zi; for k=1:n; x=M(1,k); y=M(2,k); z=M(3,k); M(1,k+1) = eval(g1); x=M(1,k+1); M(2,k+1) = eval(g2); y=M(2,k+1); M(3,k+1) = eval(g3); end M'

Los resultados obtenidos al utilizar este método son:

Ingrese el número de iteraciones=12

Ingrese la función g1(y,z)='-sqrt(3-2*x-y-z)' Ingrese la función g2(x,z)='sqrt(3-x-z+2*y)' Ingrese la función g3(x,y)='-sqrt(6-x-y)' Ingrese el valor semilla para x=-2.5 Ingrese el valor semilla para y=3.9 Ingrese el valor semilla para z=-2.1447

-2.5000 3.9000 -2.1447

(40)

40 40 -2.4911 3.9355 -2.1344 -2.4862 3.9359 -2.1331 -2.4839 3.9356 -2.1327 -2.4829 3.9353 -2.1325 -2.4825 3.9352 -2.1325 -2.4824 3.9351 -2.1324 -2.4824 3.9351 -2.1324 -2.4823 3.9351 -2.1324 -2.4823 3.9351 -2.1324 -2.4823 3.9351 -2.1324

Luego, una aproximación numérica a una de las soluciones del sistema es: (x,y,z)

(41)

41 41

CAPITULO 3

CAPITULO 3

REGRESION E INTERPOLACION REGRESION E INTERPOLACION

(42)

42 42

1. En un experimento se desea encontrar una expresión matemática que relacione la concentración de un medicamento en el organismo en función del tiempo y se dispone de los siguientes datos experimentales, en los que el tiempo se mide en minutos y la concentración en miligramos por centímetro cúbico.

Tabla 1.

Tabla 1. Valores de concentración como función del tiempo

a) Efectúe regresión polinomial de tercer grado, represente gráficamente los datos junto con el polinomio y calcule el error cuadrático medio.

SOLUCION

Para realizar la regresión polinomial de tercer grado, utilizamos el siguiente código:

%Programa para efectuar regresionpolinomial

clearall

% Entrada de información

n=input('Numero de datos =');

m=input('Grado del polinomio =');

x=input('vector de abscisas=');

y=input('vector de ordenadas=');

% Se inicializa la matriz del sistema y el vector de términos % independientes

M=zeros(m+1,m+1); b=zeros(m+1,1);

% Se generan: la matriz y el vector

for i=1:m+1 for j=1:m+1 for k=1:n M(i,j)=M(i,j)+x(k)^(i+j-2); end end

(43)

43 43 end for i=1:m+1 for k=1:n b(i)=b(i)+(x(k)^(i-1))*y(k); end end

% Se calcula el vector solución

a=inv(M)*b;

% Se coloca el vector de coeficientes en orden decreciente de la potencia

c=fliplr(a');

% Se escribe el polinomio de regresión

poly2str(c,'t')

% Se asignan valores al vector t

t=x(1):0.01:x(n);

% Se evalúa el polinomio

p=polyval(c,t);

% Se grafican los datos y el polinomio

plot(x,y,'o');

holdon

plot(t,p);

gridon

%Para calcular el error cuadrático medio

t=x; z=polyval(c,t); for k=1:n e(k)=(y(k)-z(k))^2; end et=0;

(44)

44 44 for k=1:n et=et+e(k); end ecm=sqrt(et)/n; ecm

Al ingresar como variables de entrada el número de datos, el orden del polinomio de regresión y los vectores de abscisas y ordenadas, se obtiene:

Numero de datos =8 Grado del polinomio =3

Vector de abscisas=[0 4 10 19 35 55 75 85] Vector de ordenadas=[100 70 32 24 13 6 4 3]

El polinomio de regresión de tercer orden es:

P(t)=-0.00069601 t^3 + 0.11192 t^2 - 5.5737 t + 91.8041

Y el error cuadrático medie es igual a:

ECM = 2.5585

En la Figura 1 se presentan en un mismo gráfico el polinomio de regresión de tercer grado y la nube de puntos que se especifica en laTabla 1Tabla 1.

Figura 1.

Figura 1. Concentración del medicamento vs Tiempo. Regresión Cúbica.

0 10 20 30 40 50 60 70 80 90 -20 0 20 40 60 80 100 t(min) C ( m g / c m 3 )

(45)

45 45

b) Efectúe regresión exponencial, represente gráficamente los datos junto con la función y calcule el error cuadrático medio.

SOLUCION

Para realizar la regresión exponencial, utilizamos el siguiente código:

clearall

%Programa para efectuar regresión exponencial

n=input('numerodedatos='); X=input('vectordeabscisas='); Y=input('vectordeordenadas='); xi=input('semillaparax='); symsx f11=sum((1-x.^X).^2); f12=sum((1-x.^X).*x.^X); f21=f12; f22=sum(x.^(2.*X)); g1=sum(Y.*(1-x.^X)); g2=sum(Y.*x.^X); numF=[g1 f12;g2 f22]; numP=[f11 g1;f21 g2]; den=[f11 f12;f21 f22]; P=det(numP)/det(den); F=det(numF)/det(den); beta=sum(X.*x.^(2.*X)); alfa=sum(X.*x.^X.*(1-x.^X)); gama=sum(x.^X.*X.*Y); fu=alfa*F+beta*P-gama;% se trocan F y P x=fzero(@(x) eval(fu),xi); P=eval(P); F=eval(F);

(46)

46 46 a=log(1/x); [P F a] t=X(1):0.01:X(n); fex=F+(P-F).*exp(-a.*t); plot(t,fex,'k') gridon holdon plot(X,Y,'o') symst t=X; fu='F+(P-F)*exp(-a*t)' et2=sum((Y-eval(fu)).^2); ecm=sqrt(et2)/n; ecm

La semilla parax puede calcularse, al considerar como ordenada inicial P =100, ordenada final F=3 y un punto de a nube (4,70), a partir de la expresión: , obteniéndose: xi =0.9116

Al ingresar como variables de entrada el número de datos, los vectores de abscisas y ordenadas, y la semilla parax se obtiene:

numerodedatos=8

vectordeabscisas=[0 4 10 19 35 55 75 85] vectordeordenadas=[100 70 32 24 13 6 4 3] semillaparax=0.9116

La función de regresión exponencial viene dada por:

F(t)=F+(P-F)*exp(-a*t)

P=100.0038 F=6.0474 a=0.1055

Y el error cuadrático medie es igual a:

ECM=1.3365

A continuación se presentan en un mismo gráfico la función de regresión exponencial y la nube de puntos que se especifica en laTabla 1Tabla 1 .

(

) ( ) t

(47)

47 47

Figura 2.

Figura 2. Concentración del medicamento vs Tiempo. Regresión Exponencial.

c) Efectúe interpolación cúbica por segmentos y represente gráficamente los datos junto con los polinomios. Debe suponer valores adecuados para la segunda derivada en los extremos del intervalo

SOLUCION

Para realizar la interpolación cúbica por segmentos, utilizamos el siguiente código:

%interpcub

%programa para efectuar interpolacion cubica por segmentos para datos % no igualmente espaciados

clearall

%Entrada de informacion

n=input('numero de datos=');

x=input('vector de abscisas=');

y=input('vector de ordenadas=');

0 10 20 30 40 50 60 70 80 90 0 20 40 60 80 100 120 t min C ( m g / c m 3 )

(48)

48 48

W1=input('segunda derivada al principio=');

WN=input('segunda derivada al final=');

%Calculo de los tamaños de paso

for i=1:n-1

h(i)=x(i+1)-x(i);

end

%calculo de las segundas diferencias divididas

for k=1:n-2

b(k)=6*((y(k+2)-y(k+1))/h(k+1)-(y(k+1)-y(k))/h(k));

end

%Sistema de ecuaciones para hallar las segundas derivadas, desde w(2) hasta w(n-1) % M*W=B M(1,1)=2*(h(1)+h(2)); M(1,2)=h(2); B(1)=b(1)-h(1)*W1; M(n-2,n-3)=h(n-2); M(n-2,n-2)=2*(h(n-2)+h(n-1)); B(n-2)=b(n-2)-h(n-1)*WN; for k=2:n-3 M(k,k-1)=h(k); M(k,k)=2*(h(k)+h(k+1)); M(k,k+1)=h(k+1); B(k)=b(k); end aux=inv(M)*B'; W(1)=W1; W(n)=WN; for j=2:n-1;

(49)

49 49

W(j)=aux(j-1);

end

%Calculo de las primeras derivadas

for k=1:n-1

U(k)=(y(k+1)-y(k))/h(k)-(h(k)/6)*(2*W(k)+W(k+1));

end

% Calculo de los coeficientes de los polinomios

for k=1:n-1 c(k,1)=(W(k+1)-W(k))/(6*h(k)); c(k,2)=W(k)/2-3*x(k)*c(k,1); c(k,3)=U(k)-x(k)*W(k)+3*c(k,1)*x(k)^2; c(k,4)=-c(k,1)*x(k)^3+(x(k)^2)*W(k)/2-x(k)*U(k)+y(k); end

%Representacion grafica de los polinomios

for i=1:n-1 t(i,:)=x(i):0.01*h(i):x(i+1); p(i,:)=c(i,1).*(t(i,:).^3)+c(i,2).*(t(i,:).^2)+c(i,3).*t(i,:)+c(i,4); plot(t(i,:),p(i,:),'k') gridon holdon end

plot (x,y,'o')

for j=1:n-1

for i=1:4

s(i)=c(j,i);

end

disp(strcat('p',num2str(j),'=',poly2str(s,'t')));

(50)

50 50

Al ingresar como variables de entrada el número de datos, los vectores de abscisas y ordenadas, se tiene:

numero de datos=8

vector de abscisas=[0 4 10 19 35 55 75 85] vector de ordenadas=[100 70 32 24 13 6 4 3]

Los valores requeridos para la segunda derivada en el primer y último nodo, son estimados al evaluar la segunda derivada de la funcion obtenida en el literal b):

En los nodos inicial y final:

Por lo que valores adecuados para la segunda derivada en los extremos del intervalo son: W1=

W1= 1.0457 1.0457 WN= WN= 1.333e-41.333e-4 Los polinomios cúbicos por segmentos obtenidos son:

p1= -0.052667 t^3 + 0.52285 t^2 - 8.7487 t + 100 p2= 0.039322 t^3 - 0.58102 t^2 - 4.3332 t + 94.1127 p3= -0.026166 t^3 + 1.3836 t^2 - 23.9796 t + 159.6006 p4= 0.0030401 t^3 - 0.28114 t^2 + 7.6508 t - 40.7253 p5= -0.00063709 t^3 + 0.10497 t^2 - 5.863 t + 116.9357 p6= 3.2174e-006 t^3 - 0.00068398 t^2 - 0.052184 t + 10.4039 p7= 8.9068e-007 t^3 - 0.00016047 t^2 - 0.091448 t + 11.3855

A continuación se muestra la gráfica de la interpolación cubica por segmentos y la correspondiente nube de puntos. 0.1055 ( ) 6.0474 (100.0038 6.0474) t f t

e 2 0.1055 ''( ) (100.0038 6.0474) (0.1055) t f t

e 2 2 0.1055(85) 4 ''(0) (100.0038 6.0474) (0.1055) 1.0457 ''(85) (100.0038 6.0474) (0.1055) 1.333 10 f f e 

 

 

(51)

51 51

Figura 3.

Figura 3. Concentración del medicamento vs Tiempo. Interpolación cúbica por segmentos.

2) Considere la función definida en cada punto del intervalo

a) Elabore una tabla de 6 datos igualmente espaciados en el intervalo. SOLUCION

Generamos una tabla de 6 datos equiespaciados a partir de los comandos:

x=linspace(0,pi,6) f='sqrt(3.*(cos(x)).^2+1)' y=eval(f) Tabla 2. Tabla 2.Y Vs. X X X YY 0.0000 2.000 0.6283 1.7215 1.2566 1.1342 1.8850 1.1342 2.5133 1.7215 3.1416 2.0000 0 10 20 30 40 50 60 70 80 90 0 10 20 30 40 50 60 70 80 90 100 t min C ( m g / c m 3 ) 2 ( ) 3cos ( ) 1 f x  x  0 x 

 

(52)

52 52

b) Determine, con los datos del literal anterior, el polinomio de interpolación de grado 5, represente gráficamente el polinomio, los datos y la función srcinal. Haga un estimativo del área bajo la curva. SOLUCION

Para determinar el polinomio de interpolación de quinto orden por el método de las diferencias divididas se utiliza el código:

%Programa para interpolacion por el metodo de las diferencias divididas % de newton

%Programa para interpolacion por el metodo de las diferencias divididas % de newton

n=input('Numero de datos =');

x=input('x= '); y=input('y= '); for i=1:n M(i,1)=y(i); end for j=2:n for i=1:n-j+1 M(i,j)=(M(i+1,j-1)-M(i,j-1))/(x(i+j-1)-x(i)); end end

%Programa para efectuar la productoria: %(t+x(1))(t+x(2))(t+x(3))...(t+x(m)) %El resultado es una matriz de la forma: %n=1: q(1,1) q(1,2) %n=2: q(2,1) q(2,2) q(2,3) %n=3: q(3,1) q(3,2) q(3,3) q(3,4) %n=4: q(4,1) q(4,2) q(4,3) q(4,4) q(4,5) %m=input('numero de factores ='); %for i=1:m

(53)

53 53

%x(i)=input(strcat('entre la abscisa x ',num2str(i), ' =')); %end

% El algoritmo para llenar la matriz es el siguiente:

m=n-1; X=-x; q(1,1)=X(1); for i=1:n q(i,i+1)=1; end for i=2:n q(i,1)=X(i)*q(i-1,1); end for i=2:n for j=2:n-1 q(i,j)=X(i)*q(i-1,j)+q(i-1,j-1); end end for i=3:n q(i,i)=X(i)+q(i-1,i-1); end

%Programa para expandir el polinomio de Newton, el cual queda en la forma:

%M(1,1)+M(1,2)*(t+X(1))+M(1,3)*(t+X(1))*(t+X(2))

%+M(1,4)*(t+X(1))*(t+X(2))*(t+X(3))+...+M(1,n)*(t+X(1))*(t+X(2))*(t+X(3)) ...(t+X(m))

%En su forma expandida es el polinomio de grado:m %a(1)+a(2)*x+a(3)*(x^2)+a(4)*(x^3)+....+a(n)*(x^m)

a(1)=M(1,1);

(54)

54 54 a(1)=a(1)+M(1,i)*q(i-1,1); end for i=2:n a(i)=0; end for i=2:n for j=i:n a(i)=a(i)+M(1,j)*q(j-1,i); end end c=fliplr(a); poly2str(c,'t') t=x(1):0.01:x(n); p=polyval(c,t); plot(x,y,'o'); holdon plot(t,p);

Se ingresan los valores requeridos así:

Numero de datos =6

x= [0 0.6283 1.2566 1.8850 2.5133 3.1416] y= [2.0000 1.7215 1.1342 1.1342 1.7215 2.0000]

Obteniéndose el polinomio interpolante de 5 grado:

P(t)=0.3009e-017*t^5-0.23956*t^4+1.5052*t^3-2.5663*t^2+0.63437*t+2

Este se representa gráficamente como se muestra en la Figura 4 (en azul) junto con la gráfica de la funciónf ( en rojo). También se muestra la nube de puntos.

(55)

55 55

Figura 4.

Figura 4. Gráfica de la función y el polinomio interpolante de 5 grado.

Para determinar el área bajo a curva recurrimos a la siguiente función en MATLAB, que hace uso de la regla de Simpson para la integración de funciones:

function s = simprl (f, a, b, M)

% Entrada - f es el integrando introducido como cadena de caracteres 'f' % - a y b son los limites superior e inferior de integración % - M es el número de subintervalos

% Salida - s es la suma de la regla de simpson

h=(b-a)/(2*M); s1=0; s2=0; for k=1:M x=a+h*(2*k-1); s1=s1+feval(f,x); end for k=1:(M-1) 0 0.5 1 1.5 2 2.5 3 3.5 1 1.2 1.4 1.6 1.8 2 2.2 2.4 x y

(56)

56 56 x= a+h*2*k; s2=s2+feval(f,x); end s=h*(feval(f,a)+feval(f,b)+4*s1+2*s2)/3;

Se ingresa la funciónf usando el comando:

f=inline('0.3009e-017*x^5-0.23956*x^4+1.5052*x^3-2.5663*x^2+0.63437*x+2')

La rutina se invocausando el comando:

s = simprl (f, 0, pi, 100)

El resultado arrojado es:

s = 4.8829

Que equivale al área bajo la curva usando el polinomio como función.

c) Con los datos del numeral a), efectúe interpolación cúbica por segmentos, represente gráficamente los polinomios, los datos y la función srcinal. Haga un estimativo del área bajo la curva.

SOLUCION

Para realizar la interpolación cúbica por segmentos, se utiliza el código:

%interpcub

%programa para efectuar interpolacion cubica por segmentos para datos % no igualmente espaciados

clearall

%Entrada de informacion

n=input('numero de datos=');

x=input('vector de abscisas=');

y=input('vector de ordenadas=');

W1=input('segunda derivada al principio=');

WN=input('segunda derivada al final=');

%Calculo de los tamaños de paso

for i=1:n-1

(57)

57 57

end

%calculo de las segundas diferencias divididas

for k=1:n-2

b(k)=6*((y(k+2)-y(k+1))/h(k+1)-(y(k+1)-y(k))/h(k));

end

%Sistema de ecuaciones para hallar las segundas derivadas, desde w(2) hasta w(n-1) % M*W=B M(1,1)=2*(h(1)+h(2)); M(1,2)=h(2); B(1)=b(1)-h(1)*W1; M(n-2,n-3)=h(n-2); M(n-2,n-2)=2*(h(n-2)+h(n-1)); B(n-2)=b(n-2)-h(n-1)*WN; for k=2:n-3 M(k,k-1)=h(k); M(k,k)=2*(h(k)+h(k+1)); M(k,k+1)=h(k+1); B(k)=b(k); end aux=inv(M)*B'; W(1)=W1; W(n)=WN; for j=2:n-1; W(j)=aux(j-1); end

%Calculo de las primeras derivadas

for k=1:n-1

(58)

58 58

end

% Calculo de los coeficientes de los polinomios

for k=1:n-1 c(k,1)=(W(k+1)-W(k))/(6*h(k)); c(k,2)=W(k)/2-3*x(k)*c(k,1); c(k,3)=U(k)-x(k)*W(k)+3*c(k,1)*x(k)^2; c(k,4)=-c(k,1)*x(k)^3+(x(k)^2)*W(k)/2-x(k)*U(k)+y(k); end

%Representacion grafica de los polinomios

for i=1:n-1 t(i,:)=x(i):0.01*h(i):x(i+1); p(i,:)=c(i,1).*(t(i,:).^3)+c(i,2).*(t(i,:).^2)+c(i,3).*t(i,:)+c(i,4); plot(t(i,:),p(i,:),'k') gridon holdon end

plot (x,y,'o')

for j=1:n-1

for i=1:4

s(i)=c(j,i);

end

disp(strcat('p',num2str(j),'=',poly2str(s,'t')));

end

Se ingresan las variables de entrada como el número de datos, los valores de los nodos y sus ordenadas

numero de datos=6

vector de abscisas=[0 0.6283 1.2566 1.8850 2.5133 3.1416] vector de ordenadas=[2.0000 1.7215 1.1342 1.1342 1.7215 2.0000]

(59)

59 59

Los valores de la segunda derivada en el primer y el último nodo se estiman evaluando la segunda derivada de la función en el primer y último nodo. Dicha segunda derivada se obtiene con los siguientes comandos: f='sqrt(3*(cos(x))^2+1)' diff(diff(f)) Arrojando: (3*sin(x)^2)/(3*cos(x)^2 + 1)^(1/2) - (3*cos(x)^2)/(3*cos(x)^2 + 1)^(1/2) - (9*cos(x)^2*sin(x)^2)/(3*cos(x)^2 + 1)^(3/2)

Se genera una función anónima g:

g=@(x)((3*sin(x)^2)/(3*cos(x)^2 + 1)^(1/2) - (3*cos(x)^2)/(3*cos(x)^2 + 1)^(1/2) - (9*cos(x)^2*sin(x)^2)/(3*cos(x)^2 + 1)^(3/2))

Y se evalúa en los nodos extremos, obteniéndose:

g(0)=-1.5000 g(pi)=-1.5000

Dichos valores se ingresan así:

Segunda derivada al principio=-1.5 Segunda derivada al final=-1.5

Obteniéndose los polinomios:

p1= 0.050361 t^3 - 0.75 t^2 + 0.0080847 t + 2

p2= 0.89057 t^3 - 2.3337 t^2 + 1.0031 t + 1.7916

p3= -5.8892e-016 t^3 + 1.0236 t^2 - 3.2156 t + 3.5587

p4= -0.89057 t^3 + 6.0597 t^2 - 12.7088 t + 9.5236

p5= -0.050361 t^3 - 0.27535 t^2 + 3.2132 t - 3.8153

A continuación se presenta la representación gráfica del polinomio cúbico interpolante por segmentos (en azul), la nube de puntos y la función (en rojo):

(60)

60 60

Figura 5.

Figura 5. Gráfica de la función y el polinomio cúbico interpolante a segmentos.

Para estimar el área debajo de la curva, se utiliza el método de Simpson en cada segmento: Tabla 3.

Tabla 3. Estimación del área bajo la curva

Polinomio Intervalo

Polinomio Intervalo rea bajo larea bajo la curva curva P1 0 - 0.6283 1.1982 P2 0.6283 - 1.2566 0.8895 P3 1.2566 - 1.8850 0.6705 P4 1.8850 - 2.5133 0.8894 P5 2.5133 - 3.1416 1.1982 Total AREA Total AREA 4.8459

Puede verse que el valor del área difiere al utilizar como función el polinomio interpolante de grado 5 y el polinomio interpolante cúbico por segmentos.

0 0.5 1 1.5 2 2.5 3 3.5 1 1.2 1.4 1.6 1.8 2 2.2 x y

(61)

61 61

CAPITULO 4

CAPITULO 4

PROBLEMAS DE VALOR INICIAL DE PRIMER ORDEN PROBLEMAS DE VALOR INICIAL DE PRIMER ORDEN

(62)

62 62

1. En el crecimiento de una población surgen circunstancias que impiden que su número exceda de cierto máximo M . En consecuencia, la tasa de variación de la población es directamente proporcional al número de habitantes en todo instante y a la diferencia entre el máximo y la población instantánea. Matemáticamente, si x t

 

es el número de habitantes en un instante cualquiera y si el número inicial de habitantes es x

 

0

N , se debe resolver el problema de valor inicial:

a) Usandodsolve , encuentre una expresión matemática para el número de habitantes en cualquier instantet 0.

SOLUCION

Utilizando el comandodsolve:

x=dsolve('Dx=k*x*(M-x)','x(0)=N')

La solución analítica que arroja el programa es:

x=-N*M/(-N-exp(-k*M*t)*M+exp(-k*M*t)*N)

Dividiendo por N y tomando factor común las exponenciales, se obtiene:

1 kMt 1 M x M e N 

Esta es la expresión matemática para el número de habitantes parat

0.

b) Suponiendo que la población inicial es de 2 millones, que se duplica al cabo de 20 años y que el máximo número de habitantes es de 10 millones, escriba la expresión para el número de habitantes y represente gráficamente.

SOLUCION:

Dado que M

10 ( en millones) , N

2 ( en millones), y además sabiendo que al cabo de 20 ( )

t

en años se duplica la población inicial, es decir x(20) 4

, determinamos el valor dek , usando la función auxiliar:

f='4-((10)/(1+(exp(-x*10*20)*(10/2-1))))'donde x es “k ”

(63)

63 63

fzero(f,0)= 0.0049

Por lo tanto k=0.0049.Luego la expresión para el número de habitantes es:

 

0.049 10 1 4 t x t e

En MATLAB se define como:

x='10./(1+4.*exp(-0.049.*t))'

Se grafica a partir de los siguientes comandos:

t=linspace(0,100,1000); plot(t,eval(x)),grid on xlabel('t(años)'),ylabel('x(millones)')

La Figura 1 muestra la función:

Figura 1.

Figura 1. Población (en millones) vs tiempo (años)

c) Para los datos del literal anterior, resuelva el problema de valor inicial en el intervalo0

 

t 100 con 1000 particiones, por el método de Runge-Kutta de orden cuatro. Represente gráficamente la solución y compare con el resultado del literal anterior.

0 10 20 30 40 50 60 70 80 90 100 2 3 4 5 6 7 8 9 10 t(años) x ( m i l l o n e s )

(64)

64 64

SOLUCION

Se plantea el Método de Runge-Kutta con para resolver el PVI:

Luego se define ( , ) 0.0049 10

(0) 2 dx f t x x x dt x          El código viene dado por:

clear all

%Programa para resolver un problema de valor inicial de primer orden %por el metodo Runge-Kutta de orden tres

%La formulacion del problema es: y'=f(x,y);y(xi)=yi en el intervalo:[xi,xf]

% con n iteraciones. % Entrada de la informacion

n=input('numero de iteraciones = ');

xi=input('abscisa inicial = ');

xf=input('abscisa final = ');

yi=input('ordenada inicial = ');

f=input('entrar la funcion f(x,y) = ');

% El tamano de paso se calcula como

h=(xf-xi)/n;

%El vector de abscisas se calcula como

for k=1:n+1

xe(k)=xi+(k-1)*h;

end

%El vector de ordenadas se calcula como

ye(1)=yi;

(65)

65 65 x=xe(k); y=ye(k); M1(k)=eval(f); x=x+h/2; y=y+h*M1(k)/2; M2(k)=eval(f); x=x; y=y-h*M1(k)/2+h*M2(k)/2; M3(k)=eval(f); x=x+h/2; y=y+h*M3(k)-h*M2(k)/2; M4(k)=eval(f); M(k)=(M1(k)+2*M2(k)+2*M3(k)+M4(k))/6; ye(k+1)=ye(k)+h*M(k); end [xe' ye']

hold on,plot(xe,ye,'o')

grid on

Cuando se ejecuta, se ingresan los datos de entrada de la iteración:

Número de iteraciones = 1000 Abscisa inicial = 0

Abscisa final = 100 Ordenada inicial = 2

Entrar la función f(t,x) = '0.0049*x*(10-x)'

(66)

66 66

Tabla 1.

Tabla 1. Población (en millones) vs tiempo (años). Datos obtenidos a partir del método de Runge-Kutta orden 4

t

t (Años) (Años) x x (Millones (Millones de de individuos)individuos)

0 2.0000 0.1000 2.0079 0.2000 2.0157 0.3000 2.0236 0.4000 2.0315 0.5000 2.0395 0.6000 2.0475 0.7000 2.0554 0.8000 2.0635 0.9000 2.0715 1.0000 2.0796

A continuación se muestra la gráfica obtenida a partir de los 1000 subintervalos:

Figura 2.

Figura 2. Población (en millones) vs tiempo (años). Datos obtenidos a partir del método de Runge-Kutta orden 4.

Debido a la alta densidad de puntos no se percibe la curva obtenida en el literal anterior. Los puntos están superpuestos sobre la misma.

0 10 20 30 40 50 60 70 80 90 100 2 3 4 5 6 7 8 9 1 t(años) x ( m i l l o n e s )

(67)

67 67

2) Dos sustancias A yBreaccionan para formar una nueva sustanciaC . Se sabe que la rapidez de formación de la nueva sustancia es proporcional a las cantidades de los reactivos presentes en todo instante y que para producir una parte deC se requierena partes de A yb partes deB con a +b =1. Inicialmente se tienenM gramos de AyN gramos deB y al cabo det 1 minutos se han

producidoQ gramos de la nueva sustancia. Se pide determinar la cantidad deC en todo instante. Si denotamos por x t

 

a la cantidad del nuevo compuesto en el instantet , se debe resolver el problema de valor inicial:

a) Usando dsolvedsolve, encuentre una expresión matemática para determinar la cantidad de producto en cualquier instantet 0

SOLUCION

Para determinar una solución analítica usando la herramientadsolve,escribimos:

x=dsolve('Dx=k*(M-a*x)*(N-b*x)','x(0)=0')

El programa arroja la expresión:

x = (M - N*exp((M*b - N*a)*(log(M/N)/(M*b - N*a) + k*t)))/(a - b*exp((M*b - N*a)*(log(M/N)/(M*b - N*a) + k*t)))

La cual al simplificarse se obtiene:

x=(M*N*(exp(M*b*k*t)-exp(N*a*k*t)))/(M*b*exp(M*b*k*t)-N*a*exp(N*a*k*t)) Es decir:

( )

btkM atkN btkM atkN

M N e

e

x t

M b e

N a e

 

 

  

b) Tome los datos dados a continuación, escriba la expresión para x t

 

y represente gráficamente.

SOLUCION

Además de los datos anteriores, debe determinarsek.Esto se lleva a cabo teniendo en cuenta que ent=10minse tienen x=30grde C.

Referencias

Documento similar

o esperar la resolución expresa&#34; (artículo 94 de la Ley de procedimiento administrativo). Luego si opta por esperar la resolución expresa, todo queda supeditado a que se

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

Las características del trabajo con grupos que se debería llevar a cabo en los Servicios Sociales de Atención Primaria (SSAP), en términos de variabilidad o estabilidad

Primeros ecos de la Revolución griega en España: Alberto Lista y el filohelenismo liberal conservador español 369 Dimitris Miguel Morfakidis Motos.. Palabras de clausura

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

A partir de los resultados de este análisis en los que la entrevistadora es la protagonista frente a los entrevistados, la información política veraz, que se supone que

Porcentaje de radiación solar interceptada (RSI; 0,35 - 2,5 µm) y de radiación fotosintéticamente activa interceptada (RFAI) a lo largo del ciclo de cultivo para las