|
|
|
@ -94,13 +94,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat |
|
|
|
var y = DenseVector.Create(matrix.RowCount, i => Complex32.One); |
|
|
|
|
|
|
|
// Create an iteration monitor which will keep track of iterative convergence
|
|
|
|
var monitor = new Iterator<Complex32>(new IIterationStopCriterium<Complex32>[] |
|
|
|
{ |
|
|
|
new IterationCountStopCriterium<Complex32>(MaximumIterations), |
|
|
|
new ResidualStopCriterium(ConvergenceBoundary), |
|
|
|
new DivergenceStopCriterium(), |
|
|
|
new FailureStopCriterium() |
|
|
|
}); |
|
|
|
var monitor = new Iterator<Complex32>( |
|
|
|
new IterationCountStopCriterium<Complex32>(MaximumIterations), |
|
|
|
new ResidualStopCriterium(ConvergenceBoundary), |
|
|
|
new DivergenceStopCriterium(), |
|
|
|
new FailureStopCriterium()); |
|
|
|
|
|
|
|
var solver = new BiCgStab(); |
|
|
|
|
|
|
|
// Solve equation Ax = y
|
|
|
|
@ -139,13 +138,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat |
|
|
|
var y = DenseVector.Create(matrix.RowCount, i => Complex32.One); |
|
|
|
|
|
|
|
// Create an iteration monitor which will keep track of iterative convergence
|
|
|
|
var monitor = new Iterator<Complex32>(new IIterationStopCriterium<Complex32>[] |
|
|
|
{ |
|
|
|
new IterationCountStopCriterium<Complex32>(MaximumIterations), |
|
|
|
new ResidualStopCriterium(ConvergenceBoundary), |
|
|
|
new DivergenceStopCriterium(), |
|
|
|
new FailureStopCriterium() |
|
|
|
}); |
|
|
|
var monitor = new Iterator<Complex32>( |
|
|
|
new IterationCountStopCriterium<Complex32>(MaximumIterations), |
|
|
|
new ResidualStopCriterium(ConvergenceBoundary), |
|
|
|
new DivergenceStopCriterium(), |
|
|
|
new FailureStopCriterium()); |
|
|
|
|
|
|
|
var solver = new BiCgStab(); |
|
|
|
|
|
|
|
// Solve equation Ax = y
|
|
|
|
@ -217,13 +215,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat |
|
|
|
var y = DenseVector.Create(matrix.RowCount, i => Complex32.One); |
|
|
|
|
|
|
|
// Create an iteration monitor which will keep track of iterative convergence
|
|
|
|
var monitor = new Iterator<Complex32>(new IIterationStopCriterium<Complex32>[] |
|
|
|
{ |
|
|
|
new IterationCountStopCriterium<Complex32>(MaximumIterations), |
|
|
|
new ResidualStopCriterium(ConvergenceBoundary), |
|
|
|
new DivergenceStopCriterium(), |
|
|
|
new FailureStopCriterium() |
|
|
|
}); |
|
|
|
var monitor = new Iterator<Complex32>( |
|
|
|
new IterationCountStopCriterium<Complex32>(MaximumIterations), |
|
|
|
new ResidualStopCriterium(ConvergenceBoundary), |
|
|
|
new DivergenceStopCriterium(), |
|
|
|
new FailureStopCriterium()); |
|
|
|
|
|
|
|
var solver = new BiCgStab(); |
|
|
|
|
|
|
|
// Solve equation Ax = y
|
|
|
|
@ -262,11 +259,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat |
|
|
|
var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); |
|
|
|
var vectorb = MatrixLoader.GenerateRandomDenseVector(order); |
|
|
|
|
|
|
|
var monitor = new Iterator<Complex32>(new IIterationStopCriterium<Complex32>[] |
|
|
|
{ |
|
|
|
new IterationCountStopCriterium<Complex32>(1000), |
|
|
|
new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) |
|
|
|
}); |
|
|
|
var monitor = new Iterator<Complex32>( |
|
|
|
new IterationCountStopCriterium<Complex32>(1000), |
|
|
|
new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); |
|
|
|
|
|
|
|
var solver = new BiCgStab(); |
|
|
|
|
|
|
|
var resultx = matrixA.SolveIterative(vectorb, solver, monitor); |
|
|
|
@ -305,11 +301,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat |
|
|
|
var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); |
|
|
|
var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); |
|
|
|
|
|
|
|
var monitor = new Iterator<Complex32>(new IIterationStopCriterium<Complex32>[] |
|
|
|
{ |
|
|
|
new IterationCountStopCriterium<Complex32>(1000), |
|
|
|
new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) |
|
|
|
}); |
|
|
|
var monitor = new Iterator<Complex32>( |
|
|
|
new IterationCountStopCriterium<Complex32>(1000), |
|
|
|
new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); |
|
|
|
|
|
|
|
var solver = new BiCgStab(); |
|
|
|
var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); |
|
|
|
|
|
|
|
|