3 7 8 z 9
Из матрицы коэффициентов и матрицы правых частей сделаем присоединенную матрицу (3´4):
1 4 5 6
C := ¦ 2 1 2 3 ¦
3 7 8 9
Подстановка ее в оператор процедуры и исполнение последней даст
FORCE0(APPEND(C , VECTOR(FORCE0(C, i, 1, 1) , i, 2,~
1 i ~DIMENSION(C))), 3, 2, 2)
1 4 5 6
¦ 0 -7 -8 -9 ¦
0 0 -1.285714285 -2.571428571
Вид вектора системы уравнений с исключенными переменными можно получить, исполнив следующее матричное уравнение:
x
1 4 5 6 ¦ ¦ 0
¦ ¦ ¦ y ¦ ¦ ¦
¦ 0 -7 -8 -9 ¦ ¦ ¦ = ¦ 0 ¦
¦ ¦ ¦ z ¦ ¦ ¦
0 0 -1.2857 -2.5714 ¦ ¦ 0
-1
x + 4·y + 5·z - 6 = 0
¦ - 7·y - 8·z + 9 = 0 ¦
2.5714 - 1.2857·z = 0
Эта система легко решается, начиная с нижнего уравнения, из которого получается z=2 , затем из второго – y=-1 и первого – x=0.
Для сокращения длины записи иерархической структуры процедур удобно вместо вставляемых операторов подставлять их оригинальные имена со списком параметров или без, которым предварительно в качестве значений присвоены определения в форме текстов процедур или операндов.
В DERIVE имеются встроенные операторы решения алгебраических уравнений и операторы решения систем линейных уравнений.
x + 4·y + 5·z = 6
¦ ¦
U(x, y, z) := ¦ 2·x + y + 2·z = 3 ¦
¦ ¦
3·x + 7·y + 8·z = 9
SOLVE(U(x, y, z), [x, y, z])
[ x = 0 y = -1 z = 2 ]
Здесь вектор уравнений, или матрица со строчками отдельных уравнений, или их имя служит первым фактическим параметром оператора SOLVE(). Вторым параметром списка служит вектор переменных, записанных в том порядке, в котором их значения желательно получать в векторе решений. Сам текст оператора можно записывать в командной строке или использовать горячую клавишу с изображением знака ‘=’ нутри лупы.
При решении алгебраических кроме уравнения или его имени в список формальных параметров помещают имя искомой переменной:
2 3
x + 4·x + 5·x = 6
2 3
SOLVE(x + 4·x + 5·x = 6, x)`
Строка с оператором SOLVE() в данном примере заключена в квадратные скобки и помечена оператором транспонирования с тем, чтобы вектор решения был представлен матрицей с одним столбцом:
x = 0.80468
¦ x = -0.80234 + 0.92060·î ¦
x = -0.80234 - 0.92060·î
Оператор SOLVE() удобно применять для разрешения алгебраических выражений относительно необходимой переменной, например:
x·t - 1
= 5·x
x + t
x·t - 1
¦SOLVE¦ = 5·x, x¦¦`
x + t
2
¦ x = - 0.2·((4·t - 5) + 2·t) ¦
¦ ¦
¦ 2 ¦
x = 0.2·((4·t - 5) - 2·t)
Для решения трансцендентных уравнений одной переменной в список параметров оператора SOLVE() добавляются еще два фактических параметра: нижний и верхний пределы диапазона, в котором может находиться его корень. Уравнение желательно представлять в неявной форме, то есть с правой частью равной нулю, который записывать необязательно, так как при подстановке функции в оператор SOLVE() он по умолчанию подразумевается. Исполняется оператор нажатием кнопки ‘»’.
x
ê + 3
f(x) := - 5·x
x + SIN(x)
SOLVE(f(x), x, 0, 2)
NotationDigits := 12
[x = 0.727914584236]
В предпоследней строке показан способ установки в нужный момент количества значащих десятичных разрядов в выводимых числах результатов вычислений. Такая уставка будет действовать для всех операторов, записанных в текущей сессии, пока аналогичным образом или через меню его значение не будет изменено на другое. Такой способ установки позволителен для всех инициализируемых параметров пакета DERIVE.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.