Está en la página 1de 3

ANGÉLICA SALAZAR MONSALVE

0000104861

PARCIAL #1

1) En el primer punto se obtiene un intervalo de [-10, 10], al graficar la función y ver


que va hacia abajo y se encuentra en ese rango.

  clear all
  close all
  clc
  n = 18;
  X=zeros(1,n);
  Y=zeros(1,n);
  for i=1:n
      Y(1,i) = i-9;
      X(1,i) = (-2*((i-9)^6)) - (1.5*((i-9)^4)) + (10*(i-9)) +2;
  end
  plot(Y,X)

Se cambia el if porque la gráfica está invertida:

  %MÉTODO DE LA BISECCIÓN
  clear, clc
  a=input('Ingrese el extremo izquierdo del intervalo: ');
  b=input('Ingrese el extremo derecho del intervalo: ');
  e=input('Ingrese el valor de precisión de épsilon: ');
  m=input('Ingrese el número máximo de iteraciones: ');
  syms x
  func=input('Ingrese la función (en términos de x): ');
  f=inline(func);
  if f(a)*f(b)<0 % ---- parametro cambiado
      disp('El intervalo ingresado es inadecuado, cambie los valores de a y b');
      return
  end
  for k=1:m
      x=(a+b)/2;
      if f(a)*f(x)>0
          a=x;
      else
          b=x;
      end
      if abs(f(x))<e
          disp('Éxito, se logró la precisión deseada, la solución es: ');
          disp(x)
          disp('El numero de iteraciones que se realizaron es: ');
          disp(k)
          disp('El valor aproximado es: ');
          disp(f(x))
          break
      end
  end
  if k==m
      disp('Se alcanzó el máximo de iteraciones sin llegar a la precisión deseada');
  end
LOS RESULTADOS SON

  Ingrese el extremo izquierdo del intervalo: -8


  Ingrese el extremo derecho del intervalo: 8
  Ingrese el valor de precisión de épsilon: 0.001
  Ingrese el número máximo de iteraciones: 100
  Ingrese la función (en términos de x): (-2*(x^6)) - (1.5*(x^4)) + (10*x) +2
  Éxito, se logró la precisión deseada, la solución es:
     -0.1997

  El numero de iteraciones que se realizaron es:


      15

  El valor aproximado es:


     4.1684e-04

2) El código utilizado fue el siguiente:


El valor inicial es igual a o porque hace que la ecuación se convierta en 0.

%MÉTODO DE PUNTO FIJO


clear, clc
a=input('Ingrese el valor inicial: ');
e=input('Ingrese el valor de precisión de épsilon: ');
m=input('Ingrese el número máximo de iteraciones: ');
syms x
func1=input('Ingrese la función (en términos de x): ');
g=inline(func1);
func=input('Ingrese la función contracción (en términos de x): ');
f=inline(func);
derivfuncion=diff(func);
d=inline(derivfuncion);
if abs(d(a))>1
disp('Error, no es una contracción');
end
for k=1:m
x=f(a);
if abs(f(x)-x)<e
disp('Éxito, se logró la precisión deseada, la solución es: ');
disp(x)
disp('El número de iteraciones que se realizaron es: ');
disp(k)
disp('El valor aproximado es: ');
disp(g(x))
break
end
a=x;
end

3) Se utilizó el código:
A=input('ingrese la matriz A: ');
b=input('ingrese el vector libre b (columna): ');
x0=input('ingrese el vector inicial x0 (columna): ');
e=input('ingrese el valor de presicion (epsilon): ');
m=input('ingrese el valor maximo de iteraciones (m): ');
n=length(A);
I=eye(n);
D=diag(diag(A));
L=tril(A)-D;
U=triu(A)-D;
B=D;
for k=1:m
x1=(I-inv(B)*A)*x0+inv(B)*b;
if norm(x1-x0)<e
fprintf('éxito, se logró la precisión deseada despues de %d iteraciones',k)
fprintf('\n El valor aproximado de la raíz es: %f\n',x1);% %f para reales %d enteros %c para
caracteres %s para cadenas
return;
end
x0=x1;
end
%disp('la aproximación es')
%disp(x1)
if k==m
fprintf('\n el maximo de iteraciones no logro la precision deseada.\n El mejor resultado es: %f\n\n',x1);
end

RESULTADOS:

ingrese la matriz A: [2 -6 -1; -3 -1 7; -8 1 -2]

ingrese el vector libre b (columna): [-38; -34; -20]

ingrese el vector inicial x0 (columna): [1;1;1]

ingrese el valor de presicion (epsilon): 0.001

ingrese el valor maximo de iteraciones (m): 20

el maximo de iteraciones no logro la precision deseada.

El mejor resultado es: 84694762544217.015625

el maximo de iteraciones no logro la precision deseada.

El mejor resultado es: -95581519923890.859375

el maximo de iteraciones no logro la precision deseada.

El mejor resultado es: -103262659782391.609375

También podría gustarte