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
79 Views
Preview:
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