Реклама:

/* Печать исходной матрицы */

System.out.println("Original matrix:"); System.out.println(a);

/* Вычисление разложения Холецкого и печать результатов */ result = theFactor.cholesky(1, a); System.out.println("Cholesky factorization:"); System.out.println(result[0]) ;

MWArray.disposeArray(result);

/* Вычисление разложения LU и печать результатов */ result = theFactor.ludecomp(2, a);

System.out.println("LU factorization:"); System.out.println("L matrix:"); System.out.println(result[0]); System.out.println("U matrix:"); System.out.println(result[1]); MWArray.disposeArray(result);

/* Вычисление разложения QR и печать результатов */ result = theFactor.qrdecomp(2, a) ;

System.out.println("QR factorization:"); System.out.println("Q matrix:"); System.out.println(result[0]); System.out.println("R matrix:"); System.out.println(result[1]);

}

catch (Exception e)

{

System.out.println("Exception: " + e.toString());

}

finally

{

/* Освобождение собственных ресурсов */ MWArray.disposeArray(a); MWArray.disposeArray(result); if (theFactor != null)

theFactor.dispose();

}

}

}

Обсуждение программы getfactor. Программа состоит из трех частей. Первая часть устанавливает входную матрицу, создает новый объект factor, и вызывает методы cholesky, ludecomp, и qrdecomp:

theFactor = new factor();

result = theFactor.cholesky(1, a);

result = theFactor.ludecomp(2, a);

result = theFactor.qrdecomp(2, a);

Отметим, что результат имеет тип массива Object[]. Он является аналогом массива ячеек. Например, после применения операции ludecomp, результат состоит из двух «ячеек» result[0] и result[1], в первой хранится двумерный числовой массив - матрица L, а во второй, result[1] - матрица U.

Эта часть выполняется в блоке try. Это сделано для того, чтобы в случае исключения была выполнена передача в блок catch. Вторая часть есть блок catch. Код печатает сообщение на стандартный вывод, чтобы сообщить пользователю об ошибке. Третья часть есть блок finally, чтобы вручную очистить свои ресурсы перед выходом.

2. Установка переменных среды и компиляция приложения. Скомпилируем приложение getfactor.java используя программу javac. Сначала необходимо установить переменные JAVA_HOME, CLASSPATH и пути, как указано в первом параграфе. Считаем, что JAVA_HOME и пути установлены в предыдущем разделе. Для установки переменной CLASSPATH достаточно исполнить следующую команду в строке DOS:

set CLASSPATH=

.;.\matlabroot\toolbox\javabuilder\jar\javabuilder.jar; D:\javabuilder examples\MatrixMathExample\factormatrix\distrib\ factormatrix.jar

Другой способ заключается в том, чтобы указать пути класса в командной строке Java при создании класса из кода powerspect.java следующим образом. Перейти в каталог D:\javabuilder_examples\MatrixMathExample и исполнить в нем следующую команду DOS (одна строка): javac -classpath

;matlabroot\toolbox\javabuilder\jar\javabuilder.jar;.\factormatrix\ distrib\factormatrix.jar .\MatrixMathDemoJavaApp\getfactor.java


⇐ Предыдущая страница| |Следующая страница ⇒