Мне нужно вычислить собственные значения и собственные векторы большой матрицы (около 1000 * 1000 или даже больше). Matlab работает очень быстро, но не гарантирует точности. Мне нужно, чтобы это было довольно точно (примерно ошибка 1e-06 в порядке) и в течение разумного времени (час или два в порядке).
Моя матрица симметрична и довольно разрежена. Точные значения: единицы по диагонали, и по диагонали под главной диагональю, и по диагонали над ней. Пример:
Как я могу это сделать? С++ мне удобнее всего.