Операторы 6-8 демонстрируют ряд полезных операторов, необходимых для редактирования результатов вычислений и их преобразования с целью последующего вывода на печать. Для этого познакомимся с основными встроенными операторами, которые трансформируют и преобразуют векторные объекты.
Встроенный оператор APPEND(v1,v2,...,vk) выполняет конкатенацию векторов, перечисленных в списке параметров, то есть производит их сцепление, образуя один вектор суммарной размерности. Для образования матрицы из векторов с векторными компонентами размерность векторных компонент у сцепляемых векторов должна быть одинаковой.
Преобразование n-мерного вектора, получаемого в результате выполнения какого-либо оператора, создающего результат векторного типа, в прямоугольную матрицу размером (1´n) осуществляется простым заключением этого оператора в квадратные скобки. Внешний вид такой матрицы в поле алгебраического окна будет отличаться от вектора тем, что компоненты n столбцов единственной строки матрицы будут отделены друг от друга пробелами.
Взаимную трансформацию векторов и матриц рассмотрим на примере оператора VECTOR() В нем в качестве векторизуемой функции возьмем матрицу M из раздела суммирования членов ряда:
VECTOR(lim M , i, 1, 3)
n2 n,i
[2, -1, 1]
Этим оператором из матрицы M покомпонентно выбираются элементы второй строки, которые формируют результирующий вектор.
Здесь появилось еще одно новшество: подстановка в выражение с помощью встроенного оператора LIM вместо имени переменной ее локального значения. В общем случае оператор вычисления предела вызывается и исполняется следующим образом:
LIM((1 + 1/n)^n, n, , -1)
1 n
lim ¦1 + ¦
n n
2.71828182845
Взяв оператор VECTOR() в квадратные скобки, после его исполнения получим матрицу:
VECTOR(lim M , i, 1, 3)
n2 n,i
[ 2 -1 1 ]
Одновременно с квадратными скобками можно ввести оператор транспонирования, представляемый обратным штрихом (`), который ставится после закрывающей квадратной скобки матрицы или оператора, возвращающего результат векторного типа векторными компонентами одной размерности:
[VECTOR(LIM(Mni, n, 2), i, 1, 3)]`
VECTOR(lim M , i, 1, 3)`
n2 n,i
2
¦ -1 ¦
1
Если вместо оператора транспонирования поставить индекс выделения первой строки прямоугольной матрицы размера (1´n) , то в результате получится исходный вектор:
[VECTOR(LIM(Mni, n, 2), i, 1, 3)]1
VECTOR(lim M , i, 1, 3)
n2 n,i
1
[2, -1, 1]
В приведенном выше тексте программы численного интегрирования подобные действия с векторами и векторами с векторными компонентами использованы для наглядного, табличного представления результата интегрирования и его удобного сопоставления с результатом аналитического решения системы.
В данном примере в таблицу решения вводится заголовок и добавляется столбец табличных значений функции синуса с заголовком.
В качестве заголовка к столбцам таблицы числовых значений, созданной оператором Frk(h,k,m) и являющейся (m+1)-мерным вектором с 3-х мерными векторными компонентами, в программе использовано значение вектора v. В строке #6 вектор v, представленный здесь в форме вектора с одной векторной компонентой, и вектор Frk(h,k,m) преобразуются оператором F(h,k,m) в один вектор с суммарной длиной (m+2).
Для оцифровки аналитического решения исходной системы использован оператор #7 с именем Sin . Его оператор APPEND() слева к вектору с оцифрованными значениями присоединяет однокомпонентный вектор заголовка ["sin(2¹t)"]. Длина озаглавленного вектора аналитического решения равна длине столбца озаглавленной таблицы решения. Чтобы присоединить аналитический столбец к таблице, столбец нужно превратить в вектор с одной векторной компонентой, а таблицу –транспонировать. Результат сцепления необходимо транспонировать обратно. Перечисленные действия реализует оператор под номером #8, который содержит в списках своих аргументов фактические значения основных параметров численного решения задачи.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.