codificaciÓn en matlab mÉtodos numÉricos para hallar la raÍz de una funciÓnmÉtodos numÉricos...

Post on 06-Jan-2015

78 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CODIFICACIÓN EN MATLABCODIFICACIÓN EN MATLAB

• MÉTODOS NUMÉRICOS PARA HALLAR LA RAÍZ DE UNA FUNCIÓNMÉTODOS NUMÉRICOS PARA HALLAR LA RAÍZ DE UNA FUNCIÓN

• MÉTODOS NUMÉRICOS PARA SOLUCIONAR SISTEMAS DE MÉTODOS NUMÉRICOS PARA SOLUCIONAR SISTEMAS DE ECUACIONESECUACIONES

• MÉTODOS NUMÉRICOS PARA SOLUCIONAR DERIVADASMÉTODOS NUMÉRICOS PARA SOLUCIONAR DERIVADAS

• MÉTODOS NUMÉRICOS PARA SOLCIONAR INTEGRALESMÉTODOS NUMÉRICOS PARA SOLCIONAR INTEGRALES

• MÉTODOS NUMÉRICOS PARA SOLUICONAR ECUACIONES MÉTODOS NUMÉRICOS PARA SOLUICONAR ECUACIONES DIFERENCIALES ORDINARIASDIFERENCIALES ORDINARIAS

Algoritmo método de Algoritmo método de BisecciónBisección

Definir intervalos x1 y x2 mediante el método grafico

Determinar la raíz aproximada

X1/2=(x1+x2)/2

Evaluar las funcionesF(x1/2)*f(x1) 0 X1/2=X2

SÍNOX1/2=X1

Evaluar el errorE= abs(Xnew

–Xant)/Xnew*100

E 1x10-4

Imprimir X1/2

como la raíz

Final

SI

NO

Método de BisecciónMétodo de Bisección'METODO DE BISECCION'x1 =12; x2 =16; error=0.00001; iteracion=0; fxr=1; while abs(fxr)>error xr = (x1+x2)/2; fx1 = (667.38/x1)*(1-exp(-0.14*x1))-40; fxr = (667.38/xr)*(1-exp(-0.14*xr))-40; if (fxr*fx1) > 0; x1=xr; else x2=xr; end iteracion=iteracion+1; end syms x ezplot((667.38/x)*(1-exp(-0.14*x))-40,[10,20]) grid disp('la raíz es'), disp(xr) disp('el número de iteraciones es'), disp(iteracion)

Método Falsa PosiciónMétodo Falsa Posición

Definir intervalos x1 y x2 mediante el método grafico

Evaluar f(x1) y f(x2)Determinar la raíz

aproximada

Xr = X2

Evaluar el errorE= abs(Xnew –Xant)/Xnew*100

E 1x10-4

Imprimir Xr

como la raíz

Final

SI

NO

Método de Falsa Método de Falsa PosiciónPosición'METODO DE FALSA POSICION'

x1=12;x2=16;error=0.00001; iteracion=0; fxr=1; while abs(fxr)>error fx1=(667.38/x1)*(1-exp(-0.14*x1))-40; fx2=(667.38/x2)*(1-exp(-0.14*x2))-40; xr=x2-(fx2*(x1-x2)/(fx1-fx2)); fxr=(667.38/xr)*(1-exp(-0.14*xr))-40; x1=xr; x2=x2; iteracion=iteracion+1; end syms x ezplot((667.38/x)*(1-exp(-0.14*x))-40,[10,20]) grid disp('la raíz es'), disp(xr) disp('el número de iteraciones es'), disp(iteracion)

Método de la secanteMétodo de la secante'METODO DE LA SECANTE'x1=16;x2= x1-1;error=0.00001; iteracion=0; fxr=1; while abs(fxr)>error fx1=(667.38/x1)*(1-exp(-0.14*x1))-40; fx2=(667.38/x2)*(1-exp(-0.14*x2))-40; xr=x1-(fx1*(x2-x1)/(fx2-fx1)); fxr=(667.38/xr)*(1-exp(-0.14*xr))-40; x2=x1; x1=xr; iteracion=iteracion+1; end syms x ezplot((667.38/x)*(1-exp(-0.14*x))-40,[10,20]) grid disp('la raíz es'), disp(xr) disp('el número de iteraciones es'), disp(iteracion)

Método de Gauss SimpleMétodo de Gauss Simple'METODO DE GAUSS-SIMPLE'A=[-1.5,8,5,65;1,0.40,-3,-55;-8/3,5,-4,22]; B=A(1,:); C=A(2,:)-((A(2,1)/A(1,1))*B); D=A(3,:)-((A(3,1)/A(1,1))*B); A=[B;C;D] B=A(1,:); C=A(2,:); D=A(3,:)-((A(3,2)/A(2,2))*C); A=[B;C;D] Z=A(3,4)/A(3,3); Y=(A(2,4)-(A(2,3)*Z))/A(2,2); X=(A(1,4)-(A(1,3)*Z)-(A(1,2)*Y))/A(1,1); disp('la solucion del problema es:'),X,Y,Z

Método de Gauss SimpleMétodo de Gauss Simple'METODO DE GAUSS-JORDAN'A=[-1.5,8,5,65;1,0.40,-3,-55;-8/3,5,-4,22];

B=A(1,:)*1/A(1,1); C=A(2,:)-(A(2,1)*B); D=A(3,:)-(A(3,1)*B); A=[B;C;D]; C=A(2,:)*1/A(2,2); B=A(1,:)-(A(1,2)*C); D=A(3,:)-(A(3,2)*C); A=[B;C;D]; D=A(3,:)*1/A(3,3); B=A(1,:)-(A(1,3)*D); C=A(2,:)-(A(2,3)*D); A=[B;C;D]; X=A(1,4); Y=A(2,4); Z= A(3,4); disp('la solucion del problema es:'),X,Y,Z

Derivadas e Integrales AnalíticasDerivadas e Integrales Analíticas

DERIVADASDERIVADAS

diff('3*(x*y)^3') calcula la 1ra derivada analítica con respecto a ‘x’

diff('3*(x*y)^3',y) calcula la 1ra derivada analítica con respecto a ‘y’

diff('3*(x*y)^3',y,2) calcula la 2da derivada analítica con respecto a ‘y’

pretty(diff('3*(x*y)^3',x)) escribe la derivada analítica en forma de caligrafía

INTEGRALESINTEGRALES

int('3*(x*y)^3') calcula la integral analítica

pretty(int('3*(x*y)^3')) escribe la integral analítica en forma de caligrafía

Integral Definidas

int('3*(x)^3',2,5)

Derivadas en un punto

x = 2

eval(diff('3*(x)^3'))

Graficar derivadas e integralesGraficar derivadas e integrales

ezplot(diff('sin(y)'),[pi,2*pi])

ezplot(int('sin(y)'),[pi,2*pi])

ezplot(diff('3*x^3'),[2,22])

ezplot(int('3*x^3'),[2,22])

Ajuste de Datos e InterpolaciónAjuste de Datos e InterpolaciónGraficar los datos originales y fijar los coeficientes del

polinomiox=[0,1,2,3,4,5,6] valores de xy=[0,1,3.3,2.2,5.6,4.4,5.6] valores de yplot(x,y,'*') grafica los datos originalesa=polyfit(x,y,3) fija los coef. del polinomios de 3orden

Graficar el polinomio junto a los datos originales

x1=linspace(0,7,100); distribuye nuevos x1p1=polyval(a,x1); evalúa el polinomio de grado 3plot(x,y,‘-’,x1,p1) grafica el polinomio junto a los datos originales

SOLUCION RAPIDA DE UN SISTEMA DE ECUACIONES SOLUCION RAPIDA DE UN SISTEMA DE ECUACIONES

1. Introducir la matriz solo de coeficientes de las variable

A=[1,2,3,4,5,6;7,8,9,12,2,3;4,5,6,7,8,9;0,15,3,4,5,6;7,8,9,1,3,23;2,4,5,7,8,9]A =

1 2 3 4 5 6 7 8 9 12 2 3 4 5 6 7 8 9 0 15 3 4 5 6 7 8 9 1 3 23 2 4 5 7 8 92. Introducir la matriz de los terminos dependientes C=[34;23;45;35;26;89]

C =

34 23 45 35 26 89

3. Calcular la matriz inverza de A con el producto del vector C

d=inv(A)*(C)

4. Obtención del vector resultante con x,y,z,w…d =

131.4239 10.1865 -317.0342 143.5286 -45.8198 81.3817

Solución analitica de ecuaciones diferenciales ordinarias ECDOSolución analitica de ecuaciones diferenciales ordinarias ECDO

dsolve('D2y + y =4‘,’x’) calcula la solución analítica de la ECDO Respuesta/ 4+C1*sin(x)+C2*cos(x)

solve('D2y + y =4','y(0)=1','Dy(0)=0‘,’x’) solución de ECDO con valores iniciales

Respuesta/ 4-3*cos(x)

Solución numérica de ECDOSolución numérica de ECDO

1. Archivo.m en donde se introduce la ecuacion ECDO

% archivo dy.m para solucionar una ECDOfunction yderivada = dy(t,y)yderivada = -2*y*t;2. En la plataforma de inicio de matlabyinicial=2;[t,y]=ode45('dy',[0,2],yinicial);plot(t,y)grid

top related