Ejemplo n.º 1
0
 public DaThuc Lagrange()
 {
     var length = bangSo.N;
     var D1y = new MaTran(1, length);
     for (int i = 0; i < length; i++)
     {
         D1y[0, i] = 1;
     }
     for (int i = 0; i < length; i++)
     {
         for (int j = 0; j < length; j++)
         {
             if (i == j)
             {
                 continue;
             }
             D1y[0, i] *= bangSo[0, i] - bangSo[0, j];
         }
         D1y[0, i] = bangSo[1, i] / D1y[0, i];
     }
     var ketQua = new DaThuc();
     for (int i = 0; i < length; i++)
     {
         var temp = new DaThuc();
         temp[0] = 1;
         for (int j = 0; j < length; j++)
         {
             if (i == j)
             {
                 continue;
             }
             var temp2 = new DaThuc();
             temp2[1] = 1;
             temp2[0] = -bangSo[0, j];
             temp = temp.NhanVoiDaThucBac1(temp2);
         }
         temp = temp * D1y[0, i];
         ketQua = ketQua + temp;
     }
     return ketQua;
 }
Ejemplo n.º 2
0
 public DaThuc NewtonTongQuat()
 {
     var length = bangSo.N;
     var bangTiHieu = new MaTran(length, length);
     for (int i = 0; i < length; i++)
     {
         bangTiHieu[i, 0] = bangSo[1, i];
     }
     for (int i = 1; i < length; i++)
     {
         for (int j = 0; j < length - i; j++)
         {
             var tuSo = bangTiHieu[j + 1, i - 1] - bangTiHieu[j, i - 1];
             var mauSo = bangSo[0, j + i] - bangSo[0, j];
             bangTiHieu[j, i] = tuSo / mauSo;
         }
     }
     var ketQua = new DaThuc();
     ketQua[0] = bangTiHieu[0, 0];
     for (int i = 0; i < length - 1; i++)
     {
         var temp = new DaThuc();
         temp[0] = 1;
         for (int j = 0; j < i+1; j++)
         {
             var temp2 = new DaThuc();
             temp2[1] = 1;
             temp2[0] = -bangSo[0, j];
             temp = temp.NhanVoiDaThucBac1(temp2);
         }
         temp = temp * bangTiHieu[0,i+1];
         ketQua = ketQua + temp;
     }
     return ketQua;
 }