Algorithms and Subroutines for Solving Differential Equations
Author: Philip Nelson
Language: C++
This demonstrates the condition number method on the tri-diagonal matrix used to solve the Elliptic ODE.
The condition number of the NxN matrix with increasing N. Observe that as the size of the matrix increases, the condition number increases unbounded
int main()
{
std::cout << "A\n" << SecOrdFinDifMethEllipticMat<double, 5>() << std::endl << std::endl;
std::cout << "3x3" << std::endl;
std::cout << conditionNumber(SecOrdFinDifMethEllipticMat<double, 3>()) << std::endl << std::endl;
std::cout << "5x5" << std::endl;
std::cout << conditionNumber(SecOrdFinDifMethEllipticMat<double, 5>()) << std::endl << std::endl;
std::cout << "10x10" << std::endl;
std::cout << conditionNumber(SecOrdFinDifMethEllipticMat<double, 10>()) << std::endl << std::endl;
std::cout << "15x15" << std::endl;
std::cout << conditionNumber(SecOrdFinDifMethEllipticMat<double, 15>()) << std::endl << std::endl;
std::cout << "25x25" << std::endl;
std::cout << conditionNumber(SecOrdFinDifMethEllipticMat<double, 25>()) << std::endl << std::endl;
std::cout << "75x75" << std::endl;
std::cout << conditionNumber(SecOrdFinDifMethEllipticMat<double, 75>()) << std::endl << std::endl;
std::cout << "100x100" << std::endl;
std::cout << conditionNumber(SecOrdFinDifMethEllipticMat<double, 100>()) << std::endl << std::endl;
}A
| -2 1 0 |
| 1 -2 1 |
| 0 1 -2 |
3x3
-5.82843
5x5
-13.9282
10x10
-48.3742
15x15
-103.087
25x25
-273.306
75x75
-2340.09
100x100
-4133.2
Last Modification date: 27 February 2018