예제 #1
0
 /// <summary>
 /// Calcula o gradiente da função em determinado ponto.
 /// </summary>
 /// <param name="n">Número de variáveis.</param>
 /// <param name="fx">Função a ser calculado o gradiente.</param>
 /// <param name="x">Ponto a ser obtido o gradiente.</param>
 /// <returns>Retorna o valor do gradiente no ponto x.</returns>
 public static IEnumerable <double> CalculaGradiente(int n, string fx, double[] x)
 {
     for (int i = 0; i < n; i++)
     {
         yield return(DerivadasMultivariaveis.Derivada1(n, fx, x, i));
     }
 }
예제 #2
0
 /// <summary>
 /// Calcula o Hessiano do ponto x.
 /// </summary>
 /// <param name="n">Ordem da função.</param>
 /// <param name="fx">Função.</param>
 /// <param name="x">Ponto a ser obtido hessiano.</param>
 /// <returns>Retorna hessiano.</returns>
 public static double[,] Hessiano(int n, string fx, double[] x)
 {
     double[,] Hess = new double[n, n];
     for (int i = 0; i < n; i++)
     {
         for (int j = 0; j < n; j++)
         {
             Hess[i, j] = DerivadasMultivariaveis.DerivadaParcial2(n, fx, x, i, j);
         }
     }
     return(Hess);
 }