Práctica 1
Resolución de ecuaciones escalares

Resolución de ecuaciones polinómicas

Roots[(x^2+9)(x-2.5)==0,x]

Solve[x^4-2x^2+1==0,x]

Solve[x^4-3x^3+x==0,x]

Solve[x^19+9x^13+4x^6+2x-25==0,x]

Solve[x^19+9x^13+4x^6+2x-25.0==0,x]

NSolve[x^3-3x^2+1==0,x]

NRoots[x^3-3x^2+1==0,x]

Resolución de ecuaciones no polinómicas

Solve[Sin[x] Cos[x]==0,x]

NSolve[Sin[x] Cos[x] == 0, x]

Reduce[Sin[x] Cos[x]==0,x]

Solve[1/a E^(x+1)-3 a^2==0,x]

Reduce[1/a E^(x+1)-3a^2==0,x]

FindRoot[1/2+x+x^2+Sin[x]==0,{x,0}] (*Newton Raphson*)

Plot[Cos[x]-x^2,{x,-3,3}];

FindRoot[Cos[x]-x^2,{x,1}]

FindRoot[Cos[x]-x^2,{x,-1}]

Resolución numérica de ecuaciones

Método de Bisección

f[x_]:=E^x-2;
a=0.;b=2.;
tol=10^(-5);
n=100;

For[i=1,i<=n,i++,
    c=(a+b)/2;
    If[f[c]==0,Break[]];
    If[f[c]*f[a]<0,b=c,a=c];
    If[b-a<tol,Break[]]
   ]    
   
If[f[c]==0,Print["Solución exacta: ",c],
           Print["Solución aproximada: ",c];
           Print["Número de iteraciones: ",i];
           Print["Error máximo cometido: ",tol]]

Método de la Regula Falsi

f[x_] := E^x - 2;
a = 0. ; b = 2. ;
tol = 10^(-5);
n = 100;

For[i = 1, i ≤ n, i++, 
      c = (a f[b] - b f[a])/(f[b] - f[a]); 
If[
        f[c] == 0, Break[]]; 
If[f[c]*f[a] < 0, 
        b = c, a = c]; 
If[b - a < tol, 
        Break[]]
]

If[f[c] == 0, Print["Solución exacta: ", c], 
      Print["Solución aproximada: ", 
        c]; 
Print["Número de iteraciones: ", 
        i]; 
Print["Error máximo cometido: ", 
        tol]]

Método de la Secante

f[x_] := E^x - 2;
tol = 10^(-5);
n = 100;
x0 = 0. ; x1 = 0.5;

For[i = 1, i ≤ n, i++, 
        x2 = (x0 f[x1] - x1 f[x0])/(f[x1] - 
                f[x0]); 
If[f[x2] == 0, 
          Break[]]; 
If[Abs[x2 - x1] < tol, 
          Break[]]; 
x0 = x1;  
        x1 = x2];

If[f[c] == 0, Print["Solución exacta: ", c], 
      Print["Solución aproximada: ", 
        c]; 
Print["Número de iteraciones: ", 
        i]; 
Print["Error máximo cometido: ", 
        tol]]

Método de Newton-Raphson

f[x_]:=E^x-3;
tol=10^(-5);
n=100;
x0=2.;

For[i=1,i<=n,i++,
    x1=x0-f[x0]/f'[x0];
    If[f[x1]==0,Break[]];
    If[Abs[x1-x0]<tol,Break[]];
    x0=x1];
    
If[f[x0]==0,Print["Solución exacta: ",x0],
   Print["Solución aproximada: ",x0];
   Print["Número de iteraciones: ",i];
   Print["Error máximo cometido: ",tol] ]

Iteración funcional

g[x_] := 3  x/Exp[x];
tol = 10^(-5);
n = 100;
x0 = 0.5;

\(\(For[i = 1, i ≤ n, \(i++\), 
        x1 = g[x0]; 
If[f[x1] == 0, 
          Break[]]; 
If[Abs[x1 - x0] < tol, 
          Break[]]; 
x0 = 
          x1];\)
\)
If[f[x0] == 0, Print["Solución exacta: ", x0], 
      Print["Solución aproximada: ", 
        x0]; 
Print["Número de iteraciones: ", 
        i]; 
Print["Error máximo cometido: ", 
        tol]]