Тогда можно умножить каждый столбец на своё число

так, чтобы его элементы по порядку были бы (например) около единицы. В результате определитель матрицы умножится на произведение всех

(хотя зачем мне сдался этот определитель?). Может случиться, что систему с модифицированной таким образом матрицей решить проще (хотя число обусловленности у неё будет точно такое же, как и у исходной матрицы). А потом от решения этой системы легко перейти к решению исходной, разделив каждое

на

.
Если число обусловленности окажется большим, то Вам, как минимум, нужно будет обеспечить, чтобы относительная погрешность элементов матрицы и правой части была бы не меньше желаемой относительной погрешности решения, делённой на

. Кроме того, нужно будет вести вычисления с точностью, не менее чем на

десятичных разрядов превосходящей желаемую точность результата. Например, если Вас устраивает точность 5 знаков после запятой, а число обусловленности равно

, то вычисления нужно вести с точностью минимум 37 знаков после запятой (на самом деле ещё больше, т.к. погрешность накапливается в ходе вычислений). Напомню, что тип float обеспечивает точность около 7 знаков после запятой, double --- 14-15, long double (x86) --- 18. Может статься, точности стандартных типов Вам не хватит, и тогда придётся пользоваться специальными библиотеками.
Добавлено спустя 23 минуты 50 секунд:
Fgolm писал(а):
Дело в том, что эти СЛАУ берут только прямые методы. Ни один итерационный метод не дает нормального ответа (или расходится вообще, или сходится крайне медленно (например один метод СЛАУ 10*10 решил за 2000000 итераци1 с невязкой 0,1%)). То есть это все равно косвенно говорит о плохой обусловленности (во всяком случае с прикладной точки зрения).
Большинству итерационных методов нужна ещё симметричность и положительная определённость матрицы. У Вас эти условия выполняются? Если нет --- то действительно, такие методы не подходят. Но вот обусловленность тут ни при чём. Эта характеристика матрицы не зависит от того, каким методом мы будем решать систему.