Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Métodos Numéricos en Ingeniería: Ejercicios Resueltos, Ejercicios de Métodos Numéricos

EJERCICIO CON PROGRAMACION EN OCTAVE

Tipo: Ejercicios

2019/2020

Subido el 10/03/2020

usuario desconocido
usuario desconocido 🇲🇽

5

(1)

5 documentos

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Universidad Autónoma
Metropolitana Azcapotzalco
Métodos Numéricos en Ingeniería
Profesora:
Cortes León Héctor
Alumna:
Jessica Jazmín Placido Piña
Matricula: 2162002586
Grupo: CTG-83
Trimestre: 19P
Ejercicios No. 2:
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga Métodos Numéricos en Ingeniería: Ejercicios Resueltos y más Ejercicios en PDF de Métodos Numéricos solo en Docsity!

Universidad Autónoma

Metropolitana Azcapotzalco

Métodos Numéricos en Ingeniería

Profesora:

Cortes León Héctor

Alumna:

Jessica Jazmín Placido Piña

Matricula: 2162002586

Grupo: CTG-

Trimestre: 19P

Ejercicios No. 2:

1. Ve a la página 208 del libro Chapra/Canale, dónde se muestra la ecuación que modela a un

circuito RLC. Calcule el valor de R si la carga se debe disipar a 8% de su valor original, en 0.15s,

con L=1.75H y C=0.

Programa utilizado:

% Programa para cálculo de raices con el método de bisección function z=biseccion() disp('Calculo de raíces con bisección'); f=input('Proporcione la ecuación no lineal: ','s'); funcion=inline(f); ezplot(funcion); grid on; xl=input('Proporcione el valor inferior del intervalo, xl = '); xu=input('proporcione el valor superior del intervalo, xu = '); n=input('Proporcione el número de dígitos significativos de precisión, n = '); Es=0.5* 10 ^( 2 - n); fxl=feval(funcion,xl); fxu=feval(funcion,xu); if fxlfxu> 0 disp('Error. La función debe cambiar de signo en el intervalo!!'); else xr= 0 ; ni= 0 ; Ea= 100 ; do xrant=xr; xr=(xl+xu)/ 2 ; fxr=feval(funcion,xr); if fxlfxr< 0 xu=xr; elseif fxlfxr> 0 xl=xr; endif if ni> 0 Ea=((xr-xrant)/xr) 100 ; endif ni++; until(abs(Ea)<Es); endif z=double(xr); printf('El valor de la raíz calculado es xr = %g\n',xr); printf('El valor de la función evaluada en la raíces f(xr) = %g\n',fxr); printf('El valor del error aproximado final es Ea = %g\n',Ea); printf('Se alcanzó el resultado final en %d iteraciones\n',ni);

Datos introducidos en la pantalla:

Calculo de raíces con bisección

Proporcione la ecuación no lineal: exp(-0.0428R)cos(((121.58 - 0.08163R.^2).^0.5)0.15) - 0.08)

Proporcione el valor inferior del intervalo, xl = 20

Proporcione el valor superior del intervalo, xu = 22

Proporcione el número de dígitos significativos de precisión, n = 0.

Organizar las ecuaciones obtenidas de modo que el orden de las incógnitas sea el siguiente:

F1 F2 F3 F4 F5 F6 F7 H3 V3 V

Intercambiar filas en el sistema de ecuaciones, de modo que en la diagonal principal de la matriz de

coeficientes no haya elementos nulos.

Resultados obtenidos con el programa:

F 1 = 96694/

F 2 = -31132/

F 3 = 9646/

F 4 = 60413/

F 5 = 12854/

F 6 = -7073/

F 7 = -85342/

Max = abs(AB(q,i))/S(q); %El maximo {asignamos el primero al inicio} for j = (q+ 1 ):F %Recorremos la columna en busca de otro posible maximo if AB(j,i)/S(j) > Max %Si el elemento actual es mayor que el maximo registrado.. Max = abs(AB(j,i))/S(j); %Asignamos el valor de este maximo MaxF = j; %Asignamos la nueva fila maxima a su variable end end if (MaxF ~= q) %Si el maximo no se encuantra en la fila de inicio AB = IntercambioF(AB,MaxF,q); %Intercambiamos la fila de AB para q coincida S = IntercambioF(S,MaxF,q); % Tambien se debe cambiar en S, puesto q el orden ha cambiado end end %Columna ya ordenada if (AB(i,i) == 0 ) %El elemento de la diagonal NO puede ser 0, si es cero no existe solucion unica fprintf('No existe solucion unica para el sistema. Finalizado SIN exito'); %No existe solucion unica return;% Salimos end for j = (i+ 1 ):F %Modificamos las filas para hacer 0's m = (AB(j,i)/AB(i,i)); %m sera el multiplicando, es necesario declararlo %antes de intercambiar las filas porque el valor de los elementos %de las mismas variara cuando hagamos 0's, y por consiguiente el %valor de m for q = 1 :(C+ 1 ) %Para cada elemento de la fila... AB(j,q) = AB(j,q) - mAB(i,q); %Realizamos el cambio end end end for i = 1 :F if (AB(i,i) == 0 ) %Ningun elemento de la diagonal puede ser 0, si es cero no existe solucion unica fprintf('No existe solucion unica para el sistema. Finalizado SIN exito'); %No existe solucion unica return; %Salimos end end X = [ 0 ; 0 ]; %matriz con los resultados X(F) = AB(F,F+ 1 )/AB(F,F); %Asignamos el ultimo elemento for i = (F- 1 ):- 1 : 1 %Y vamos calculando los demas Sum = 0 ; %inicializacion de la variable Sum {para calcular el sumatorio} for j = (i+ 1 ):F %bucle para el sumatorio, para cada fila... Sum = Sum + AB(i,j)X(j); %Calculamos el resultado actual y lo a�adimos al conocido end X(i) = (AB(i,F+ 1 )-Sum)/AB(i,i); %Obtenemos X(i) end fprintf('Resolucion del sistema concluida en: %d segundos. El resultado: \n', (cputime - t)); R = X; %El resultado es X %A continuacion se encuentra la funcion IntercambioF, cuya funcion es %intercambiar filas de una matriz. En principio esta operacion se puede %realizar de dos formas, la expuesta y sabiendo q A(n,:) devuelve la fila %completa n de la matriz A. Yo he escogido la primera forma porque es un %metodo mas grafico y menos abstracto.

function Z = Intercambio(V,f1,f2) %Función interna para intercambiar filas [FV,CV] = size(V); %Obtenemos el número de filas y columnas {F y C respectivamente} CV1 = 0 ; %Aqui se almacena temporalmente un valor for n = 1 :CV %Bucle para recorrer las columnas CV1 = V(f1,n); %CV1 = fila 1 V(f1,n) = V(f2,n); %Asignamos a V(f2,n) = CV1; %Asignamos a la fila n� f2 la fila CV end Z = V; %el resultado es la nueva matriz V

Datos introducidos en la pantalla:

El número de argumentos difiere del necesario.

Por favor escriba a continuación la matriz de coeficientes A:\n [-0.7071,0.7071,1,0,0,0,0,0,0,0;-0.7071,-

0.7071,0,0.5,0,-1,1,0,0,0;0,0,0,0,-0.8660,0,-1,0,0,0;0.7071,0,0,0,0,1,0,1,0,0;0.7071,0,0,0,0,0,0,0,1,0;0,0,0,0,0.5,0,0,0,0,1]

A continuación escriba la matriz de términos independientes B:\n [0;-500;0;0;-1000;0;0;0;0;0]

Resolución del sistema concluida en: 21.6704 segundos. El resultado:

ans =