- •Лабораторная работа №1
- •1. Основные сведения о программе WordPad
- •2. Основные сведения о программе WordPad
- •3. Технология ole
- •Порядок выполнения работы:
- •Вопросы к защите:
- •Лабораторная работа №2
- •1. Основные сведения о программе Microsoft Word
- •3. Краткое описание работы с фрагментами текста
- •2. Краткое описание основных операций работы с текстом
- •4. Структура документов в Microsoft Excel
- •4.1. Добавление рабочих листов
- •5. Построение таблиц
- •5.1. Маркирование ячеек
- •5.2. Форматирование чисел
- •6. Табличные вычисления
- •6.1. Ввод формул
- •6.2. Сложные формулы
- •6.4. Групповые имена
- •7. Построение и оформление диаграмм
- •7.1. Построение диаграмм
- •8. Обработка списков
- •8.1. Создание списков
- •8.2. Ввод списка данных
- •9. Анализ данных
- •9.1. Опорные таблицы
- •9.2. Нахождение значений
- •10. Базы данных
- •10.1. Запуск программы обработки баз данных
- •10.2. Оболочка программы Query
- •Порядок выполнения работы
- •Вопросы:
- •Лабораторная работа №3
- •Введение
- •1. Обзор Photoshop
- •1.1. Меню Photoshop
- •1.2. Создание нового файла
- •2. Палитра инструментов Photoshop
- •2.1. Инструменты выделения
- •2.2. Инструменты рисования
- •2.3. Инструменты создания и редактирования контуров
- •2.4. Значки управления цветами
- •2.5. Кнопки управления структурой окна
- •2. Рекурсия
- •3. Об использовании операторов break continue return
- •Контрольные вопросы:
- •Задание:
- •Лабораторная работа №5
- •Введение
- •1. Возможности программы abbyy FineReader
- •1.1. Что такое ocr-системы?
- •Распознавание
- •2. Быстрое знакомство
- •2.1. Как ввести документ за минуту
- •2.2. Главное окно программы FineReader
- •2.3. Инструментальные панели программы FineReader
- •3. Получение и обработка изображения программой FineReader
- •3.1. Сканирование
- •3.2. Открытие файлов с изображениями
- •3.3. Проверка и корректирование полученного изображения
- •4. Анализ макета страницы
- •4.1. Общая информация по анализу макета страницы
- •4.2. Типы блоков
- •4.3. Редактирование формы и положения блоков
- •5. Распознавание
- •5.1. Общая информация по распознаванию
- •6. Проверка и редактирование текста
- •6.1. Проверка распознанного текста
- •1. Быстрое начало
- •1.1 Перевод в среде promt
- •1.2 Перевод внутри других приложений
- •2. Объекты системы promt
- •2.1 Словари
- •2.1.1 Генеральные словари
- •2.1.2 Специализированные словари
- •2.1.3 Пользовательские словари
- •2.2. Promt – документ
- •2.2.1.Открытие документа, созданного в другом приложении
- •2.2.2. Открытие существующего promt – документа
- •3. Функции системы promt
- •3.1. Последовательность работы в promt
- •3.2. Перевод
- •3.2.1. Способы перевода
- •3.2.2. Быстрый перевод текста, набранного на клавиатуре
- •4. Проверка орфографии
- •4.1. Программы проверки орфографии
- •4.1.1. Подключение программы проверки орфографии
- •4.1.2. Проверка орфографии
- •Контрольные вопросы:
- •Задания:
- •Лабораторная работа №7
- •Введение в компьютерную алгебру
- •1. Аналитические преобразования
- •1.1. Важнейшие математические константы
- •1.2. Встроенные функции
- •2. Представления матеметических объектов
- •2.1. Некоторые простые математические операции
- •2.2. Составные математические объекты
- •3. Команды ввода и вывода
- •4. Дифференцирование
- •4.1. Встроенные процедуры дифференцирования
- •4.2. Определение собственных функций
- •5. Интегрирование
- •5.1. Встроенные команды интегрирования
- •5.2. Двойные и тройные интегралы в Maple
- •6. Линейная алгебра
- •6.1. Основные операции над матрицами
- •6.2. Собственные числа и вектора
- •6.3. Приведение матриц
- •6.4. Системы линейных уравнений
- •Контрольные вопросы:
- •Задания:
- •Список литературы
- •Оглавление
6.2. Собственные числа и вектора
Рассмотрим теперь проблему нахождения собственных значений и собственных векторов матриц. В Maple данная проблема может быть решена несколькими способами.
Пример 6 (собственные числа и вектора).
Обсудим проблему нахождения собственных чисел и векторов. Для начала загрузим пакет линейной алгебры и определим произвольную матрицу
> restart:with(linalg):
> A:= matrix([[1,2,3],[2,3,4],[4,5,6]]);
По определению, собственные числа матрицы A являются корнями характеристического полинома det(A-lambda*I) по переменной lambda. Найдем этот полином
> cp:= det(A-lambda);
Корни кубического полинома легко найти аналитически
> solve(cp,lambda);
Можно найти эти значения непосредственно из матрицы
> e:= eigenvals(A);
Однако, попробуем заставить систему вычислить эти собственные значения в форме чисел с плавающей запятой
> B:= map(evalf,A);
> eigenvals(B);
Как видим, из-за погрешностей округления нулевое собственное значение перестало быть нулем. Мораль: система Maple (Matemetica) не предназначена для численных расчетов.
Найдем теперь собственные вектора матрицы. По определению это решения уравнения A x = lambda x, т.е. данные вектора определяют пространство вырождения матрицы A - lambda I.
> nullspace(e[1]-A);
> nullspace(e[2]-A);
> nullspace(e[3]-A);
Естественно, что существует возможность определить собственные числа и вектора одновременно
> e := eigenvects(A,radical);
Ответ представляется списком, состоящим зи списков. Для выделения вложенных элементов используют общие правила
> e1:= e[1][1]; v1 := e[1][3][1];
> evalm((e1 - A) &* v1 );
Аналогично можно работать с матрицами, определенными аналитически, т.е. не числовыми. Например
> T:= toeplitz( [a,b,c] );
> eigenvals(T,radical);
> e:= eigenvects(T,radical);
Однако, для корней полиномов старших степеней невозможно найти аналитическое представление. В силу этого, результаты могут быть представлены достаточно неожиданным способом. Рассмотри матрицу
> A:= matrix(
> [[-a1/a2, 1/a2, 0, 1/(R*a2)],
> [1, 0, 0, 0],
> [-q1*a1/a2, q1/a2, 0, a2 + q1/(a2*R)],
> [q2, 0, 1, a1]]);
>
Характеристический полином четвертого порядка невырожден
> cp:= det(lambda-A);
т.е. не факторизуется на множители
> factor(cp);
Все корни подобных полиномов Maple представляет как единое выражение.
> solve(cp,lambda);
Для собственных векторов мы также получим одно выражение
> eigenvects(A);
Второй аргумент показывает, что все четыре собственных значения невырождены. Таким образом, можно найти корни полинома численно и подставить их в данную формулу.
Рассмотрим теперь пример, в котором характеристический полином факторизуется
> B:= matrix(6,6,
> [0,0,0,0,0,a,
> 0,1,0,0,0,-b,
> 0,0,0,-a,b,0,
> 0,0,-c,0,0,0,
> 0,0,d,0,0,0,
> c,-d,0,2,0,0] );
>
> cp:= charpoly(B,lambda);
> f:= factor(cp);
Как видно lambda=0 является собственным значением. Построим характеристическую матрицу C=lambda I -B при lambda=0
> C:= charmat(B,0);
и найдем соответствующий собственный вектор.
> nullspace(C);
Аналогично поступим и со следующими двумя собственными значениями. Например, для + sqrt(ac+bd) получим
> C:= charmat(B, sqrt(a*c+b*d));
> nullspace(C);
Теперь перейдем к кубическому полиному. Присвоим корням этого полинома имя beta
> alias( beta=RootOf(op(3,f),lambda) );
и найдем соответствующие вектора
> C := charmat(B,beta);
> nullspace(C);
Для сравнения получим все эти ответы сразу, используя многоцелевую команду
> eigenvects(B);
Во-первых, следует заметить, что вектора, отвечающие кубической части полинома отличаются от полученных ранее. Это связано с тем, что собственные вектора определяются с точностью до скалярного множителя. Во вторых, когда выдается так много информации сразу, то в ней бывает достаточно сложно разобраться. Так что, это уже дело вкуса какой из путей выбрать для данных вычислений.
Рассмотрим теперь матрицы с вырожденными собственными значениями
> A:= matrix(4,4,[0,1,0,0,-u^2,2*u,0,0,-u*v,v,u,0,-u*t,t,0,u]);
>
> e:= eigenvects(A);
В ответе мы получили четыре совпадающих собственных значения и базис из трех собственных векторов. Это означает, что два вектора совпадают.
Проверим наш ответ. Соберем из векторов матрицу
> X:= augment(e[3][1], e[3][2], e[3][3] );
и подставим ее в наше уравнение
> evalm((u-A) &* X)
