ReplaceToZero

Ersetze kleine Werte in einer Matrix/einem Vektor durch den Wert Null und gib die Anzahl der ersetzten Elemente zurück.

ulong vector::ReplaceToZero(
  const double   abs_tol      // absoluter Toleranzwert
   );
 
ulong vectorf::ReplaceToZero(
  const float    abs_tol      // absoluter Toleranzwert
   );
 
ulong vectorc::ReplaceToZero(
  const double   abs_tol      // absoluter Toleranzwert
   );
 
ulong vectorcf::ReplaceToZero(
  const float    abs_tol      // absoluter Toleranzwert
   );
 
ulong matrix::ReplaceToZero(
  const double   abs_tol      // absoluter Toleranzwert
   );
 
ulong matrixf::ReplaceToZero(
  const float    abs_tol      // absoluter Toleranzwert
   );
 
ulong matrixc::ReplaceToZero(
  const double   abs_tol      // absoluter Toleranzwert
   );
 
ulong matrixcf::ReplaceToZero(
  const float    abs_tol      // absoluter Toleranzwert
   );

Parameter

abs_tol

[in]  Absoluter Toleranzwert, der mit dem Vektor-/Matrixelement verglichen wird. Wenn der Absolutwert des Vektors/der Matrix kleiner oder gleich dem absoluten Toleranzwert ist, wird das Element durch Null ersetzt. In komplexen Fällen wird der Modul des komplexen Werts ( sqrt(value.real*value.real+value.imag*value.imag) ) mit dem absoluten Toleranzwert verglichen.

Rückgabewert

Die Anzahl der Matrix-/Vektor-Kleinstelemente, die durch Null ersetzt wurden.RückgabewertRückgabewertDie Anzahl der kleinen Matrix-/Vektorelemente, die durch Null ersetzt wurden.

Beispiel

   matrixf a={{ 11234},
              { 12567},
              { 2539,10},
              { 36945},
              { 47,1055}};
   matrixf ai=a.Inv();
//--- Die Ergebnismatrix sollte eine Einheitsmatrix sein.
   matrixf aai=a@ai;
   Print(aai);
//--- kleine Werte ersetzen
   ulong replaced=aai.ReplaceToZero(1e-5);
   Print("replaced=",replaced);
//--- das sieht eher wie eine Identitätsmatrix aus
   Print(aai);
 
  /*
[[0.99999976,0,0,-2.3841858e-07,0]
 [-4.1723251e-07,1,1.8626451e-09,-5.9604645e-08,2.3841858e-07]
 [-1.0728836e-06,-1.1920929e-07,0.99999994,-8.3446503e-07,4.7683716e-07]
 [-2.9802322e-07,5.9604645e-08,-3.9115548e-08,0.99999958,0]
 [-5.9604645e-08,-5.9604645e-08,4.2840838e-08,-6.5565109e-07,1.0000002]]
replaced=20
[[0.99999976,0,0,0,0]
 [0,1,0,0,0]
 [0,0,0.99999994,0,0]
 [0,0,0,0.99999958,0]
 [0,0,0,0,1.0000002]]
  */