116
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН Казахский национальный технический университет имени К.И.Сатпаева Институт информационных технологий Кафедра технической кибернетики В.З. Абдуллина, А.У. Муртазина КОМПЬЮТЕРНЫЕ ВЫЧИСЛЕНИЯ Учебно-методический комплекс дисциплины (для специальности 050704 - Вычислительная техника и программное обеспечение) АЛМАТЫ 2010

Abdulina Umk Komp Vych 050704 2010

Embed Size (px)

Citation preview

Page 1: Abdulina Umk Komp Vych 050704 2010

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИКАЗАХСТАН

Казахский национальный технический университет имени К.И.Сатпаева

Институт информационных технологий

Кафедра технической кибернетики

В.З. Абдуллина, А.У. Муртазина

КОМПЬЮТЕРНЫЕ ВЫЧИСЛЕНИЯУчебно-методический комплекс дисциплины

(для специальности 050704 - Вычислительная техника ипрограммное обеспечение)

АЛМАТЫ 2010

Page 2: Abdulina Umk Komp Vych 050704 2010

СОСТАВИТЕЛИ: Абдуллина В.З, Муртазина А.У. Компьютерныевычисления. Учебно-методический комплекс дисциплины (для специальности050704 - Вычислительная техника и программное обеспечение. - Алматы:КазНТУ имени К.И.Сатпаева, 2010. 98 с.

Аннотация: Учебно-методический комплекс дисциплин студента (УМК ДС)представляет собой документ, определяющий концепцию курса«Компьютерные вычисления». Учебно-методический комплексзнакомит студентов с принципами и методами использованиячисленных методов для решения задач, выполненияматематических расчетов с помощью современныхпрограммных пакетов на компьютере таких, как пакет MATLAB.Учебно-методический комплекс выдается студенту передначалом изучения дисциплины и содержит учебную программудисциплины (Syllabus), тематический план курса, системузаданий для самостоятельной работы студентов, графиквыполнения отчетных работ по дисциплине. Ценность данногоУКМ состоит в распределении учебного времени по темам ивидам учебных занятий, организации самостоятельной работыстудентов в аудиторное и внеаудиторное время, активизациипознавательной и творческой деятельности студентов иобеспечения взаимосвязи учебного и исследовательскогопроцессов.

Итоговая строка (табл. 6, рис. 18)

Рецензент зав. кафедрой ВТ, проф., к.т.н. Ермаков А.С.

1 © КазНТУ имени К.И.Сатпаева,2010УЧЕБНАЯ ПРОГРАММА ДИСЦИПЛИНЫ – SYLLABUS

Page 3: Abdulina Umk Komp Vych 050704 2010

Данные о преподавателях:Преподаватели, ведущие занятия Абдуллина В..З., доцент кафедры технической кибернетики, канд.

техн. наук, Муртазина А.У. , доцент кафедры технической кибернетики

Контактная информация_______257-71-96________________________ телефон, E-mail

Время пребыванияна кафедре_____________________________________________________ аудитория, время

Данные о дисциплине:Название «Компьютерные вычисления»Количество кредитов 3Место проведения компьютерные лаборатории кафедры технической

кибернетики

Таблица 1Выписка из учебного плана

Академических часов в неделю

Кур

с

Сем

естр

Кре

диты Лек

цииЛаб. занятия

Практ.заня-тия

СРС СРСП Все-го

Формаконтро-ля

1 2 3 4 5 6 7 8 9 102 3 3 2 1 3 3 9 экзамен

1.3 Пререквизиты: Дисциплина «Компьютерные вычисления»базируется на знаниях, полученных при изучении дисциплин «Информатика»и «Программирования на алгоритмических языках»

1.4 Постреквизиты: Дисциплины, изучение которых базируется назнаниях, полученных при изучении данной дисциплины: «Модели и методыоптимизации», «Программные средства компьютерных систем».

1.5 Краткое описание дисциплины Целью изучения дисциплины «Компьютерные вычисления» являетсяизучение принципов и методов выполнения математических расчетов спомощью современных программных пакетов на компьютере.

В результате изучения дисциплины «Компьютерные вычисления»

Page 4: Abdulina Umk Komp Vych 050704 2010

Студенты должны знать:- принципы реализации численных методов алгебры и анализа;- принципы и методы, используемые при работе с интегрированными

пакетами математических вычислений;- возможности реализации статистической обработки и использования

численных методов.Студенты должны уметь:

- производить различные вычисления для научно-технических расчетов;- использовать современные вычислительные пакеты.

1.6 Перечень и виды заданий и график их выполнения

График заданий и сроки их выполнения приведены в Таблице 2.

Таблица 2Виды заданий и сроки их выполнения

Видыконтроля

Видрабо-ты

Тема работы Ссылки нарекомендуе-мую литера-туру с указа-нием страниц

Срокисдачи

Текущийконтроль

Л1 Вычисление выражений 5ocн[56-71],4доп [3-8]

2 нед.

Текущийконтроль

Л2 Работа с элементарнымифункциями

5ocн[245-276],4доп[8-15]

4 нед.

Текущийконтроль

Л3 Работа с двумернымиграфиками

5ocн[157-165,175-187],4доп[15-24]

6 нед.

Рубеж-ныйконтроль

PK1 Вычисление выраженийнад векторами и матри-цами. Встроенные функ-ции. Команды построения иредактирования двумерныхграфиков. Основные опе-раторы в MATLAB.

5ocн[49-51,67-71,157-212,245-278,467-491],4доп[3-24]

6 нед.

Текущийконтроль

СР1 Обработка векторов иматриц в виде m-файлов

5ocн[472-479],2доп[116-124],4доп[26-31]

7нед.

Текущийконтроль

Л4 Работа с трехмернымиграфиками

5ocн[157-165,175-187],4доп[15-24]

8нед.

Текущий Л5 Статистическая обработка 5ocн[402-408], 10

Page 5: Abdulina Umk Komp Vych 050704 2010

контроль 4доп[24-25] нед.Рубеж-ныйконтроль

PK2 Математическое модели-рование. Схема вычис-лительного эксперимента.Классы численных мето-дов. Понятия математи-ческой модели, устой-чивости, корректности исходимости. Решение СЛУ.

1ocн[11-13],2ocн[9-13,25-29], 5ocн[56-60,467-491], 1доп [13-17],4доп [3-12]

12 нед.

Текущийконтроль

Л6 Решение систем линейныхуравнений

1ocн[48-69],2ocн[114-139],5ocн[366-371],4доп [26-31],5доп [3-14]

12 нед.

Текущийконтроль

СР2 Численные методы в пакетеMATLAB для решенияСЛУ, вычисление корнейфункции минимизациифункций, аппроксимациипроизводных, численногоинтегрирования, работы сполиномами, решенияОДУ.

1ocн[48-79,161-185,190-195,214-235], 2ocн[36-49,92-161,169-185, 205-226], 5осн [366-378, 386-395],1доп [18-42,106 -116], 3доп[5-66] , 4доп[24-31], 5доп[3-21]

14 нед.

Текущийконтроль

Л7 Вычисление нулей иминимизации функции

1ocн[48-69],2ocн[114-139],5ocн[366-371],4доп [26-31],5доп [3-14]

15 нед.

1.7 Список литературы

Основная литература1. Самарский А. А. Численные методы: Уч. пособие для вузов. – М.: Наука,

1989. 274 с.2. Турчак Л.И. Основы численных методов: Уч. пос. – М.: Наука, 1987. 312 с.3. Яблочкин Л.Б. и др. Основы численных методов. Уч. пос. – Тула: ТГУ,

2000. 369 с.4. Ракитин В. И., Первушин В.Е. Практическое руководство по методам

вычислений с приложением программ для персональных компьютеров. Уч.пос. – М.: Высшая школа, 1998. 382 с.

Page 6: Abdulina Umk Komp Vych 050704 2010

5. Дьяконов В. MATLAB: учебный курс. – СПб.: Питер, 2001. 578 с.

Дополнительная литература1. Краскевич В.Е. и др. Численные методы в инженерных исследованиях. –

Киев: Вища школа, 1986. 347 с.2. Потемкин В.Г. Инструментальные средства MATLAB 5X. – М.: ДИАЛОГ-

МИФИ, 2000. 290 с.3. Плис А.И., Сливина Н.А. Лабораторный практикум по высшей математике.

Уч. пос. - М.: Высшая школа, 1983. 248 с.4. Абдуллина В.З. Компьютерные вычисления в пакете MATLAB.

Методические указания к лабораторным работам и самостоятельной работестудентов по дисциплине «Компьютерные вычисления». – Алматы:КазНТУ, 2005. 32 с.

5. Абдуллина В.З. Методы инженерных вычислений в MATLAB. Мет.указания к курс. проекту и самост. работе студентов по дис-нам«Компьютерные вычисления» и «Инженерные методы расчета» (для спец-тей 050703 и 050704). – Алматы: КазНТУ, 2006. 32 с.

Контроль и оценка знаний

По кредитной технологии обучения для всех курсов и по всемдисциплинам Казахского национального технического университета имениК.И.Сатпаева применяется рейтинговый контроль знаний студентов. Сведенияоб оценке знаний осуществляются по балльно-рейтинговой системе в видешкалы, где указываются все виды контроля.

Рейтинг каждой дисциплины, которая включена в рабочий учебный планспециальности, оценивается по 100-бальной шкале.

Для каждой дисциплины устанавливается следующие виды контроля:текущий контроль, рубежный контроль, итоговый контроль.

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

Сроки сдачи результатов текущего контроля определяются календарнымграфиком учебного процесса по дисциплине (Таблица 4). Количество текущихконтролей определяется содержанием дисциплины и ее объемом, котороеуказывается в учебно-методическом комплексе дисциплины.

Итоговая оценка по дисциплине определяется по шкале (таблица 5).

Таблица 3Распределение рейтинговых % по видам контроля

№ Вид итогового Виды контроля %

Page 7: Abdulina Umk Komp Vych 050704 2010

вариантов контроляИтоговый контроль 100Рубежный контроль 100

1. Экзамен

Текущий контроль 100

Таблица 4Календарный график сдачи всех видов контроля

по дисциплине «Компьютерные вычисления»Неделя 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Видыконтро-ля

Л1 Л1 Л2 Л2 Л3 Л3PК1

Л4СР1

Л4 Л5 Л5 Л6 Л6PK2

Л7 Л7СР2

Л7

Количество контролей

1 1 1 1 1 2 2 1 1 1 1 2 1 2 1

Виды контроля: СР-самостоятельная работа; РК-рубежный контроль; Л –лабораторная работа

Таблица 5Оценка знаний студентов

Оценка Буквенныйэквивалент

Впроцентах %

Вбаллах

А 95-100 4ОтличноА- 90-94 3,67В+ 85-89 3,33В 80-84 3,0

Хорошо

В- 75-79 2,67С+ 70-74 2,33С 65-69 20,С- 60-64 1,67 D+ 55-59 1,33

Удовлетворительно

D 50-54 1,0Неудовлетворительно F 0-49 0

Перечень вопросов для проведения контроля по модулям ипромежуточной аттестации (экзамен)

Вопросы для проведения контроля по 1 модулю:1. Что собой представляет окно MATLAB?2. Какие команды входят в главное меню MATLAB?3. Как задается вектор в MATLAB?4. Какие операции можно выполнить над векторами в MATLAB?5. Как задается матрица в MATLAB?

Page 8: Abdulina Umk Komp Vych 050704 2010

6. Какие операции можно выполнить над матрицами в MATLAB?7. Как задается поэлементная операция в MATLAB?8. Какие поэлементные операции имеются в MATLAB?9. Какие классы встроенных функций имеются в MATLAB?10. Какие арифметические функции используют для векторов в пакетеMATLAB?11. Какие математические функции используют для матриц в пакете MATLAB?12. Какие встроенные функции для обработки множеств есть в MATLAB?13. Какие встроенные функции для обработки строк есть в MATLAB?14. Какие встроенные функции для обработки матриц применяются в пакетеMATLAB?15. Какие виды графиков можно строить в MATLAB?16. Какие команды построения двухмерных графиков имеются в пакетеMATLAB?17. Какие команды построения трехмерных графиков имеются в пакетеMATLAB?18. Какие типы переменных есть в пакете MATLAB?19. Что собой представляет выражение в пакете MATLAB?20. Какие операторы есть в пакете MATLAB?

Вопросы для проведения контроля по 2 модулю:1. Каково назначение вычислительной математики как одной из областейинформатики?2. Для чего предназначено математическое моделирование?3. Какие соотношения используются в математической модели?4. Что собой представляет схема вычислительного эксперимента?5. Какие этапы включает решение задачи на компьютере?6. Для чего нужен этап постановки задачи?7. Что собой представляет этап отладки программы?8. Как составляется математическая модель?9. В каких областях деятельности используются математические модели?10. Какие группы методов применяют при решении задач?11. Какие задачи решаются в теории численных методов?12. Как определить сходимость численного метода?13. Что такое корректно поставленная задача?14. Что такое устойчивая задача?15. Как представить систему линейных уравнений в матричном виде?16. Какие методы применяют для решения СЛУ?17. Для каких типов задач вычисляют корни функции?18. С помощью каких методов вычисляют минимум функции?19. Какие методы применяют для численного интегрирования?20. Какие методы применяют для решения обыкновенныхдифференциальных уравнений?

Page 9: Abdulina Umk Komp Vych 050704 2010

Вопросы для подготовки к промежуточной аттестации (экзамену):1. Какие разделы есть в главном окне MATLAB?2. Какие функции выполняет главное меню MATLAB?3. Как определяется вектор в MATLAB?4. Как определяется матрица в MATLAB?5. Какие арифметические операции можно выполнить над векторами вMATLAB?6. Какие арифметические операции можно выполнить над матрицами вMATLAB?7. Как задается поэлементная операция умножения в MATLAB?8. Как задается поэлементная операция деления в MATLAB?9. Какие классы встроенных функций существуют в MATLAB?10. Какие арифметические функции используют для матриц в пакетеMATLAB?11. Какие математические функции используют для векторов в пакетеMATLAB?12. Какие встроенные функции для обработки даты есть в MATLAB?13. Какие встроенные функции для обработки строк применяют в MATLAB?14. Какие виды графиков можно строить в MATLAB?15. Какие команды используются в пакете MATLAB для построениядвухмерных графиков?16. Какие команды применяют для построения трехмерных графиков в пакетеMATLAB?17. Какие задачи решают с помощью математического моделирования?18. Какие виды математических соотношений применяют в математическоймодели?19. Какие шаги включает вычислительный эксперимент?20. Какие этапы формируют решение задачи на компьютере?

1.9 Политика и процедураСтуденты обязаны обязательно посещать все виды занятий,

своевременной сдавать отчеты по всем видам контроля, отрабатыватьпропущенных занятий. Отчеты по видам контролей необходимо сдавать всоответствии со сроками, указанными в таблице 4.

2 СОДЕРЖАНИЕ АКТИВНОГО РАЗДАТОЧНОГО МАТЕРИАЛА

Page 10: Abdulina Umk Komp Vych 050704 2010

2.1 Тематический план курса составляется в виде таблицы, гдеуказываются наименование темы и количество академических часов,предусмотренных для каждой темы.

Тематический план курса Количество академических часов

Наименование темы Лекция

Практические

Лабораторные

СРСП

СРС

1 2 3 4 5 6Модуль 1. Основы работы с пакетомMATLAB

12

6 18 18

Лекция 1. Окно MATLAB. Обработкавекторов и матриц в MATLAB.

2 1 3 3

Лекция 2. Встроенные функции 2 1 3 3Лекция 3. Построение и редактированиедвумерных графиков.

2 1 3 3

Лекция 4. Построение и редактированиетрехмерных графиков.

2 1 3 3

Лекция 5.Типы данных. Выражения.Основные операторы в MATLAB.

2 1 3 3

Лекция 6. Методы статистическойобработки данных.

2 1 3 3

Модуль 2. Основы численныхметодов.

18 9 27 27

Лекция 7. Математическое модели-рование и численный эксперимент.Схема вычислительного эксперимента.

2 1 3 3

Лекция 8. Этапы решения задачи.Построение математической модели.

2 1 3 3

Лекция 9. Классы численных методов,их применение. Понятия устойчивости,корректности и сходимости.

2 1 3 3

Лекция 10. Решение систем линейныхуравнений.

2 1 3 3

Лекция 11. Вычисление корнейфункции.

2 1 3 3

Лекция 12. Минимизация функций. 2 1 3 3Лекция 13. Численное интегрирование. 2 1 3 3

Page 11: Abdulina Umk Komp Vych 050704 2010

Лекция 14. Решение систем обыкно-венных дифференциальных уравнений.

2 1 3 3

Лекция 15. Работа с полиномами. 2 1 3 3ИТОГО: 30 15 45 45

2.2 Конспект лекционных занятий

Лекция 1Окно MATLABВ наши дни компьютерная математика получила должную известность и

интенсивно развивается как передовое научное направление на стыкематематики и информатики. В начале 90-х гг. на смену универсальным языкампрограммирования пришли специализированные системы компьютернойматематики (СКМ). MATLAB представляет собой хорошо апробированную инадежную СКМ, рассчитанную на решение самого широкого кругаматематических задач с представлением данных в универсальной матричнойформе.

Система MATLAB предлагается как лидирующий на рынке, в первуюочередь, в системе военно-промышленного комплекса, в аэрокосмическойотрасли и автомобилестроении, язык программирования высокого уровня длятехнических вычислений с большим числом стандартных пакетов иприкладных программ.

Вид окна MATLAB приведен на рисунке 1. Окно Рабочая областьпозволяет переходить от рабочей области к текущему каталогу через закладки:

Рабочая область / Текущий каталогСеанс работы можно сохранить в файле с расширением .mat . Загрузив

этот файл в окне Команды можно увидеть список всех выполненных команд.Окно команд позволяет писать и выполнять команды. Двойной щелчок накоманде в окне Команды переносит ее в Окно команд, где сразу виднырезультаты ее выполнения.

Работа в режиме простых вычислений носит диалоговый характер:Задал вопрос ® Получил ответ

В верхней строке окна размещено главное меню, включающееследующие команды:

Файл – предназначена для работы с файлами,Правка – предназначена для выполнения различных действий по

редактированию,Вид – предназначена для просмотра различных объектов в том или ином

виде,Web – предназначена для работы с Internet,Окно – служит для управления работой с окнами,Помощь – предназначена для получения справок и помощи.

Page 12: Abdulina Umk Komp Vych 050704 2010

Ниже основного меню расположена панель инструментов. Перечислимкнопки панели инструментов слева направо:

Новый m-файлОткрыть m-файлВырезатьКопироватьВставитьОтменаПовторSimulinkПомощь

Рисунок 1 – Окно MATLAB

Обработка векторов и матриц в MATLAB

Задание векторов и матриц: V = [ 1 5 23 6] – вектор из 4-х элементов. A=[ 1 3 6 ; 7 15 8 ; 4 11 20] – матрица включает 3 строки и 3

столбца.

Page 13: Abdulina Umk Komp Vych 050704 2010

Задание матрицы требует указания нескольких строк. Для разграничениястрок используется знак ; (точка с запятой).

Обращение к элементу вектора:V (3) – 3-й элемент вектора,V (k) – k -й элемент вектора.

Обращение к элементу матрицы:A ( 1 , 2) – элемент матрицы на пересечении 1-й строки и 2-го столбца,A ( k , m) – элемент матрицы на пересечении k-й строки и m-го столбца,A (n , : ) – обращение к n-й строке,A (: , k ) – обращение к k-му столбцу.

Элементами матриц и векторов могут быть выражения.Простейшими арифметическими операторами над векторами и

матрицами являются знаки сложения +, вычитания -, умножения * , деления /,возведение в степень ^. Операторы умножения * и деления / вычисляютпроизведение и частное от деления двух многомерных массивов, векторов илиматриц. Есть ряд специальных операторов, например, оператор \ означаетделение справа налево, а операторы . * и . / означают соответственнопоэлементное умножение и поэлементное деление массивов.

Примеры операций с векторами:» Vl=[2 4 6 8];» V2=[l 2 3 4];» V1/V2 ans = 2» V1.*V2 ans = 2 8 18 32» V1./V2 ans = 2 2 2 2

Примеры операций с матрицами:» A = [2 3 7; 8 1 9; -3 6 4];» B = [l 2 3; -4 5 10; 1 8 11];» A + B» A * B» A ./ B» A ^ 2» A - B5ocн[49-52, 67-71, 294 -304]2доп [23-48], 4доп [3-8]

Контрольные вопросы:1. Для чего предназначен пакет MATLAB?2. Какие окна составляют главное окно MATLAB?3. Какие команды входят в главное меню MATLAB?4. Как задается вектор и матрица в MATLAB?5. Какие арифметические операции есть в MATLAB?

Page 14: Abdulina Umk Komp Vych 050704 2010

Лекция 2Встроенные функцииФункции выполняют определенные преобразования своих аргументов и

возвращают результаты этих преобразований. Аргументы обязательнозаключены в круглые скобки.

Список элементарных функций вызывается по команде: help elfunСписок специальных функций вызывается по команде: help specfunВ Matlab имеется несколько классов встроенных функций.

1. Арифметические функции – аналогичны арифметическим операторам.1) plus (M1, M2) – сложение матриц,2) mtimes (M1, M2) – умножение матриц,3) rdivide (M1, M2) – поэлементное деление векторов или матриц.

Имеются и другие функции, причем практически все они являютсяматричными.2. Функции отношения – служат для сравнения двух переменных, векторов илиматриц. Они выполняют поэлементное сравнение векторов или матриц ивозвращают «1», если сравнение истинно, и «0» - в противном случае.

1) eq (M1, M2) – сравнение на равенство,2) ne (M1, M2) – сравнение на неравенство,3) lt (M1, M2) – сравнение на меньше,4) gt (M1, M2) – сравнение на больше,5) le (M1, M2) – сравнение на меньше или равно,6) ge (M1, M2) – сравнение на больше или равно.

3. Логические функции – выполняются над элементами одинаковых по размерумассивов.

1) and (M1, M2) – логическое «И» - конъюнкция,2) or (M1, M2) – логическое «ИЛИ» - дизъюнкция,3) not (M1) – логическое «НЕ» - отрицание,4) xor (M1, M2) – исключающее «ИЛИ»,5) any (M1) – верно, если хотя бы один элемент массива не равен нулю,6) all (M1) – верно, если все элементы массива не равны нулю.

4. Алгебраические и арифметические функции.1) abs(X) – возвращает абсолютную величину для каждого числового

элемента вектора X.2) factor(n) – возвращает вектор-строку, содержащую простые

множители числа n. Для массивов эта функция неприменима.3) log (X) – возвращает натуральный логарифм элементов массива X.4) mod(X, Y) – взятие x по модулю y, возвращает остаток от деления X

на Y.Имеются и другие функции.

Page 15: Abdulina Umk Komp Vych 050704 2010

5. Тригонометрические и обратные им функции.1) cos(X) – возвращает косинус для каждого элемента X.2) acot (X) – возвращает арккотангенс для каждого элемента X.3) tan(X) – возвращает тангенс для каждого элемента X.

Имеются и другие функции.6. Функции округления числовых данных.

1) fix(A) – возвращает массив А с элементами, округленными доближайшего к нулю целого числа.

2) floor(A) – возвращает А с элементами, представляющими ближайшееменьшее или равное соответствующему элементу А целое число.

3) ceil (A) – возвращает ближайшее большее или равное А целое число.4) sign(X) – возвращает массив Y той же размерности, что и X, где

каждый из элементов Y равен: 1, если X больше 0; 0, если X равен 0; -1, если X меньше 0.

Имеются и другие функции.7. Функции для работы с датой и временем.

1) calendar(d) – возвращает календарь на месяц, в который попадает день,заданный аргументом d (дни отсчитываются от начала летоисчисления).

2) clock – возвращает вектор из 6 элементов, содержащий текущую датуи время в десятичной форме [год месяц день час минуты секунды].

3) datestr(D, k) – преобразует датe D в строку в соответствии созначением аргумента k: k =2 – краткий формат даты mm/dd/yy; k =8 – деньнедели ( 1-е три буквы); k =12 – месяц и год (mmmyy).

4) tic – запускает таймер.Имеются и другие функции.8. Функции обработки множеств.

1) intersect(a,b) – возвращает пересечение множеств для двух векторов а иb, т. е., общие элементы векторов а и b.

2) setdiff(a,b) – возвращает разность множеств, т. е., те элементы вектораа, которые не содержатся в векторе b.

3) union(a ,b) – возвращает вектор объединенных значений из а и b безповторяющихся элементов.Имеются и другие функции.9.Функции над строками.

1) findstr(sl,s2) – обеспечивает поиск начальных индексов (позицию)более короткой строки внутри более длинной и возвращает вектор этихиндексов. Индексы указывают положение первого символа более короткойстроки в более длинной строке.

2) lower(s) – возвращает строку символов s, в которой символы верхнегорегистра переводятся в нижний регистр, а все остальные символы остаются безизменений.

Page 16: Abdulina Umk Komp Vych 050704 2010

3) upper( s) – возвращает строку символов s, в которой все символынижнего регистра переводятся в верхний регистр, а все остальные символыостаются без изменений.

4) strrep(sl,s2,s3) – заменяет все подстроки s2, найденные внутри строкисимволов s1 на строку s3.

5) strncmp(S,T,n) – возвращает строковый массив, содержащий единицыдля идентичных (до n символов) элементов массивов S и Т и нули для всехостальных.Имеются и другие функции.5ocн[49-52, 67-71, 294 -304]2доп [23-48], 4доп [3-8]

Контрольные вопросы:1. Какие классы функций есть в пакете MATLAB?2. Какие функции входят в класс арифметических функций в пакете MATLAB?3. Какие функции входят в класс математических функций в пакете MATLAB?4. Какие функции входят в класс обработки множеств в пакете MATLAB?5. Какие функции входят в класс функций обработки строк в пакете MATLAB?

Лекция 3Построение и редактирование двумерных графиковОтличительные черты графики в MATLAB:- улучшенный интерфейс графических окон;- расширенные возможности редактирования и форматирования

графиков;- задание различных координатных систем и осей;- широкие возможности по использованию цвета;- простота построения двухмерных и трехмерных графиков;- функциональная многоцветная и полутоновая окраска;- возможность создания анимационной графики;- возможность создания объектов для пользовательского интерфейса

(командных кнопок, текстовых панелей и т.д.).Графический объект имеет множество свойств. Большинство команд

построения графиков автоматически устанавливают эти свойства иобеспечивают воспроизведение графика в нужной системе координат, палитрецветов, масштабе и т.д.

Изучим некоторые команды построения двумерных графиков. Рассмотрим команды построения двухмерных графиков,

позволяющие строить графики функций, логарифмические иполулогарифмические графики:

1) plot (X, Y) - строит график функции у(х), координаты точек (х, у)которой берутся из векторов одинакового размера Y и X. Если X или Y -матрица, то строится семейство графиков по данным, содержащимся вколонках матрицы;

Page 17: Abdulina Umk Komp Vych 050704 2010

2) plot (Y) — строит график у(i), где значения у берутся из вектора Y,a i представляет собой индекс соответствующего элемента;

3) plot (X,Y,S) — аналогична команде plot(X,Y), но тип линии графикаможно задавать с помощью строковой константы S;

4) loglogx(...) – график в логарифмическом масштабе, синтаксисаналогичен команде plot(...);

5) semilogx(...) – строит график функции в логарифмическом масштабе(основание 10) по оси X и линейном масштабе по оси Y;

6) semilogy(...) – строит график функции в логарифмическом масштабепо оси Y и линейном масштабе по оси X.

Пример 1 - построение графика функции по точкам.» X=[1 2 3 4 5 6]» Y=[10 3 7 18 4 20]» plot (X, Y)График представлен на рисунке 2.

Рисунок 2 – График по команде plot

Столбцовые диаграммы широко используются в обработке данных,связанных с финансами и экономикой, а также в математическихисследованиях. Ниже представлены команды для построения таких диаграмм:

1) bar (X, Y) - строит столбцовый график элементов вектора Y (илигруппы столбцов для матрицы Y) со спецификацией положения столбцов,заданной значениями элементов вектора X, которые должны монотонновозрастать;

2) bar (Y) - строит график значений элементов матрицы Y так же, какуказано выше, при этом фактически используется вектор X =[1: m];

3) bar (Y,WIDTH) или BAR(Y,WIDTH) - команда аналогична ранеерассмотренным, но со спецификацией ширины столбцов (при WIDTH > 1столбцы в одной и той же позиции перекрываются). По умолчанию заданоWIDTH = 0.8.

Page 18: Abdulina Umk Komp Vych 050704 2010

Пример 2 - построение столбцовой диаграммы на основе случайныхчисел:» bar ( rand (5, 7))График представлен на рисунке 3.

Рисунок 3 – Столбцовая диаграмма

Классическая гистограмма характеризует числа попаданий значенийэлементов вектора Y в М интервалов с представлением этих чисел в видестолбцовой диаграммы. Гистограммы строят следующие команды:

1) N = hist(Y) - возвращает вектор чисел попаданий для 10 интервалов,выбираемых автоматически. Если Y - матрица, то выдается массив данных очисле попаданий для каждого из ее столбцов;

2) N = hist(Y,M) - аналогична рассмотренной выше команде, ноиспользуется М интервалов (М — скаляр);

3) N = hist(Y,X) - возвращает числа попаданий элементов вектора Y винтервалы, центры которых заданы элементами вектора X;

4) [N,X]=HIST(...) – возвращает числа попаданий в интервалы и данные оцентрах интервалов.

Пример 3 - построение гистограмма для 1000 случайных чисел:» х=-3 : 0.2 : 3» y=randn(1000,1)» hist(y, x)Гистограмма представлена на рисунке 4.

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

Page 19: Abdulina Umk Komp Vych 050704 2010

Рисунок 4 – Гистограмма

Для построения лестничных графиков в системе MATLAB используютсяследующие команды:

1) stairs(Y) – строит лестничный график по данным вектора Y;2) stairs(X,Y) – строит лестничный график по данным вектора Y с

координатами х переходов от ступеньки к ступеньке, заданными значениямиэлементов вектора X;

3) stairs(...,S) – аналогична по действию вышеописанным командам, ностроит график линиями, стиль которых задается строками S.

Пример 4 - построение лестничного графика:» х=[0 : 0.2 : 12]» y=sin(x)» stairs(y)Лестничный график представлен на рисунке 5.

Рисунок 5 – Лестничный график

Команды построения круговых диаграмм:1) pie(X) – строит круговую диаграмму по данным нормализованного

вектора X/ SUM(X), SUM(X) – сумма элементов вектора, если SUM(X)<=1.0, тозначения в X непосредственно определяют площадь секторов;

Page 20: Abdulina Umk Komp Vych 050704 2010

2) pie(X,EXPLODE) – строит круговую диаграмму, у которой отрывсекторов от центра задается вектором EXPLODE, который должен иметь тот жеразмер, что и вектор данных X.

Пример 5 - построение круговой диаграммы, где третий и шестой сектораотделены от остальных:» Х=[1 9 3 4 8 12]» pie(X,[0 0 3 0 0 8])Круговая диаграмма представлена на рисунке 6.

Рисунок 6 – Круговая диаграмма

Существуют и другие типы двумерных графиков: графики с зонамипогрешности, график дискретных отсчетов функции, графики в полярнойсистеме координат, угловые гистограммы, графики векторов, график проекцийвекторов на плоскость, контурные графики и др.5ocн[157-212, 245 -278]2доп [112-124], 4доп [8-24]

Контрольные вопросы:1. Какие команды построения двумерных графиков есть в MATLAB?2. По какой команде можно построить график функции в MATLAB?3. По какой команде можно построить столбцовую диаграмму в MATLAB?4. По какой команде можно построить гистограмму в MATLAB?5. По какой команде можно построить круговую диаграмму в MATLAB?

Лекция 4Построение и редактирование трехмерных графиковТрехмерные поверхности обычно описываются функцией двух

переменных z(x, у). Специфика построения трехмерных графиков требует непросто задания ряда значений х и у, то есть векторов х и у. Она требуетопределения для X и Y двумерных массивов - матриц. Для создания такихмассивов служит функция meshgrid. В основном она используется совместно сфункциями построения графиков трехмерных поверхностей. Функция meshgridзаписывается в следующих формах:

Page 21: Abdulina Umk Komp Vych 050704 2010

1) [X,Y] = meshgrid(x) – аналогична [X,Y] = meshgrid(x,x);2) [X,Y,Z] = meshgrid(x,y,z) – возвращает трехмерные массивы, используемые

для вычисления функций трех переменных и построения трехмерныхграфиков;

3) [X,Y] = meshgrid(x,y) – преобразует область, заданную векторами х и у, вмассивы X и Y, которые могут быть использованы для вычисления функциидвух переменных и построения трехмерных графиков. Строки выходногомассива X являются копиями вектора х; а столбцы Y — копиями вектора у.

Примеры применения команды:» [X,Y] = meshgrid(l : 4, 13 : 17);» [X,Y] = meshgrid(-2 : .2 : 2, -2 : .2 : 2);

Функция ndgrid является многомерным аналогом функции meshgrid:1) [Х1,Х2,ХЗ,...]=ndgrid(xl,x2,x3....) – преобразует область, заданнуювекторами x1, x2, x3... в массивы Х1, Х2, ХЗ..., которые могут бытьиспользованы для вычисления функций нескольких переменных имногомерной интерполяции, i-я размерность выходного массива Хi являетсякопией вектора xi;2) [XI,Х2....]=ndgrid(x) – аналогична [XI,Х2....]=ndgrid(x,x,...).

Пример применения функции ndgrid:»[Х1, Х2] = ndgrid(-2 : .2 : 2, -2 : .2 : 2);»Z = XI .* ехр(-Х1.^2 - Х2.^2);»mesh(Z)

Имеются следующие команды построения трехмерных графиков.Команда plot3(...) является аналогом команды plot (...), но относится к

функции двух переменных z(x, у). Она строит аксонометрическое изображениетрехмерных поверхностей и представлена следующими вариантами:

1) plot3(x,y,z) – строит массив точек, представленных векторами х, у и z,соединяя их отрезками прямых;

2) plot3(X,Y,Z) – строит точки с координатами X(i,:), Y(i,:) и Z(i,:) исоединяет их отрезками прямых, X, Y и Z – три матрицы одинакового размера;

Пример построения трехмерной поверхности:» [X,Y]=meshgrid([-3 : 0.15 : 3]);» Z=X.^2+Y.^2;» plot3(X,Y,Z)

Наиболее представительными и наглядными являются сетчатые графикиповерхностей с заданной или функциональной окраской. Имеются такиекоманды:

1) mesh(X,Y,Z,C) – выводит в графическое окно сетчатую поверхность Z(X,Y)с цветами узлов поверхности, заданными массивом С;

2) mesh(X,Y,Z) – аналог предшествующей команды при C=Z, используетсяфункциональная окраска, при которой цвет задается высотой поверхности.

Возможны также варианты команды mesh(x,y,Z), mesh(x,y,Z,C), mesh(Z) иmesh(Z,C).

Page 22: Abdulina Umk Komp Vych 050704 2010

Пример построение сетчатого графика:» [X,Y]=meshgrid([-4:0,25:5]);» Z=X.^2 + Y.^2;» mesh(X,Y,Z)Построенный график приведен на рисунке 7.

Рисунок 7 – Сетчатый график

Для закраски многоугольников, определенных в пространстве, служиткоманда fill3:

1) fill3(X,Y,Z,C) – строит закрашенный многоугольник в пространстве сданными вершин, хранящимися в векторах X, Y и Z, и цветом, заданнымпалитрой С;

2) fill3(Xl,Yl,Zl,Cl,X2,Y2,Z2,C2,...) – другой вариант построения несколькихзакрашенных многоугольников в пространстве.

Пример построения закрашенных многоугольников:» X=[6 5 7 3 5 4];» Y=[5 4 6 3 7 2];» Z=[4 3 2 1 6 8];» C=[1 2 3 4 5 6];» fill3(X,Y,Z,C)Построенный график приведен на рисунке 8.

Объемные круговые диаграммы строятся командой pie3:pie3(...) – построение трехмерной круговой диаграммы, аналогична командеpie(...).

Для построения цилиндра и сферы в виде трехмерной фигуры с помощьюкоманд surf (X, Y, Z) или surfl (X,Y,Z) служат команды:

1) [X,Y,Z]=cylinder(R,N) – создает массивы X, Y и Z, описывающиецилиндрическую поверхность с радиусом R и числом узловых точек N дляпоследующего построения цилиндра с помощью функции surf(X.Y.Z);

2) [X,Y,Z]=cylinder(R) и [X,Y,Z]=cylinder – подобны предшествующейфункции для N=20 и R=[1 1];

Page 23: Abdulina Umk Komp Vych 050704 2010

3) [X,Y,Z]=sphere(N) – генерирует матрицы X, Y и Z размера (N+l)x(N+l)для построения сферы;

4) [X,Y,Z]=sphere – аналогична предшествующей функции при N=20.

Рисунок 8 – Многоугольники

Пример построение объемного цилиндра:» [X,Y,Z]=cylinder(15, 40);» surf(X,Y,Z,X)Построенный цилиндр приведен на рисунке 9.

Рисунок 9 – Цилиндр

К числу специальных видов графики относится построение объемныхфигур с помощью плоских треугольников. Для построения таких фигур в видекаркаса (без окраски и отображения плоскостей) используются команды:

1) trimesh(TRI,X,Y,Z,C) – построение объемной каркасной фигуры стреугольниками, специфицированными матрицей поверхности TRI, каждаястрока которой содержит три элемента и задает одну треугольную грань путемуказания индексов, по которым координаты выбираются из векторов X, Y, Z,цвета ребер задаются вектором С;

Page 24: Abdulina Umk Komp Vych 050704 2010

2) trimesh(TRI,X,Y,Z) – построение, аналогичное предшествующему приC=Z, т. е. с цветом ребер, зависящим от значений высоты;

Пример построения случайной объемной фигуры, параметры которойзадаются с помощью генератора случайных чисел:» х = rand(1,40);» у = rand(1,40);» z = sin(x.*y);» tri = delaunay(x,y);» trimesh(tri,x,y,z)

Для переключения в режим редактирования графика нужно щелкнуть накнопке Edit Plot (Редактировать график) с изображением курсора-стрелки. Вэтом режиме графиком можно управлять с помощью контекстного меню,вызываемого щелчком правой кнопки мыши. Графики в пакете MATLABстроятся достаточно просто, так как многие свойства графиков установлены поумолчанию. К таким свойствам относятся вывод или скрытие координатныхосей, положение их центра, цвет линии графика, ее толщина и т. д. Свойства ивид графиков можно менять в широких пределах с помощью параметровкоманд графики. Однако этот путь требует хорошего знания деталей языкапрограммирования и дескрипторной графики MATLAB. Форматированиеграфиков стало более строгим и удобным: используются команды FigureProperties (свойства фигуры) и Axis Properties (свойства осей) со всеминеобходимыми настройками.

Поскольку графика MATLAB обеспечивает получение цветныхизображений, в ней есть ряд команд для управления цветом и различнымисветовыми эффектами. Среди них важное место занимает установка палитрыцветов. Палитра цветов RGB задается матрицей MAP из трех столбцов,определяющих значения интенсивности красного (red), зеленого (green) исинего (blue) цветов. Их интенсивность задается в относительных единицах от0.0 до 1.0. Например, [0 0 0] задает черный цвет, [1 1 1] – белый цвет, [0 0 1] –синий цвет. При изменении интенсивности цветов в указанных пределахвозможно задание любого цвета. Таким образом, цвет соответствуетобщепринятому формату RGB.

Рассмотрим команды редактирования графика:- title('string') – установка на двумерных и трехмерных графиках титульной

надписи, заданной строковой константой 'string';- xlabel('String'), ylabel('String'), zlabel('String') – команды установки

надписей возле осей х, у и z;- text(X,Y, 'string') – добавляет в двумерный график текст, заданный

строковой константой 'string', так что начало текста расположено в точкес координатами (X, Y), если X и Y заданы как одномерные массивы, тонадпись помещается во все позиции [x(i) ,y(i)];

- text(X,Y, Z, 'string') – добавляет в трехмерный график текст;

Page 25: Abdulina Umk Komp Vych 050704 2010

- gtext('string') – задает выводимый на график текст в виде строковойконстанты 'string' и выводит на график перемещаемый мышью маркер ввиде крестика; установив маркер в нужное место, достаточно щелкнутьлюбой кнопкой мыши для вывода текста;

- gtext(С) – позволяет аналогичным образом разместить многострочнуюнадпись из массива строковых переменных С;

- legend(stringl, string2, strings,...) – добавляет к текущему графику легендув виде строк, указанных в списке параметров;

- legend (М) – размещает легенду, используя данные из матрицы М;- legend OFF – устраняет ранее выведенную легенду;- axis([XMIN XMAX YMIN YMAX]) – установка диапазонов координат по

осям х и у для текущего двумерного графика;- axis([XMIN XMAX YMIN YMAX ZMIN ZMAX]) – установка диапазонов

координат по осям х, у и z текущего трехмерного графика;- axis auto – установка параметров осей по умолчанию;- grid on – добавляет сетку к текущему графику;- grid off – отключает сетку;- zoom – переключает состояние режима интерактивного изменения

масштаба для текущего графика;- zoom (FACTOR) – устанавливает масштаб в соответствии с

коэффициентом FACTOR;- zoom on – включает режим интерактивного изменения масштаба для

текущего графика;- zoom off – выключает режим интерактивного изменения масштаба для

текущего графика;- colormap('default') – устанавливает палитру по умолчанию, при которой

распределение цветов соответствует радуге;- colormap(MAP) – устанавливает палитру RGB, заданную матрицей MAP;- shading flat – задает окраску ячеек или граней в зависимости от текущих

данных;- shading interp – задает окраску с билинейной интерполяцией цветов;- shading faceted – равномерная раскраска ячеек поверхности (принята по

умолчанию).Пример установки титульной надписи и надписей по осям графиков:

» [X,Y]=meshgrid([-3 : 0.1 : 3]);» Z=sin(X)./(X.^2+Y.^2+0.3);» surfl(X,Y,Z)» colorbar» colormap(gray)» shading interp» xlabel('Axis X')» ylabel('Axis Y')

Page 26: Abdulina Umk Komp Vych 050704 2010

» zlabel('Axis Z')» title('My graphic')

Пример размещения надписи под кривой графика в позиции (-4, 0.7):» х=10 : 0.1 : 10;» plot(x,sin(x).^3)» text(-4,0.7,'Graphic sin(x)^3')5ocн[157-212, 245 -278]2доп [112-124], 4доп [8-24]

Контрольные вопросы:1. Какие команды построения трехмерных графиков есть в MATLAB?2. По какой команде можно построить трехмерныхй график функции в

MATLAB?3. Какие команды служат для создания массивов при построении трехмерных

графиков в MATLAB?4. По какой команде можно построить сетчатую поверхность в MATLAB?5. По каким командам можно построить цилиндр и сферу в MATLAB?

Лекция 5Типы данныхЧисло – отображает количественные данные. Числа бывают целые,

дробные, с фиксированной и плавающей точкой, комплексные.Константа – предварительно заданное числовое или символьное

значение (пишется в апострофах).Системные константы:

1) i, j – мнимая часть комплексного числа;2) pi – число p;3) eps – число погрешности, принимающее значение 2**(-52);4) realmin – наименьшее число 2**(-1022);5) realmax – наибольшее число 2**(1023);6) inf – машинная бесконечность;7) ans – переменная для хранения ответа;8) NaN – указание на нечисловой характер данных – Not-a-Number – «не

число».Переменные – служат для хранения разных данных.Типы переменных:

1) single – числовые массивы,2) double – числовые массивы удвоенной точности,3) char – строчные массивы,4) cell – масссив ячеек,5) struct – массив структур,6) function-handle – дескрипторы функций.

Выражения

Page 27: Abdulina Umk Komp Vych 050704 2010

Работа с пакетом в режиме прямых вычислений носит диалоговыйхарактер и происходит по правилу «задал вопрос, получил ответ».Пользователь набирает на клавиатуре вычисляемое выражение, редактирует егов командной строке и завершает ввод нажатием клавиши ENTER. Некоторыеприемы работы:- для указания ввода исходных данных используется символ »;- для блокировки вывода результата вычислений некоторого выражения после

него надо установить знак « ; » (точка с запятой);- если не указана переменная для значения результата вычислений, то

MATLAB назначает такую переменную с именем ans;- знаком присваивания является знак «=» (равенство);- встроенные функции записываются строчными буквами, а их аргументы

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

матрицы и знаки арифметических операций.Приведем примеры простых математических выражений:

1) a+cos(x); 2) 2.301*sin(x); 3) 4+ехр(3)/5; 4) sqrt(y)/2; 5) sin(pi/2) .

Основные операторы в MATLABОператор присваивания имеет вид:

var = выражение ,где var – переменная.

Арифметические операторы: + , - , * , / , ^ , .* , ./.* - поэлементное умножение массивов и векторов../ - поэлементное деление массивов и векторов.

Оператор : (двоеточие) – n : k : mгде n – начальное значение, k – шаг изменения, m – конечное значение.

Комментарий – знак %, позволяет указать, что именно делается впрограмме, как интерпретировать входные и выходные данные.

Операторы отношения: = = , ~ = , < , > , < = , > =Логические операторы:

& - And – логическое «И», ! - Or – логическое «ИЛИ», ~ - Not – логическое отрицание «НЕ».

Условный оператор if в общем виде записывается следующим образом:if Условие

Инструкции_1else if Условие

Инструкции_2else

Инструкции_3end

Page 28: Abdulina Umk Komp Vych 050704 2010

Эта конструкция допускает несколько частных вариантов. В простейшемслучае это конструкция следующего типа:

if Условие Инструкции endЦиклы типа for...end обычно используются для организации вычислений

с заданным числом повторяющихся шагов. Конструкция такого цикла имеетследующий вид:

for vаг = Выражение; Инструкция; .... Инструкция endВыражение чаще всего записывается в виде s : d : e, где s – начальное

значение переменной цикла var, d – приращение этой переменной (шаг), е –конечное значение управляющей переменной, при достижении которого циклзавершается. Возможна и запись в виде s : е (в этом случае d = l). Списоквыполняемых в цикле инструкций завершается оператором end.

Цикл типа while выполняется до тех пор, пока выполняется Условие:while Условие Инструкции end

Досрочное завершение циклов реализуется с помощью операторов break(прерывание) или continue (продолжение).

Оператор переключателя используется для осуществлениямножественного выбора (или ветвления) и имеет следующую конструкцию:

switch_Bыражениеcase Cаsе_Выражение

Список_инструкцийcase {Cаsе_Выражение1, Саsе_выражение2, Cаsе_ВыражениеЗ....}

Список_инструкцийOtherwise Список_инструкций end

Если выражение после заголовка switch имеет значение одного извыражений Cаsе_Выражение..., то выполняется блок операторов case, впротивном случае — список инструкций после оператора otherwise. Привыполнении блока case исполняются те списки инструкций, для которыхсаsе_Выражение совпадает со switch_Bыpaжением. Указанное Cаsе_Выражениеможет быть числом, константой, переменной, вектором ячеек или дажестрочной переменной. В последнем случае оператор case истинен, еслифункция strcmp (значение, выражение) возвращает логическое значение«истина».

Имеются и другие операторы.5ocн[56-60, 467-491]2доп [135-144], 4доп [3-8]

Контрольные вопросы:1. Что такое константа и переменная в MATLAB?2. Какие типы данных есть в MATLAB?3. Какие операторы есть в MATLAB?4. Какую конструкцию имеет условный оператор в MATLAB?5. Какую конструкцию имеет оператор цикла в MATLAB?

Page 29: Abdulina Umk Komp Vych 050704 2010

Лекция 6Методы статистической обработки данныхМетоды статистической обработки данных включают поиск в векторах и

матрицах элементов с максимальным и минимальным значениями, вычислениесреднего арифметического, медианы и стандартного отклонения,коэффициентов корреляции, проведение сортировки данных.

В пакете MATLAB определены следующие функции для нахождениямаксимальных и минимальных элементов вектора или матрицы (массива):

1) mах(А) – возвращает наибольший элемент, если А – вектор, иливозвращает вектор-строку, содержащую максимальные элементы каждогостолбца, если А – матрица;

2) mах(А,В) – возвращает массив того же размера, что А и В, каждыйэлемент которого есть максимальный из соответствующих элементов этихмассивов;

3) max(A,[ ],dim) – возвращает наибольшие элементы по столбцам или построкам матрицы в зависимости от значения скаляра dim: dim=1 – по столбцам,dim=2 – по строкам;

4) [C,I] =max(A) – кроме максимальных значений возвращает векториндексов I этих элементов;

5) min(A) – возвращает минимальный элемент, если А – вектор, иливозвращает вектор-строку, содержащую минимальные элементы каждогостолбца, если А – матрица;

6) min(A,B) – возвращает массив того же размера, что А и В, каждыйэлемент которого есть минимальный из соответствующих элементов этихмассивов;

7) min(A,[ ],dim) – возвращает наименьший элемент по столбцам или построкам матрицы в зависимости от значения скаляра dim;

8) [C,I] = min(A) – кроме минимальных значений возвращает векториндексов этих элементов.

Элементарная статистическая обработка данных в массиве обычносводится к нахождению их среднего значения, медианы (срединного значения)и стандартного отклонения:

1) mean (А) – возвращает арифметическое среднее значение элементовмассива, если А – вектор, или возвращает вектор-строку, содержащую средниезначения элементов каждого столбца, если А – матрица (арифметическоесреднее значение есть сумма элементов массива, деленная на их число);

2) mean(A,dim) – возвращает среднее значение элементов по столбцам илипо строкам матрицы в зависимости от значения скаляра dim;

3) median (A) – возвращает медиану, если А – вектор, или вектор-строкумедиан для каждого столбца, если А – матрица;

4) median(A,dim) – возвращает значения медиан для столбцов или строкматрицы в зависимости от значения скаляра dim;

Page 30: Abdulina Umk Komp Vych 050704 2010

5) std(X) – возвращает стандартное отклонение элементов массива, если X –вектор, или возвращает вектор-строку, содержащую стандартное отклонениеэлементов каждого столбца, если X – матрица;

6) std(X,flag) – возвращает то же значение, что и std(X), если flag=0, а еслиflag=l, функция возвращает среднеквадратическое отклонение (квадратныйкорень из несмещенной дисперсии);

7) std(X,flag,dim) – возвращает стандартное или среднеквадратическоеотклонения в зависимости от значения переменной dim.

Пример вычислений ряда функций для вектора:» A=[1 50 100];» mean(A) = 50.3333;» median(A) = 50;» std(A) = 49.5008

Многие операции статистической обработки данных выполняютсябыстрее и надежнее, если данные предварительно отсортированы. Такиеданные более наглядны и удобны для дальнейшего анализа. Ряд функцийслужит для выполнения сортировки элементов массива:

1) sort (А) – если А - вектор , то возвращаются элементы по возрастанию ихзначений, а если матрица, то происходит сортировка по столбцам;

2) [В, INDEX] = sort(A) – наряду с отсортированным массивом возвращаетмассив индексов INDEX, который имеет ту же размерность, что и A, и спомощью которого можно восстановить структуру исходного массива;

3) sort(A,dim) – для матриц сортирует элементы по столбцам или построкам в зависимости от значения переменной dim.

4) sortrows(A) – выполняет сортировку строк матрицы А по возрастанию;5) sortrows(A,column) – возвращает матрицу, отсортированную по столбцам,

указанным в векторе column;6) [В, index] = sortrows (А) – выполняет сортировку строк матрицы А по

возрастанию и возвращает вектор индексов index.Под корреляцией понимается взаимосвязь некоторых величин,

представленных векторами или матрицами. Общепринятой мерой линейнойкорреляции является коэффициент корреляции. Его близость к единицеуказывает на высокую степень линейной зависимости. Приведенная нижефункция пакета MATLAB позволяет вычислить коэффициенты корреляции иматрицу ковариаций для входного массива данных:

1) corrcoef(X) – возвращает матрицу коэффициентов корреляции длявходной матрицы, строки которой рассматриваются как наблюдения, а столбцы– как переменные, матрица S=corrcoef(X) связана с матрицей ковариацийC=cov(X) следующим соотношением:

S(i,j)=C(i,j)/sqrt(C(i,i)C(j,j));2) S = corrcoef (х,у) – аналогична функции соггсоеf([х у]), где х и у –

векторы-столбцы;

Page 31: Abdulina Umk Komp Vych 050704 2010

3) cov(x) – вычисление матрицу ковариации для матрицы, где каждаястрока рассматривается как наблюдение, а каждый столбец – как переменная,или возвращает смещенную дисперсию элементов вектора х;

4) diag(cov(x)) – вектор смещенных дисперсий для каждого столбца;5) sqrt(diag(cov(x))) – вектор стандартных отклонений;6) С = cov(x,y) – равносильна функции cov([x у]), где х и у – вектор-

столбцы одинаковой длины.5ocн[56-60, 467-491]2доп [135-144], 4доп [3-8]

Контрольные вопросы:1. Какие функции статистической обработки данных есть в MATLAB?2. Какие функции позволяют найти максимальный элемент в векторе илиматрице в MATLAB?3. найти минимальный элемент в векторе или матрице в MATLAB?4. Какая функция позволяет вычислить среднее значение в MATLAB?5. Какая функция позволяет вычислить медиану в MATLAB?

Лекция 7Математическое моделирование и численный экспериментОбласть вычислительной математики является одним из разделов

информатики, позволяющим сделать математическое описание какого-либообъекта или процесса и разработать и реализовать алгоритм исследованиясоставленной математической модели - в широком смысле. В узком смыслевычислительную математику определяют как теорию численных методов иалгоритмов решения поставленных математических задач.

Изменилась технология научных исследований, колоссально увеличилисьвозможности теоретического изучения, прогноза сложных процессов,проектирования инженерных конструкций. Решение крупных научно-технических проблем стало возможны лишь благодаря применениюматематического моделирования и новых численных методов,предназначенных для компьютеров. Все такие исследования проводятся наоснове математического описания или математической модели физическихпроцессов и последующего решения соответствующих математических задачна компьютере при помощи вычислительных алгоритмов.

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

Page 32: Abdulina Umk Komp Vych 050704 2010

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

Эти эксперименты позволяют определить как качество построенной ММ,так и качество созданного алгоритма, использующего определенный численныйметод. Кроме того, численные эксперименты позволяют глубже изучитьисследуемый объект, процесс или явление и сформировать решения, связанныес управлением исследуемого объекта.

Схема вычислительного экспериментаИмеется технология исследования сложных проблем, основанная на

построении и анализе через компьютер математической модели изучаемогообъекта. Схема вычислительного эксперимента включает следующие шаги.

I шаг – Объект исследования - происходит обследованиерассматриваемого процесса, объекта или явления, определяются его основныепараметры, находится связь между ними, выявляются существенные функции испособы их реализации. Формулируются основные законы управленияисследуемым объектом.

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

III шаг – Численный метод + алгоритм - происходит поиск решения,при этом часто в явном виде ММ решить нельзя. Необходимо доказатьсуществование и единственность решения. Определяют качественноеповедение объекта и его характеристики. По виду модели определяют какойчисленный метод можно использовать для работы с ММ.

Под численным методом (ЧМ) понимается такая интерпретация ММ,которая доступна для реализации на компьютере. Например, ММ –дифференциальное уравнение, тогда ЧМ – аппроксимирующее его разностноеуравнение и алгоритм поиска решения.

IV шаг – Программирование – предложенный алгоритм реализуется ввиде программы на одном из известных языков программирования.

V шаг – Проведение вычислений, анализ результатов – после отладкипрограммы полученные результаты изучаются с точки зрения соответствия ихисследуемому явлению или объекту, достаточно ли хорош ЧМ, достаточно литочно описывает объект ММ. Если все в порядке, то задача сдается вэксплуатацию. Если нет, то идет возврат на I этап и процесс повторяется:может быть необходимо провести дообследование объекта, уточнить егофункции и параметры, уточнить или изменить ММ, выбрать другой ЧМ. Такихитераций может быть несколько.

Метод математического моделирования и вычислительный экспериментсоединяют в себе преимущества теоретического и экспериментального методов

Page 33: Abdulina Umk Komp Vych 050704 2010

исследования. Области применения: энергетика, аэрокосмическая техника,технологические процессы, всевозможные АСУ и САПР.1ocн[11-13], 2ocн[9-13]

Контрольные вопросы:1. Какие задачи решает вычислительная математика?2. Что такое математическое моделирование?3. Для чего нужны численные эксперименты?4. Какие шаги включает схема вычислительного эксперимента?5. Что такое численный метод?

Лекция 8Этапы решения задачиРассмотрим какие этапы включает решение задачи на компьютере.

1. Постановка задачи - заключается в содержательной (физической)постановке задачи, определении конечных целей решения и построенииматематической модели (математической формулировки задачи), котораядолжна правильно (адекватно) описывать основные законы физическогопроцесса.

2. Разработка численного метода – для решения поставленной задачидолжен быть найден численный метод, позволяющий свести задачу к не-которому вычислительному алгоритму.

3. Разработка алгоритма и построение блок-схемы – на этом этапепроцесс решения задачи записывается в виде последовательностиэлементарных арифметических и логических операций, приводящей кконечному результату и называемой алгоритмом решения задачи. Алгоритмможно изобразить в виде блок-схемы.

4. Программирование - алгоритм решения задачи записывается в видеточно определенной последовательности операций — программы. Составлениепрограммы или программирование обычно производится с помощьюнекоторого алгоритмического языка.

5. Отладка программы – поскольку составленная программа содержитразного рода ошибки, неточности, описки, необходимо провести ее отладку,которая включает контроль программы, диагностику ошибок, а также ихисправление. Отладку проводят на большом числе контрольных или тестовыхзадач для получения уверенности в достоверности получаемых результатов.

6. Проведение расчетов - на этом этапе готовятся исходные данные длярасчетов, и проводится счет по отлаженной программе.

7. Анализ результатов - результаты расчетов тщательно анализируются,после чего оформляется научно-техническая документация на созданныйчисленный метод.

Построение математической моделиРассмотрим как можно построить математическую модель для

Page 34: Abdulina Umk Komp Vych 050704 2010

поставленной задачи. Основное требование, предъявляемое к математическоймодели, — ее адекватность рассматриваемому явлению, т. е. модель должнадостаточно точно (в рамках допустимых погрешностей) отражать характерныечерты явления, процесса или объекта. Вместе с тем модель должна обладатьсравнительной простотой и доступностью исследования. При построенииматематических моделей получают некоторые математические соотношения,как правило, уравнения.

Приведем пример построения математической модели, связанный сдвижением тела. Пусть в начальный момент времени t = 0 тело, находящееся навысоте Ho, начинает двигаться вертикально вниз с начальной скоростью Vо.Требуется найти закон движения тела, т. е. построить математическую модель,которая позволила бы математически описать данную задачу и определитьпараметры движения в любой момент времени. При построении модели нужнопринять некоторые допущения. В частности, предположим, что данное телообладает средней плотностью, значительно превышающей плотность воздуха, аего форма близка к шару. В этом случае можно пренебречь сопротивлениемвоздуха и рассматривать свободное падение тела с учетом ускорения g.Соответствующие соотношения для высоты H и скорости V в любой моментвремени t хорошо известны из школьного курса физики. Они имеют вид

H = Ho – Vо*t –((g*t)**2)/2, V = Vо + g*t. ,где ** - возведение в степень, / - деление, * - умножение.

Эти формулы являются искомой математической моделью свободногопадения тела. Область применения данной модели ограничена случаями, вкоторых можно пренебречь сопротивлением воздуха.

Имеются математические модели и для описания задач экономики,социологии, медицины, лингвистики и других областей науки.1ocн[11-13], 2ocн[9-13]

Контрольные вопросы:1. Какие этапы включает решение задачи на компьютере?2. Для каких целей нужна постановка задачи?3. Для чего нужна отладка программы?4. Каким образом представляется математическая модель?5. В каких областях деятельности используются математические модели?

Лекция 9Классы численных методовДля решения математических задач используются следующие основные

группы методов: графические, аналитические и численные.Графические методы позволяют в ряде случаев оценить порядок искомой

величины. Основная идея этих методов состоит в том, что решение находитсяпутем геометрических построений. Например, для нахождения корнейуравнения f(x)=0 строится график функции y=f(x), точки пересечения которогос осью абсцисс и будут искомыми корнями.

Page 35: Abdulina Umk Komp Vych 050704 2010

При использовании аналитических методов решение задачи удаетсявыразить с помощью формул. В частности, если математическая задача состоитв решении простейших алгебраических или трансцендентных уравнений,дифференциальных уравнений и т. п., то использование известных из курсаматематики приемов сразу приводит к цели. К сожалению, на практике этослишком редкие случаи. Простейший пример – квадратное уравнение и поискего корней.

Основным инструментом для решения сложных математических задач внастоящее время являются численные методы, позволяющие свести решениезадачи к выполнению конечного ряда арифметических действий над числами;при этом результаты получаются в виде числовых значений. Многие численныеметоды разработаны давно, однако при вычислениях вручную они могли ис-пользоваться лишь для решения не слишком трудоемких задач. В теориичисленных методов рассматриваются такие классы задач и методов:

- погрешность вычислений и источники погрешностей при расчетах накомпьютере;

- способы аппроксимации (приближения) функций;- численное дифференцирование и численное интегрирование,

аппроксимация производных, используемая при построении разностных схемдля решения дифференциальных уравнений, адаптивные алгоритмы, которыесейчас широко используются при решении задач;

- численное решение задач линейной алгебры;- методы решения нелинейных уравнений (алгебраических и

трансцендентных) и их систем;- методы решения задач оптимизации, содержащие элементы линейного

программирования;- методы решения задач Коши и краевых задач для обыкновенных

дифференциальных уравнений;- численные методы решения уравнений с частными производными,

элементы теории разностных схем;- решение интегральных уравнений, в том числе и сингулярных,

необходимых во многих областях науки (механике, физике и др.), а также вобласти искусственного интеллекта (искусственные иммунные системы).

Понятия устойчивости, корректности и сходимостиРассмотрим понятия устойчивости, корректности и сходимости.Некоторые задачи весьма чувствительны к неточностям в исходных

данных. Эта чувствительность характеризуется так называемой устойчи-востью.

Пусть в результате решения задачи по исходному значению величины хнаходится значение искомой величины у. Если исходная величина имеетабсолютную погрешность Dх, то решение имеет погрешность Dy. Задачаназывается устойчивой по исходному параметру х, если решение у непрерывно

Page 36: Abdulina Umk Komp Vych 050704 2010

от него зависит, т. е. малое приращение исходной величины Dх приводит кмалому приращению искомой величины Dy. Другими словами, малыепогрешности в исходной величине приводят к малым погрешностям врезультате расчетов. Отсутствие устойчивости означает, что даже незначи-тельные погрешности в исходных данных приводят к большим погрешностям врешении или вовсе к неверному результату. О подобных неустойчивых задачахтакже говорят, что они чувствительны к погрешностям исходных данных.

Задача называется поставленной корректно, если для любых значенийисходных данных из области допустимых значений решение этой задачисуществует, оно единственно и устойчиво по исходным данным.Неустойчивые задачи, как правило, являются некорректно поставленнымизадачами. Применять для решения таких задач численные методынецелесообразно, поскольку возникающие в расчетах погрешности округленийбудут сильно возрастать в ходе вычислений, что приведет к значительномуискажению результатов. Численный метод называется корректным в случаесуществования и единственности численного решения при любых значенияхисходных данных, а также в случае устойчивости этого решения относительнопогрешностей исходных данных.

При анализе точности вычислительного процесса одним из важнейшихкритериев является сходимость численного метода. Она означает близостьполучаемого численного решения задачи к истинному решению. Строгиеопределения разных оценок близости могут быть даны лишь с привлечениемаппарата функционального анализа.

Рассмотрим понятие сходимости итерационного процесса. Этот процесссостоит в том, что для решения некоторой задачи и нахождения искомогозначения определяемого параметра (например, корня нелинейного уравнения)строится метод последовательных приближений. В результате многократногоповторения этого процесса (или итераций) получаем последовательностьзначений X1, X2, ..., Xn ... . Говорят, что эта последовательность сходится кточному решению X = а, если при неограниченном возрастании числа итерацийпредел этой последовательности существует и равен a: lim Xn=a при n® ¥. Вэтом случае имеем сходящийся численный метод.

Таким образом, для получения решения задачи с необходимой точностьюее постановка должна быть корректной, а используемый численный методдолжен обладать устойчивостью и сходимостью.2ocн[11-13, 25-29]1доп [13-17]

Контрольные вопросы:1. Какие группы методов применяют для решения задач?2. Какие классы задач рассматриваются в теории численных методов?3. Что такое устойчивая задача?4. Что такое поставленная корректно задача?5. Что такое сходимость итерационного процесса?

Page 37: Abdulina Umk Komp Vych 050704 2010

Лекция 10Решение систем линейных уравненийРешение систем линейных уравнений (СЛУ) относится к самой массовой

области применения матричных методов. Система линейных уравнений имеетвид:

а11X1 + а12X2 + … + а1nXn=b1 а21X1 + а22X2 + … + а2nXn=b2 (1)

. . . аn1X1 + аn2X2 + … + аnnXn=bn ,где а11, а12,..., апп – коэффициенты, образующие матрицу А, которые могут

иметь действительные или комплексные значения, x1, х2,..., хп – неизвестные,образующие вектор X, и b1, b2,..., bп – свободные члены (действительные иликомплексные), образующие вектор В. Эта система может быть представлена вматричном виде как АХ=В, где А – матрица коэффициентов при неизвестных,X – искомый вектор неизвестных и В – вектор свободных членов.

Для решения системы линейных уравнений используются следующиеметоды: метод Гаусса, метод Крамера, матричный метод.

Рассмотрим метод Крамера, согласно которому каждое неизвестноепредставляется в виде отношения определителей. Определителем матрицы n-гопорядка называется число D, составленное из коэффициентов системы:

½a11 a 12 … a 1n½ D=½a21 a22 … a2n½= ∑(-1)k a1αa2β ...anω (2)

½… … … … ½½an1 an2 … ann½

где Dj – определитель, получающийся из D заменой столбца, составленного изкоэффициентов akj при неизвестном xj , столбцом, составленным из свободныхчленов bk . Например,

|b1 a12 ... a1n|D1= |... ... ... ... |

|bn an2 ... ann|

Если определитель системы D ≠ 0, то система (1) определенная и имеетодно решение. Корни системы находятся по формулам Крамера:

x1= D1/D, x2= D2/D, ... , xn=Dn/D.

Если D = 0, то система (1) несовместная и не имеет решений. Можнопопытаться использовать правило Крамера для решения систем уравненийпроизвольного порядка. Однако при большом числе уравнений потребуетсявыполнить огромное число арифметических операций, поскольку длявычислений n неизвестных необходимо найти значения определителей, число

Page 38: Abdulina Umk Komp Vych 050704 2010

которых n+1. Из выражения (2) следует, что определитель равен сумме n!слагаемых, каждое из которых является произведением n элементов. Поэтомудля определителя порядка n требуется (n+1)n! умножений и n!-1 сложений, т.е.общее число арифметических операций равно:

N=(n+1)(n*n!-1)+n .Поэтому правило Крамера можно использовать лишь для решения

систем, состоящих из нескольких уравнений. В зависимости от вида матрицы А и ее характерных особенностей

MATLAB позволяет реализовать различные методы решения. Рассмотрим три простейших способа решения СЛУ в MATLAB:

1) Х=В/А;2) Х=В*А^(-1);3) X=B*inv(A).

Пример.Дана система уравнений:

414333754431654

321

321

321

=++=++=++

xxxxxxxxx

Зададим матрицы A и B:A = [4 4 3; 5 4 3; 6 5 4]; B = [31 37 41];

1) Х1=В/А; ® X1 = [2.0000 -59.0000 53.0000];2) Х2=В*А^(-1); ® X2 = [2.0000 -59.0000 53.0000];3) X3=B*inv(A); ® X3 = [2.0000 -59.0000 53.0000].

В MATLAB имеется множество функций, позволяющих решать СЛУ сограничениями, СЛУ с разреженными матрицами и другие способы. При этомиспользуются такие методы как метод наименьших квадратов, методсопряженных градиентов (двунаправленный метод, итерационный метод,квадратичный метод), итерационный метод минимизации общей невязки.

Рассмотрим функции, введенные для решения методом наименьшихквадратов систем линейных уравнений с ограничениями:

1) X =lscov(A,B,V) – возвращает вектор X решения СЛУ вида А*Х=В + е,где е – вектор шумов, который имеет ковариационную матрицу V; реализованметод наименьших квадратов в присутствии шумов с известной ковариацией;прямоугольная матрица А должна быть размера т´ п, где т > п; при решенииминимизируется следующее выражение: (AX-B)'*inv(V)*(AX - B); решениеимеет вид X=inv(A'* inv(V)*A)*A'*inv(V)*B, алгоритм решения, однако,построен так, что операция инвертирования матрицы V не проводится;

2) [X, dX] = lscov(A,B,V) – возвращает также стандартную погрешность X,помещая ее в переменную dX;

3) X =isqnonneg(A,B) – решение СЛУ АХ=В методом наименьших квадратовс неотрицательными ограничениями, А – действительная прямоугольнаяматрица, В – действительный вектор.

Page 39: Abdulina Umk Komp Vych 050704 2010

Решение СЛУ с разреженными матрицами – хотя и не единственная, нонесомненно одна из основных сфер применения аппарата разреженных матриц.Ниже приведены функции, относящиеся к этой области примененияразреженных матриц. Большинство описанных методов относятся китерационным, т. е. к тем, решение которых получается в ходе ряда шагов –итераций, постепенно ведущих к получению результата с заданнойпогрешностью или с максимальным правдоподобием. Описанные нижефункции MATLAB могут и должны применяться и при решении обычных СЛУ– без разреженных матриц:

1) lsqr(A, В) – возвращает точное решение X СЛУ А*Х=В, если матрицапоследовательная, в противном случае – возвращает решение, полученноеитерационным методом наименьших квадратов. Матрица коэффициентов Адолжна быть прямоугольной размера m ´ n, а вектор-столбец правых частейуравнений В должен иметь размер m. Условие m >= n может быть инеобязательным. Функция lsqr начинает итерации от начальной оценки, поумолчанию представляющей собой вектор размером п, состоящий из нулей.Итерации производятся или до сходимости к решению, или до появленияошибки, или до достижения максимального числа итераций (по умолчаниюравного min(20, m, n) – либо 20, либо числу уравнений, либо числунеизвестных). Сходимость достигается, когда отношение вторых норм векторовnorm(B - AX)/norm(B) <= tol (по умолчанию 1е-6);

2) lsqr(A, B, tol) – возвращает решение с заданной погрешностью (порогомотбора) tol.

3) lsqr(A, b, tol, maxit) – возвращает решение при заданном максимальномчисле итераций maxit вместо, возможно, чересчур малого числа, заданного поумолчанию.

Пример применения функций для СЛУ с ограничениями. Решимследующее уравнение:

3571521043

21

21

21

=+=+=+

xxxxxx

» A = [3 4; 1 2; 7 5];» B = [10; 15; 3];» V = [0.4 0.1 0.5; 0.3 -0.2 0.5; 0.7 0.3 0.1];» X = lscov(A, B, V) ® X = [-3.3272 4.2531];» X1 = lsqnonneg(A, B) ® X1 = [0.0000 1.8889].

Пример применения функции для СЛУ с разреженными матрицами.Решим следующее уравнение:

4673112

31

42

21

43

=+=+=+=+

xxxxxxxx

Page 40: Abdulina Umk Komp Vych 050704 2010

» А=[0 0 1 2; 1 3 0 0; 0 1 0 1; 1 0 1 0];» В=[11; 7; 6; 4];» lsqr(A, B, le-6.5)

lsqr converged at iteration 5 to a solution with relative residual 1.9e-013ans = 1.0000 2.0000 3.0000 4.0000

Пример решения СЛУ двунаправленным методом сопряженныхградиентов с помощью функции biсg(a,b). Система уравнений имеет вид:

5379825463254432

4321

4321

4321

4321

=+++=+++=+++

=+++

xxxxxxxxxxxxxxxx

Зададим исходные матрицы системы:» a=[1 2 3 4; 5 2 1 3 ; 4 5 1 2; 1 9 7 3];» b=[4; 6; 8 ; 5];» bicg(a,b) bicg converged at iteration 4 to a solution with relative residual 9.9e-015 ans = 0.1278

1.2026 -1.4846 1.48021ocн[48-79,161-185,190-195], 2ocн[92-161,169-185], 5осн [366-378]1доп [18-42,74-78,106-116], 3доп [5-66] , 4доп [24-31]

Контрольные вопросы:1. Что такое матричный вид системы линейных уравнений?2. Какие методы можно применить для решения СЛУ?3. Что представляет собой метод Крамера?4. Какие простейшие способы решения СЛУ есть в MATLAB?5. Какие функции MATLAB применяют при решении СЛУ с ограничениями?

Лекция 11Вычисление корней функции

Довольно часто возникает задача решения нелинейного уравнения видаf(x) = 0 или f1(x) = f2(x). Последнее уравнение можно свести к виду f(x) =f1(х) -f2(х) = 0. Таким образом, данная задача сводится к нахождению значенийаргумента х функции f(x) одной переменной, при котором значение функцииравно нулю. Иначе такую задачу называют задачей вычисления корней (нулей)функции.

Ряд функций пакета MATLAB предназначен для работы с функциями. Поаналогии с дескрипторами графических объектов могут использоватьсяобъекты класса дескрипторов функций, задаваемых с помощью символа @,например: » fe=@exp.

Page 41: Abdulina Umk Komp Vych 050704 2010

Под функциями понимаются как встроенные функции, например, sin(x)или ехр(х), так и функции пользователя, например, f(x), задаваемые как m-файлы-функции.

Функции MATLAB, решающие задачу вычисления корней функции,приведены ниже:- fzero(@fun, x) – возвращает уточненное значение х, при котором достигается

нуль функции fun, представленной в символьном виде, при начальномзначении аргумента х, возвращенное значение близко к точке, где функцияменяет знак, или равно NaN, если такая точка не найдена;

- fzero(@fun,[xl x2]) – возвращает значение х, при котором fun(x)=0 сзаданием интервала поиска с помощью вектора x=[xl х2], такого, что знакfun(x(1)) отличается от знака fun(x(2)); если это не так, выдается сообщениеоб ошибке; вызов функции fzero с интервалом гарантирует, что fzeroвозвратит значение, близкое к точке, где fun изменяет знак;

- fzero(@fun,x, tol) – возвращает результат с заданной погрешностью tol.Для функции fzero ноль рассматривается как точка, где график функции

fun пересекает ось х, а не касается ее. В зависимости от формы заданияфункции fzero реализуются следующие хорошо известные численные методыпоиска нуля функции: метод деления отрезка пополам, метод секущей иобратной квадратичной интерполяции.

Пример решения уравнения cos(x)=0:» х = fzero(@cos, [1 3]) x = 1.5708

Пример поиска корней функции fun1.Создадим m-файл fun1.m для рассматриваемой функции:

function f = funl(x)f = 0.25*x + sin(x) - l;

Построим график этой функции для определения интервалов поисканулей функции (рисунок 10):» х = 0 : 0.1 : 10;» plot(x, funl(x));» grid on;

Из рисунка видно, что значения корней заключены в интервалах [0.5 1],[2 3] и [5 6]. Найдем их, используя функцию fzero:» xl = fzero(@funl, [0.5 1]) x1 = 0.8905» x2 = fzero(@funl, [2 3]) x2 = 2.8500» x3 = fzero(@funl,[5 6]) x3 = 5.8128» x3 = fzero(@funl, 5, 0.001) x3 = 5.8111

Page 42: Abdulina Umk Komp Vych 050704 2010

Рисунок 10 – График функции funl

1ocн[48-79,161-185,190-195], 2ocн[92-161,169-185], 5осн [366-378]1доп [18-42,74-78,106-116], 3доп [5-66] , 4доп [24-31]

Контрольные вопросы:1. Какая задача называется задачей вычисления корней функции?2. Какие команды пакета MATLAB позволяют вычислить корни исходной

функции?3. В задачах какого вида необходимо вычислить корни функции?4. Какие численные методы применяют для поиска нулей функции?5. Почему необходимо построить график при поиске нулей функции?

Лекция 12Минимизация функцийВажной задачей численных методов является поиск минимума функции

f(x) в некотором интервале изменения х – от х1 до х2. При этом используетсянесколько методов: метод золотого сечения, метод минимизации сиспользованием производной, метод наименьших квадратов.

Рассматриваемая в методе золотого сечения функция должна бытьунимодальной. Введем определение унимодальности. Функция являетсяунимодальной на отрезке , если она на этом отрезке имеет единственнуюточку глобального минимума и слева от этой точки является строгоубывающей, а справа строго возрастающей. Суть метода золотого сечениязаключается в том, чтобы определить точку глобального минимума на отрезке

за минимальное количество шагов, т.е. за минимальное количествовычислений целевой функции.

В соответствии с данным методом в каждый текущий момент временирассматриваются всегда две точки, например, в начальный момент точки и

Page 43: Abdulina Umk Komp Vych 050704 2010

так, чтобы bxxa <<< 21 . При этом возможен один из двух случаев,представленных на рисунке 11.

Рисунок 11 – Исключение отрезков

Согласно свойству унимодальной функции в первом случае искомаяточка не может находиться на отрезке , во втором случае на отрезке

(штриховка). Значит, область поиска сужается, и следующую точкунеобходимо брать на одном из укороченных отрезков: – случай 1 или

– случай 2. Теперь следует определиться, где на исходном отрезке [a, b] необходимо

выбирать точки и . Первоначально ничего неизвестно о положении точки (графиков нет, и они не строятся, при реальной оптимизации есть только

выражение для целевой функции). Поэтому любой из приведенных вышеслучаев возможен с одинаковой вероятностью. Это означает, что лишнимможет оказаться любой из отрезков: или . Отсюда ясно, что точкии следует выбирать симметрично относительно середины отрезка [a, b].

Далее для того, чтобы максимально сузить область поиска, эти точкидолжны быть поближе к середине исходного отрезка. Однако слишком близко ксередине отрезка их тоже брать не следует, т.к. мы хотим построить алгоритм,для реализации которого необходимо общее минимальное количествовычислений целевой функции. Рассмотрим рисунок 12.

Выбирая на первом шаге сравниваемые точки слишком близко ксередине отрезка [a, b], мы исключим из рассмотрения большой отрезокдля случая 1 или для случая 2. Но на втором шаге величина исключаемогоотрезка значительно уменьшится (будет исключен отрезок для случая 1или отрезок для случая 2). Таким образом, в методе золотого сечения, содной стороны, точки следует брать рядом с серединой отрезка, а, с другойстороны, слишком близко друг от друга их брать нельзя.

Если нужно найти максимум функции одной переменной, то достаточнопоставить знак «минус» перед функцией. Поиск минимума можетосуществляться и для функций нескольких переменных.

Page 44: Abdulina Umk Komp Vych 050704 2010

Рисунок 12 –Обоснование расположения точек на отрезке

В зависимости от формы задания функции fminbnd в MATLABвычисление минимума выполняется известными методами золотого сеченияили параболической интерполяции. Для решения используются следующиефункции:

- fminbnd (@fun,xl,x2) – возвращает значение х, которое являетсялокальным минимумом функции fun(x) на интервале xl < x < x2;

- fminbnd (@fun,xl,x2,options) – сходна с описанной выше функцией, ноиспользует параметры tolX (точность), maxfuneval , maxiter (максимальноечисло итераций), display из вектора параметров вычислений options,предварительно установленные при помощи команды optimset. Пример поиска минимума для функции f(x). Представим функцию в

виде m-файла:function y = f(x)y=x.^3 - 2*x - 5;

Построим график этой функции для определения минимума (рисунок 13):» х = 0 : 0.2 : 2;» plot(x, f(x));» grid on;

Найдем значение x и минимум функции:» x = fminbnd(@fun, 0, 2) x = 0.8165» y = f(x) y = - 6.08871ocн[48-79,161-185,190-195], 2ocн[92-161,169-185], 5осн [366-378]1доп [18-42,74-78,106-116], 3доп [5-66] , 4доп [24-31]

Контрольные вопросы:1. С помощью каких методов можно найти минимум функции?2. Что такое унимодальность функции?3. В чем заключается суть метода золотого сечения?

Page 45: Abdulina Umk Komp Vych 050704 2010

4. Какие команды MATLAB применяют для вычисления минимума функции?5. Как можно найти максимум функции в пакете MATLAB?

Рисунок 13 – График функции f(x)

Лекция 13Численное интегрирование Пусть необходимо найти определенный интеграл

ò=b

a

dxxfI )(

от непрерывной функции f на отрезке [ ]ba, . Имеется несколько методоврешения задач численного интегрирования: вычисление с помощью формулыпрямоугольника или формулы трапеции, с помощью формулы Симпсона иликвадратурной формулы Гаусса, а также с применением усложненныхквадратурных формул.

Рассмотрим вычисление определенного интеграла с помощью формулытрапеции. Пусть [ ].,02 hCf Î . Полагаем

ò+

»h ffhdxxf0

10

2)( ,

где ),(),0( 10 hffff == т.е. интеграл òh

dxxf0

)( приближенно заменяется площадью

заштрихованной трапеции, показанной на рисунке 14.Усложненная квадратурная формула трапеций имеет вид:

)22

()( 1210 N

N

b

a

fffffhdxxf +++++» -ò K ,

где h - шаг изменения, N – число точек на интервале [a, b], if - значениефункции в i-й точке.

Page 46: Abdulina Umk Komp Vych 050704 2010

Рисунок 14 - Площадь криволинейной трапеции

Приведенные ниже функции пакета MATLAB выполняют численноеинтегрирование методом трапеций и методом трапеций с накоплением.- trapz(Y) – возвращает определенный интеграл, используя интегрирование

методом трапеций с единичным шагом между отсчетами. Если Y – вектор,то trapz(Y) возвращает интеграл элементов вектора Y, если Y – матрица, тоtrapz(Y) возвращает вектор-строку, содержащую интегралы каждого столбцаэтой матрицы;

- trapz(X,Y) – возвращает интеграл от функции Y по переменной X, используяметод трапеций (пределы интегрирования в этом случае задаютсяначальным и конечным элементами вектора X);

- trapz(...,dim) – возвращает интеграл по строкам или по столбцам для входнойматрицы в зависимости от значения переменной dim;

- cumtrapz(Y) – возвращает численное значение определенного интеграла дляфункции, заданной ординатами в векторе или матрице Y с шагоминтегрирования, равным единице (интегрирование методом трапеций снакоплением). В случае, когда шаг отличен от единицы, но постоянен,вычисленный интеграл достаточно умножить на величину шага. Длявекторов эта функция возвращает вектор, содержащий результатинтегрирования с накоплением элементов вектора Y. Для матриц функциявозвращает матрицу того же размера, что и Y, содержащую результатыинтегрирования с накоплением для каждого столбца матрицы Y;

- cumtrapz(X, Y) – выполняет интегрирование с накоплением от Y попеременной X, используя метод трапеций. X и Y должны быть векторамиодной и той же длины или X должен быть вектором-столбцом, a Y –матрицей;

- cumtrapz(...,dim) – выполняет интегрирование с накоплением элементов поразмерности, точно определенной скаляром dim. Длина вектора X должнабыть равна size(Y.dim).

Пример использования функции trapz:» trapz(cos(x), 2)ans =- 0.64100.4369

Page 47: Abdulina Umk Komp Vych 050704 2010

- 0.2241Пример использования функции quad:

» F = inline('1./(x.^3 - 2*x - 5)');» Q = quad(F, 0, 2) Q = - 0.46051ocн[48-79,161-185,190-195], 2ocн[92-161,169-185], 5осн [366-378]1доп [18-42,74-78,106-116], 3доп [5-66] , 4доп [24-31]

Контрольные вопросы:1. Какие методы применяют при вычислении определенных интегралов?2. Какие методы решения задач численного интегрирования имеются?3. Как вычисляется определенный интеграл с помощью формулы трапеции?4. Какая функция пакета MATLAB выполняют численное интегрированиеметодом трапеций?5. Какая функция пакета MATLAB выполняют численное интегрированиеметодом трапеций с накоплением?

Лекция 14Решение систем обыкновенных дифференциальных уравненийОбыкновенными дифференциальными уравнениями (ОДУ) называются

такие уравнения, которые содержат одну или несколько производных отискомой функции y=y(x). Их можно записать в виде:

F(x,y,y’, …,y )(n )=0, (1)где x – независимая переменная.

Наивысший порядок производной n называют порядком ОДУ.Запишем уравнения первого и второго порядков:

F(x, y, y’) = 0, F(x, y, y’, y”) = 0.Решением уравнения (1) называется всякая функция y=φ(x), которая

после её подстановки в уравнение превращает его в тождество. Дляуравнения первого порядка общее решение зависит от одной произвольнойпостоянной:

y=φ(x, C).Методы решения обыкновенных дифференциальных уравнений можно

разбить на следующие группы: графические, аналитические, приближённыеи численные. Графические методы используют геометрическиепостроения, в частности, одним из них является метод изоклин. Для рядаОДУ первого порядка аналитические методы позволяют получитьрешения в виде формул путём аналитических преобразований.

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

Page 48: Abdulina Umk Komp Vych 050704 2010

Наиболее распространённым и универсальным численным методомявляется метод конечных разностей, сущность которого состоит вследующем. Область непрерывного изменения аргумента (например, отрезок)заменяется дискретным множеством точек, называемых узлами. Эти узлысоставляют разностную сетку. Искомая функция непрерывного аргументаприближённо заменяется функцией дискретного аргумента на заданнойсетке – сеточной функцией. Исходное ОДУ заменяется разностнымуравнением относительно сеточной функции. Такая замена называетсяаппроксимацией ОДУ на сетке. Решение ОДУ сводится к отысканиюзначений сеточной функции в узлах сетки.

Для решения ОДУ применяют такие методы как метод Эйлера, методРунге-Кутта, метод Милна, многошаговые методы.

Для решения систем ОДУ в MATLAB реализованы различные методы.Их реализации названы решателями ОДУ. Обобщенное название solver(решатель) означает один из возможных численных методов решения ОДУ:ode45, ode23, ode113, ode15s, ode23s, ode23t , ode23tb, bvp4c или pdepe.

Решатели реализуют следующие методы решения системдифференциальных уравнений:

- ode45 – одношаговые явные методы Рунге-Кутта 4-го и 5-го порядка. Этоклассический метод, рекомендуемый для начальной пробы решения. Вомногих случаях он дает хорошие результаты;

- ode23 – одношаговые явные методы Рунге-Кутта 2-го и 4-го порядка. Приумеренной жесткости системы ОДУ и низких требованиях к точностиэтот метод. может дать выигрыш в скорости решения;

- ode113 – многошаговый метод Адамса-Башворта-Мултона переменногопорядка Это адаптивный метод, который может обеспечить высокуюточность решения;

- ode23tb – неявный метод Рунге-Кутта в начале решения и метод,использующий формулы обратного дифференцирования 2-го порядка.

Имеются и другие функции для решения ОДУ.Пример решения системы дифференциальных уравнений Ван-Дер-

Поля, имеющих следующий вид: y¢1=y 2 , y¢2 =1000(1-y 2

1 )y 2 -y 1 ,с начальными условиями y1(0)=0, y 2 (0)=1.

Напишем m-файл: function dy = vdp1000(t,y) dy = zeros(2,1); dy(1) = y(2);

dy(2) = 1000*(1 - y(1)^2)*y(2) - y(1);Напишем команду решения ОДУ с помощью решателя ode15s и построим

график этой функции (рисунок 15) в MATLAB:

Page 49: Abdulina Umk Komp Vych 050704 2010

» [T,Y] = ode15s(@vdp1000,[0 3000],[2 0]);» plot(T,Y(:,1),'-o')

Рисунок 15 – График функции Ван-Дер-Поля

Пример решения следующей системы уравнений:y

dtdx 2= ; z

dtdy 2= ; ;2x

dtdz

=

Создадим m-файл: function f = rrr(t,y)

f=zeros(3,1);f(1)=2*y(2);f(2)=2*y(3);

f(3)=2*y(1);Напишем команды решения этой системы с помощью решателя ode23t и

построим график этой функции (рисунок 16) в MATLAB:» options = odeset('RelTol', 1e-4, 'AbsTol', [1e-4 1e-4 1e-5]);» [T,Y] = ode23t(@rrr, [0 12], [0 5 5], options);» plot(T, Y, '+')

Рисунок 16 – График функции1ocн[214-235], 2ocн[36-49,205-226], 5осн [386-395]1доп [149-154], 3доп [47-66]

Контрольные вопросы:1. Как записывается обыкновенное дифференциальное уравнение?

Page 50: Abdulina Umk Komp Vych 050704 2010

2. Какие методы можно применить для решения ОДУ?3. Как записываются решатели ОДУ в MATLAB?4. Какие команды MATLAB применяются для решения ОДУ?5. Как задаются начальные условия при решении ОДУ в MATLAB?

Лекция 15Работа с полиномамиМногочленом (или полиномом) n-ой степени от неизвестного x

называется выражение следующего вида:a0xn + a1xn-1 + … + an-1x + an, ,

где a0, a1,…, an-1, an - коэффициенты этого полинома, которые можно считатьпроизвольными действительными или комплексными числами, причем,старший коэффициент a0 должен быть отличным от нуля.

Два многочлена f(x) и g(x) будут считаться равными (или тождественноравными):

f(x) = g(x),в том случае, если равны их коэффициенты при одинаковых степеняхнеизвестного. В частности, никакой многочлен, хотя бы один коэффициенткоторого отличен от нуля, не может быть равным нулю. Знак равенства,связывающий многочлены, следует понимать в смысле тождественногоравенства этих многочленов. Таким образом, на многочлен n-ой степениследует смотреть как на некоторое формальное выражение, вполнеопределяемое набором своих коэффициентов a0, a1,…, an-1, an, где a0 ¹ 0.Существуют многочлены n-ой степени для любого натурального числа n(многочлены нулевой, квадратной, кубичной и т.д. степени).

Если даны многочлены f(x) и g(x) с комплексными коэффициентами,записанные для удобства по возрастающим степеням x:

f(x) = a0+a1x+…+an-1xn-1+anxn, an¹0,g(x) = b0+b1x+…+bs-1xs-1+bsxs, bs¹0,

и если, например, n³ s, то их суммой называется многочленf(x) + g(x) = c0+c1x +…+ cn-1xn-1 + cnxn,

коэффициенты, которого получаются сложением коэффициентов многочленовf(x) и g(x), стоящих при одинаковых степенях неизвестного, т.е.

ci = ai + bi, i=0, 1,…, n,причем при n>s коэффициенты bs+1, bs+2,…,bn следует считать равными нулю.Степень суммы будет равна n, если n ,больше s, но при n=s она может случайнооказаться меньше n, а именно в случае bn= –an.

Произведением многочленов f(x) и g(x) называется многочленf(x) * g(x) = d0 + d1x +…+ dn+s-1xn+s-1 + dn+sxn+s,

коэффициенты, которого определяются следующим образом:,k

iikki bad å

=+

= i=0, 1, …, n+s-1, n+s,

Page 51: Abdulina Umk Komp Vych 050704 2010

т.е. коэффициент di есть результат перемножения таких коэффициентовмногочленов f(x) и g(x), сумма индексов которых равна i, и сложения всехтаких произведений. В частности:

d0 = a0b0,, d1 = a0b1 + a1b0,, …, dn+s = anbs.Из последнего равенства вытекает неравенство dn+s¹0, и поэтому степень

произведения двух многочленов равна сумме степеней этих многочленов.Отсюда следует, что произведение многочленов, отличных от нуля, никогда небудет равным нулю.

Имеются и другие виды полиномов как многочлен Тейлора,интерполяционный многочлен Лагранжа и другие.

Обычно полином в MATLAB записывается в виде:р(х) = апх^n + xп-1x^n -1+ ... + а2x^2 + а1^х + а0,

В MATLAB имеются следующие функции обработки полиномов:- poly(A) – для квадратной матрицы А размера пxп возвращает вектор-строку

размером n+1, элементы которой являются коэффициентамихарактеристического полинома det(A-sI), где I – единичная матрица, a s –оператор Лапласа;

- poly(r) – для вектора r возвращает вектор-строку r с элементами,представляющими собой коэффициенты полинома, корнями которогоявляются элементы вектора г. Функция roots(r) является обратной, еерезультаты, умноженные на целое число, дают poly (r).

- roots (с) – возвращает вектор-столбец, чьи элементы являются корнямиполинома с.

- polyval (p,x) – возвращает значения полинома р, вычисленные в точках,заданных в массиве х. Полином р – вектор, элементы которого являютсякоэффициентами полинома в порядке уменьшения степеней, х может бытьматрицей или вектором. В любом случае функция polyval вычисляетзначения полинома р для каждого элемента х.

Пример работы с полиномом следующего вида:x=7x3 + 45x2 + 12x + 23

Зададим полином в MATLAB и вычислим его корни:» x=[7, 45, 12, 23];» d=roots(x)d = - 6.2382 - 0.0952 + 0.7195i - 0.0952 - 0.7195i

Попробуем восстановить коэффициенты полинома:» B=Poly (d)B = 1.0000 6.4286 1.7143 3.2857

Для того чтобы коэффициенты полинома стали целыми числами,перемножим полученные значения на 7:

Page 52: Abdulina Umk Komp Vych 050704 2010

» B*7ans = 7.0000 45.0000 12.0000 23.0000Это и есть коэффициенты исходного полинома.1ocн[214-235], 2ocн[36-49,205-226], 5осн [386-395]1доп [149-154], 3доп [47-66]

Контрольные вопросы:1. Как записывается полином?2. Какие многочлены называются равными?3. Как вычисляется сумма многочленов?4. Как обрабатываются полиномы в MATLAB?5. Какая команда MATLAB позволяет вычислить корни полинома?

2.3 Планы лабораторных занятий

Лабораторная работа 1Тема: Вычисление выражений (2ч).Задание: ознакомиться с меню MATLAB, произвести вычисления

простейших выражений со всеми арифметическими операциями над векторамии матрицами.

Цель: изучение вычислений над векторами и матрицами.MATLAB – пакет, предназначенный для проведения сложных

вычислений с векторами, матрицами и массивами. При этом по умолчаниюпредполагается, что каждая заданная переменная – это вектор, матрица илимассив. Например, если задано Х=1, то это значит, что X – это вектор сединственным элементом, имеющим значение 1. Если надо задать вектор изтрех элементов, то их значения следует перечислить в квадратных скобках,разделяя пробелами.

Пример задания вектора из пяти элементов:» V=[l 3 12 4 23]

Работа с пакетом в режиме прямых вычислений носит диалоговыйхарактер и происходит по правилу «задал вопрос, получил ответ».Пользователь набирает на клавиатуре вычисляемое выражение, редактирует егов командной строке и завершает ввод нажатием клавиши ENTER. Некоторыеприемы работы:

- для указания ввода исходных данных используется символ »;- для блокировки вывода результата вычислений некоторого выражения

после него надо установить знак « ; » (точка с запятой);- если не указана переменная для значения результата вычислений, то

MATLAB назначает такую переменную с именем ans;- знаком присваивания является знак «=» (равенство);- встроенные функции записываются строчными буквами, а их аргументы

указываются в круглых скобках;

Page 53: Abdulina Umk Komp Vych 050704 2010

- команда clс – очищает экран и размещает курсор в левом верхнем углупустого экрана.

- команда home – возвращает курсор в левый верхний угол окна.Примеры.

» 2+3 ans = 5» sin(l) ans = 0.8415

Приведем примеры простых математических выражений:1) a+cos(x); 2) 2.301*sin(x); 3) 4+ехр(3)/5; 4) sqrt(y)/2; 5) sin(pi/2) .Покажем примеры представления целых и вещественных чисел сфиксированной и плавающей точкой:1) 0; 2) 2; 3) –3; 4) 2.301; 4) 0.00001; 5) 123.456е-24; 6) -234.456е10 .

Введем ряд определений. Константа – это предварительноопределенное числовое или символьное значение, представленное уникальнымименем. Числа (например, 1, -2 и 1.23) являются безымянными числовымиконстантами. Другие виды констант в MATLAB принято называтьсистемными переменными. Основные системные переменные, применяемые вMATLAB, указаны ниже:- i или j – мнимая единица (корень квадратный из -1);- pi – число p – 3.1415926...;- eps – погрешность операций над числами с плавающей точкой ( 522- );- realmin – наименьшее число с плавающей точкой ( 10222- );- realmax – наибольшее число с плавающей точкой ( 10232 );- inf – значение машинной бесконечности;- ans – переменная, хранящая результат последней операции;- NaN – указание на нечисловой характер данных (Not-a-Number).

Символьная константа – это цепочка символов, заключенных вапострофы, например: 'Hello my friend!', 'Привет', '2+3' . Переменные – этоимеющие имена объекты, способные хранить некоторые данные. Взависимости от этих данных переменные могут быть числовыми илисимвольными, векторными или матричными. Переменным можно задаватьзначения с помощью следующего оператора:

имя_переменной = выражениеТипы переменных заранее не декларируются. Они определяются

выражением, значение которого присваивается переменной. Так, если этовыражение – вектор или матрица, то переменная будет векторной илиматричной. В памяти компьютера переменные занимают определенное место,называемое рабочей областью (workspace). Для очистки рабочей областииспользуется функция clear в разных формах:

- clear – уничтожение определений всех переменных;- clear x – уничтожение определения переменной х;

Page 54: Abdulina Umk Komp Vych 050704 2010

- clear a, b, с – уничтожение определений указанных переменных.Оператор – это специальное обозначение для определенной операции

над данными (операндами). Например, простейшими арифметическимиоператорами являются знаки сложения +, вычитания -, умножения * , деления /,возведения в степень ^. Следует отметить, что большинство операторовотносится к матричным операциям. Есть ряд специальных операторов,например, оператор \ означает деление справа налево, а операторы .* и ./означают соответственно поэлементное умножение и поэлементное делениемассивов. Полный список операторов можно получить, используя командуhelp ops.

Примеры операций с векторами:» Vl=[2 4 6 8];» V2=[l 2 3 4];» V1/V2 ans = 2» V1.*V2 ans = 2 8 18 32» V1./V2 ans = 2 2 2 2 Рассмотрим применение оператора : (двоеточие), которыйиспользуется для создания последовательностей при формировании векторов играфиков:

начальное_значение : шаг : конечное_значениеЭта конструкция порождает возрастающую последовательность чисел,

которая начинается с начального значения, изменяется с заданным шагом изавершается конечным значением. Если шаг не задан, то он принимаетзначение 1.

Примеры применения оператора «двоеточие»:» 1: 5 ans =1 2 3 4 5» i=0 : 2 : 10 i = 0 2 4 6 8 10» j=10 : -2 : 2 j =10 8 6 4 2» V=0 : pi/2 : 2*pi;

Задание матрицы требует указания нескольких строк. Для разграничениястрок используется знак « ; » (точка с запятой).

Пример задания квадратной матрицы:» М=[1 2 3; 4 5 6; 7 8 9] M = 1 2 3 4 5 6 7 8 9

Page 55: Abdulina Umk Komp Vych 050704 2010

Возможен ввод элементов матриц и векторов в виде арифметическихвыражений, содержащих любые доступные системе функции, например:» V= [2+2/(3+4) exp(5) sqrt(l0)] ® V = 2.2857 148.4132 3.1623

Для указания отдельного элемента вектора или матрицы используютсявыражения вида V(1) или M(i, j). Пример:» М(2, 2) ® ans = 5

Если элементу М(2, 2) надо присвоить значение 10, следует записать:»М(2,2)=10 Выражение М(i) с одним индексом дает доступ к элементам матрицы,развернутым в один столбец. Такая матрица образуется из исходной, еслиподряд выписать ее столбцы.

Примеры операций с матрицами:» X = [2 3 7 5; 8 1 9 2; -3 6 4 8; 1 5 6 3];» Z = [11 2 3 ; -4 5 10 3; 1 8 11 -9; 4 5 2 9];» X - Z» X . * Z» X .+ Z» Z . ^ 3

Имеется также ряд особых функций для задания векторов и матриц.Например, функция magic(n) задает магическую матрицу размера п x п, укоторой сумма всех столбцов, всех строк и даже диагоналей равна одному итому же числу:» M=magic(4) ® M = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

Функция sum(M) вычисляет сумму элементов матрицы по столбцам, афункция diag(M) вычисляет сумму элементов главной диагонали. Примеры:» sum(M) ® ans = 34 34 34 34» sum(diag(M)) ® ans = 34

Запись В' означает транспонирование матрицы В, т. е. замену строкстолбцами. Для формирования матриц и выполнения ряда матричных операцийвозникает необходимость удаления отдельных столбцов и строк матрицы. Дляэтого используются пустые квадратные скобки [ ].

Удалим второй столбец, а затем вторую строку, используя оператор«двоеточие»:» М(: , 2) = [ ]» М(2 , :) = [ ]

Переменные и определения новых функций в системе MATLAB хранятсяв особой области памяти, именуемой рабочей областью. Значения переменныхможно сохранять в виде бинарных файлов с расширением .mat. Для этогослужит команда save:

Page 56: Abdulina Umk Komp Vych 050704 2010

- save fname – записывается рабочая область всех переменных в файлебинарного формата с именем fname.mat;

- save fname X – записывает только значение переменной X;- save fname X Y Z – записывает значения переменных X, Y и Z.

Для завершения работы с системой можно использовать команды exit,quit (которые сохраняют содержимое рабочей области и выполняет другиедействия в соответствии с файлом сценария finish.m) или комбинацию клавишCtrl+Q. Команда load после загрузки системы считывает значения этихпеременных и позволяет начать работу с системой с того момента, когда онабыла прервана.

Для выполнения лабораторной работы необходимо:1) ознакомиться с меню MATLAB и освоить простейшие приемы работы;2) вычислить простейшие выражения со всеми арифметическими

операциями;3) задать значения переменным и вычислить простейшие арифметические

выражения;4) задать вектора, произвести вычисления над ними;5) задать матрицы, произвести вычисления над ними;6) задать матрицы, используя оператор «двоеточие», построить большие

матрицы, удалить в них некоторые столбцы и строки;7) построить магические матрицы и транспонированные матрицы, применить

к ним рассмотренные функции;8) оформить отчет и защитить лабораторную работу.

5осн [56-71]2доп [12-43], 4доп [3-8]

Контрольные вопросы:1. Как задается вектор в MATLAB?2. Как задается матрица в MATLAB?3. Какие арифметические операции есть в MATLAB?4. Как записывается выражение в MATLAB?5. Какие операции можно выполнить над вектором и матрицей в MATLAB?

Лабораторная работа 2Тема: Работа с элементарными функциями (2ч.).Задание: отработать в пакете MATLAB с такими классами функций как

арифметические, математические, тригонометрические и другие функции.Цель: изучение различных классов функций в пакете MATLAB.Пакет MATLAB имеет множество встроенных функций для обработки

векторов и матриц. Рассмотрим следующие классы функций: арифметические,отношений, логические, математические, тригонометрические, округления,даты и времени, обработки множеств, обработки строк.

Page 57: Abdulina Umk Komp Vych 050704 2010

В таблице 1 приведен список арифметических функций и операторов исинтаксис их применения. Массив подразумевает использование векторов илиматриц.

Таблица 1Арифметические функции и операторы MATLAB

Функция Опера-тор

Название Синтаксисоператора

Синтаксисфункции

plus + Плюс М1+М2 plus(M1,M2)uplus + Унарный плюс +М uplus(M1)minus - Минус М1-М2 minus(M1,M2)

uminus - Унарный минус -М uminus(M1)mtimes * Матричное умножение М1*М2 Uminus(M1)times .* Поэлементное умножение

массивовА1*А2 times(A1,A2)

mpower ^ Возведение матрицы встепень

М1^х mpower(M1,x)

power .^ Поэлементное возведениемассива в степень

А1^х power(A1,x)

mldivide \ Обратное (справа налево)деление матриц

M1\M2 mldivide(M1,M2)

mrdivide / Деление матриц слеванаправо

М1/М2 mrdivide(M1,M2)

ldivide . \ Поэлементное делениемассивов справа налево

А1.\А2 ldivide(A1,A2)

rdivide . / Поэлементное делениемассивов слева направо

А1 . /А2 rdivide(A1,A2)

Примеры: А=[1 2 3]; В=[2 4 9];» power(A,2) ® ans = 1 4 9» minus (В,А) ® ans = 1 2 6» rdivide (В,А) ® ans = 2 2 3

Функции или операторы отношения служат для сравнения двух величин,векторов или матриц (таблица 2). Данные операторы выполняют поэлементноесравнение векторов или матриц одинакового размера и возвращают значение 1(True), если элементы идентичны, и значение 0 (False) в противном случае.Если один из операндов – скаляр, происходит сравнение всех элементоввторого операнда-массива со значением этого скаляра. В общем случаеоператоры отношения сравнивают два массива одного размера и выдаютрезультат в виде массива того же размера.

Примеры: А=[1 2 3]; В=[4 2 9];» eq(A,b) ® ans = 0 1 0» ge (В,А) ® ans = 1 1 1

Page 58: Abdulina Umk Komp Vych 050704 2010

Таблица 2Функции и операторы отношения MATLAB

Функция Оператор Название Синтаксисоператора

Синтаксисфункции

eq = = Равно x = = y eq(x,y)ne ~ = He равно x ~ = y ne(x,y)lt < Меньше чем x<y lt(x,y)gt > Больше чем x>y gt(x,y)le <= Меньше или равно x<=y le(x,y)ge >= Больше или равно x>=y ge(x,y)

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

Таблица 3Логические операторы и функции MATLAB

Функция Оператор Название Синтаксисand & Логическое И and(x,y)or | Логическое ИЛИ or(x,y)not ~ Логическое НЕ not(x)xог Исключающее ИЛИ xor(x,y)any Верно, если все элементы массива

равны нулюany(x)

all Верно, если все элементы массива неравны нулю

all(x)

Примеры. M1=[1 0 1]; M2=[1 1 0]; and (M1, M2) ® [1 0 0] or (M1, M2) ® [1 1 1] not (M1) ® [0 1 0] xor (M1, M2) ® [0 1 1] any (M1) ® 1 all (M1) ® 0

В пакете MATLAB определены следующие математические(алгебраические и арифметические) функции:- abs(X) – возвращает абсолютную величину для каждого числового

элемента массива X;- ехр(Х) – возвращает экспоненту для каждого элемента X;- factor(n) – возвращает вектор-строку, содержащую простые множители

числа n (для массивов функция неприменима);- G=gcd(A, В) – возвращает массив, содержащий наибольшие общие

делители соответствующих элементов массивов целых чисел А и В;- lcm(A,B) – возвращает наименьшие общие кратные для соответствующих

парных элементов массивов А и В, которые должны содержать

Page 59: Abdulina Umk Komp Vych 050704 2010

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

- log (X), log2(X), log10(X) – возвращает натуральный логарифм, логарифмпо основанию 2 или по основанию 10 элементов массива X.

- mod(X, Y) – взятие X по модулю Y, возвращает остаток от деления X на Y(т. е., X - Y.*floor(X./Y)) для ненулевого Y, и X в противном случае;

- pow2(Y) – возвращает массив X, где каждый элемент есть 2Y;- primes(n) – возвращает вектор-строку простых чисел, меньших или равных

n;- sqrt(A) – возвращает квадратный корень каждого элемента массива X.

Примеры: А=[1 3 5 4]; В=[2 4 6 2];» lcm(А,В) ® ans = 2 12 30 4» М=mod(16,7) ® М = 2

В пакете MATLAB определены следующие тригонометрические иобратные тригонометрические функции, которые вычисляются для каждогоэлемента массива. Все углы в функциях задаются в радианах:- acos (X) – арккосинус для каждого элемента X, для действительных

значений X в области [-1, 1] acos(X) возвращает действительное значение издиапазона диапазона [0, p], для действительных значений X вне области [-1,1] acos(X) возвращает комплексное число;

- acot (X) – арккотангенс для каждого элемента X;- acsc(X) – арккосеканс для каждого элемента X;- asec(X) – арксеканс для каждого элемента X;- asin(X) – арксинус для каждого элемента X, для действительных значений X

в области [-1, 1] asin(X) возвращает действительное число из диапазона [-p/2, p/2], для действительных значений X вне области [-1, 1] asin(X)возвращает комплексное число;

- atan(X) – арктангенс для каждого элемента X, для действительных значенийX atan(X) находится в области [-p/2, p/2];

- cos(X) – косинус для каждого элемента X;- cot(X) – котангенс для каждого элемента X;- csc(X) – косеканс для каждого элемента X;- sec(X) – секанс элементов X;- sin(X) – синус для каждого элемента X;- tan(X) – тангенс для каждого элемента X.

Ряд особых функций служат для выполнения операций округлениячисловых данных и анализа их знака (лекция 2).

Примеры:» А=[1/3 2/3; 4.99 5.01];» B=fix(A) ® B=[0 0; 4 5]

Ряд функций в пакете MATLAB служит для обработки даты и времени:

Page 60: Abdulina Umk Komp Vych 050704 2010

- calendar(d) – возвращает календарь на месяц, в который попадает день,заданный аргументом d (дни отсчитываются от начала летоисчисления);

- calendar – возвращает матрицу размером 6x7, содержащую календарь натекущий месяц, календарь начинается с воскресенья (первый столбец) изавершается субботой;

- calendar(Y,M) – возвращает календарь на месяц, заданный аргументом M, игод, заданный аргументом Y;

- clock – возвращает вектор из 6 элементов, содержащий текущую дату ивремя в десятичной форме [год месяц день час минуты секунды];

- str = date – возвращает строку, содержащую дату в формате дд-ммм-гггг(день-месяц-год).

- datenum – преобразует строку даты в порядковый номер даты, которыйотсчитывается с некоторого начального дня (01.01.00);

- datenum(str) – преобразует дату, заданную строкой str, в порядковый номердаты, строка должна иметь один из следующих форматов: 0, 1, 2, 6, 13, 14,15 или 16, определенных для функции datestr;

- datenum(Y,M,D) – возвращает порядковый номер даты для соответствующихмассивов элементов Y, М и D (год, месяц, день), эти массивы должны иметьодинаковую размерность;

- datenum(Y,M,D,H,MI,S) – возвращает порядковый номер даты длясоответствующих массивов элементов Y, М, D, H, MI и S (год, месяц, день,часы, минуты, секунды);

- datestr(D, dateform) – преобразует каждый элемент массива порядковыхномеров даты D в строку, аргумент dateform определяет формат результата иможет быть номером или строкой в соответствии с таблицей 4;

- datevec(A) – преобразует входные величины в массив размерности nх6,каждая строка которого представляет собой вектор [Y,M,D,H,MI,S], первыепять элементов вектора – целые числа, массив А может состоять или изстрок, удовлетворяющих формату функции datestr, или из скалярныхвеличин, созданных функциями datenum и now;

- [Y, M, D, H, MI, S] = datevec (A) – возвращает компоненты вектора даты какиндивидуальные переменные;

- eomday (Y, М) – возвращает последний день года и месяца, заданныхсоответственно элементами массивов Y и М (пример – нахождениевисокосных лет двадцатого столетия);

- etime(t2,tl) – возвращает длительность промежутка времени (в секундах),задаваемого векторами t1 и t2. Векторы должны удовлетворять формату,выдаваемому функцией clock: Т = [год месяц день час минуты секунды].

- now – возвращает текущие время и дату в форме числа, использованиеrem(now, l) возвращает только время, a floor(now) – только дату;

- tic – запускает таймер;

Page 61: Abdulina Umk Komp Vych 050704 2010

- [N,S] = weekday(D) – возвращает день недели в виде числа N и в видестроки S для каждой даты массива D.

Примеры. datestr(12034, 2) ® 12/11/32 datestr(12034, 8) ® sat datestr(12034, 12) ® Dec32Таблица 4

Форматы представления датыDateform(номер)

Dateform (строка) Пример

0 'dd-rmiM-yyyy HH:MM:SS' 1l-Mar-1995 03:451 'dd-mmM-yyyy' Ol-Mar-19952 'mm/dd/yy' 03/01/953 ' mmm ' Mar4 'm' M5 'mm' 36 'mm/dd' 03/017 'dd' 18 'ddd' Wed9 'd' W

10 'УУУУ' 199511 'УУ' 9512 ' mmmyy' Mar95

13 'HH:MM:SS' 15:45:17

В пакете MATLAB имеются функции обработки множеств,представленных векторами, которые широко используются при анализе иобработке данных. Если входные массивы не являются векторами, то онирассматриваются как совокупность векторов-столбцов А=А(:) или В=В(:).

Рассмотрим эти функции:- intersect(A, B) – возвращает пересечение множеств (общие элементы

векторов A и B), результирующий вектор отсортирован по возрастанию;- intersect(A, B, 'rows') – возвращает строки, общие для А и В;- [c,ia,ib] = intersect(A, B) – также возвращает вектор-столбец индексов ia и

ib, но так, что с = А(ia) и с = В(ib);- ismember(А, S) – возвращает вектор той же длины, что и исходный А,

содержащий логические единицы на месте тех элементов вектора А,которые принадлежат множеству S, и логические нули на месте техэлементов вектора А, которые не принадлежат множеству S;

- ismember (А, S, 'rows') – возвращает вектор, содержащий логическиеединицы там, где строки матрицы А являются также строками матрицы S,

Page 62: Abdulina Umk Komp Vych 050704 2010

и логические нули в остальных позициях, А и S должны быть матрицами содинаковым числом столбцов;

- setdiff(A, B) – возвращает разность множеств, т. е., те элементы вектора А,которые не содержатся в векторе В, результирующий вектор сортируетсяпо возрастанию;

- setdiff(A, B, 'rows') – возвращает те строки из матрицы А, которые несодержатся в матрице В, матрицы должны иметь одинаковое числостолбцов;

- setxor(A, B) – исключающее ИЛИ для векторов А и В, результирующийвектор сортируется в порядке возрастания;

- setxor(A, B, 'rows') – возвращает строки, которые не являютсяпересечениями матриц А и В, матрицы должны иметь одинаковое числостолбцов;

- union(A, B) – возвращает вектор объединенных значений из А и В безповторяющихся элементов, результирующий вектор сортируется в порядкевозрастания;

- union(A, B, 'rows') – возвращает объединенные строки из А и В, несодержащие повторений (матрицы с одинаковым числом столбцов);

- unique(А) – возвращает значения элементов из А, не содержащиеповторений, результирующий вектор сортируется в порядке возрастания;

- unique(А, 'rows') – возвращает уникальные строки А.Примеры.

1) A=[1 2 3 4]; B=[2 5 7 3]; intersect(A, B) ® 2 32) setdiff(A, B) ® 1 4

К функциям обработки строк обычно относят поиск вхождений однихстрок в другие, замену регистров символов, объединение строк и т. д. В пакетеMATLAB следующие функции осуществляют операции над строками:- findstr(strl,str2) – обеспечивает поиск начальных индексов более короткой

строки внутри более длинной и возвращает вектор этих индексов, индексыуказывают положение первого символа более короткой строки в болеедлинной строке;

- lower(str) – возвращает строку символов str, в которой символы верхнегорегистра переводятся в нижний регистр;

- upper(str) – возвращает строку символов str, в которой все символынижнего регистра переводятся в верхний регистр;

- strcat(sl,s2,s3,...) – выполняет горизонтальное объединениесоответствующих рядов массивов символов s1, s2, s3 и т. д. и возвращаетобъединенную строку (ряд) результирующего массива символов, всевходные массивы должны иметь одинаковое число строк (в частном случаедолжны быть представлены в виде одной строки символов);

- strvcat(t1,t2,t3....) – выполняет вертикальное объединение строк tl, t2, t3,.. вмассив символов S;

Page 63: Abdulina Umk Komp Vych 050704 2010

- strcmp( str1, str2) – возвращает логическую единицу, если двесравниваемые строки str1 и str2 идентичны, и логический ноль в противномслучае;

- strncmp(str1, str2, n) – возвращает логическую единицу, если двесравниваемые строки strl и str2 содержат n первых идентичных символов, илогический ноль в противном случае. Аргументы strl и str2 могут бытьтакже строковыми массивами ячеек;

- strrep(strl,str2,str3) – заменяет все подстроки str2, найденные внутри строкисимволов str1, на строку str3;

- strtok(str, delimiter) – возвращает часть текстовой строки str, ограниченнуюс ее конца разделителем delimiter, символы-разделители в начале строкиигнорируются, вектор delimiter содержит возможные символы-разделители;

- strtok(str) – использует символ-разделитель по умолчанию («белоепространство»), реальными символами-разделителями при этом являютсясимвол табуляции (код 9), символ возврата каретки (код 13) и пробел (код32).

Примеры.1) s1=’мама’; s2=’м’; findstr(sl, s2) ® 1 ;2) lower(s1) ® МАМА ;3) strrep(sl, s2, ‘у’) ® уауа .

Для выполнения лабораторной работы необходимо:1) отработать со всеми классами функций: арифметическими, отношения,логическими, математическими, тригонометрическими, округления, надвременем и датой, над множествами, над строками;2) исследовать применение всех указанных функций, используя в качествеаргументов и переменные, и векторы, и матрицы;3) оформить отчет и защитить лабораторную работу.5осн [245-276]2доп [56-78], 4доп [8-15]

Контрольные вопросы:1) Какие классы функций есть в MATLAB?2) Какие арифметические функции существуют в MATLAB?3) Какие математические функции есть в MATLAB?4) Какие тригонометрические и обратные тригонометрические функции естьв MATLAB?5) Как записывается обращение к функции в MATLAB?

Лабораторная работа 3Тема: Работа с двумерными графиками (2 ч.).Задание: ознакомиться с командами построения двумерных графиков в

пакете MATLAB, построить их и произвести редактирование.

Page 64: Abdulina Umk Komp Vych 050704 2010

Цель: изучение команд построения двухмерных графиков в пакетеMATLAB.

В пакете MATLAB имеются широкие возможности по построению иредактированию двумерных и трехмерных графиков. Графический объектимеет множество свойств. Большинство команд высокоуровневой графики,автоматически устанавливают свойства графических объектов и обеспечиваютвоспроизведение графиков в нужной системе координат, палитре цветов имасштабе.

Рассмотрим команды построения двумерных графиков, позволяющиестроить графики функций, логарифмические и полулогарифмические графики:- plot (X, Y) – строит график функции Y(X), координаты точек которой

берутся из векторов одинакового размера Y и X; если X или Y – матрица, тостроится семейство графиков по данным, содержащимся в колонкахматрицы;

- plot(Y) – строит график, где значения у берутся из вектора Y, a iпредставляет собой индекс соответствующего элемента;

- plot(X,Y,S) – аналогична команде plot(X,Y), но тип линии графика можнозадавать с помощью строковой константы S, значения которой представленыв таблице 5;

- loglogx(...) – график в логарифмическом масштабе, синтаксис аналогиченкоманде plot(...);

- semilogx(...) – строит график функции в логарифмическом масштабе(основание 10) по оси X и линейном масштабе по оси Y;

- semilogy(...) – строит график функции в логарифмическом масштабе по осиY и линейном масштабе по оси X.

Пример 1. X=[1 2 3 4 5 6]; Y=[10 3 7 18 4 20]; plot (X, Y)

График представлен на рисунке 2.Столбцовые диаграммы широко используются в обработке данных,

связанных с финансами и экономикой, а также в математическихисследованиях. Ниже представлены команды для построения таких диаграмм:- bar(x, Y) – строит столбцовый график элементов вектора Y (или группы

столбцов для матрицы Y) со спецификацией положения столбцов, заданнойзначениями элементов вектора х, которые должны идти в монотонновозрастающем порядке;

- bar(Y) – строит график значений элементов матрицы Y так же, как указановыше, но фактически для построения графика используется вектор х = 1: m;

o bar(Y,WIDTH) – команда аналогична ранее рассмотренным, но соспецификацией ширины столбцов (при WIDTH > 1 столбцы в одной и тойже позиции перекрываются), по умолчанию задано WIDTH = 0.8.

Пример 2. bar ( rand (5, 7)) .График представлен на рисунке 3.

Page 65: Abdulina Umk Komp Vych 050704 2010

Таблица 5Значения константы S

Цвет линии Тип точки Тип линииY- желтый . - точка - (сплошная)М- фиолетовый 0 - окружность ; (двойной пунктир)С- голубой X - крест -. (штрих-пунктир)R- красный + - плюс -- (штриховая)G- зеленый * - звездочкаВ- синий S - квадратW- белый D - ромбК- черный V-треугольник (вниз)

Р ПятиугольникH Шестиугольник

Классическая гистограмма характеризует числа попаданий значенийэлементов вектора Y в М интервалов с представлением этих чисел в видестолбцовой диаграммы. Гистограммы строят следующие команды:- N=hist(Y) – возвращает вектор чисел попаданий для 10 интервалов,

выбираемых автоматически; если Y – матрица, то выдается массив данных очисле попаданий для каждого из ее столбцов;

- N=hist(Y,M) – аналогична рассмотренной выше команде, но используется Минтервалов (М – скаляр);

- N=hist(Y,X) – возвращает числа попаданий элементов вектора Y винтервалы, центры которых заданы элементами вектора X;

- [N,X]=HIST(...) – возвращает числа попаданий в интервалы и данные оцентрах интервалов.

Пример 3: построение гистограмма для 1000 случайных чисел (рисунок 4):» х=-3 : 0.2 : 3;» y=randn(1000,1);» hist(y, x)

Лестничные графики визуально представляют собой ступеньки согибающей, представленной функцией у(х). Такие графики используются,например, для отображения процессов квантования функции у(х),представленной рядом своих отсчетов. При этом в промежутках междуотсчетами значения функции считаются постоянными и равными величинепоследнего отсчета. Для построения лестничных графиков в системе MATLABиспользуются следующие команды:- stairs(Y) – строит лестничный график по данным вектора Y;- stairs(X,Y) – строит лестничный график по данным вектора Y с

координатами х переходов от ступеньки к ступеньке, заданными значениямиэлементов вектора X;

Page 66: Abdulina Umk Komp Vych 050704 2010

- stairs(...,S) – аналогична по действию вышеописанным командам, но строитграфик линиями, стиль которых задается строками S.

Пример 4: построение лестничного графика (рисунок 5):» х=[0 : 0.2 : 12];» y=sin(x);» stairs(y)

Команды построения круговых диаграмм:- pie(X) – строит круговую диаграмму по данным нормализованного вектора

X/ SUM(X), SUM(X) – сумма элементов вектора, если SUM(X)<=1.0, тозначения в X непосредственно определяют площадь секторов;

- pie(X,EXPLODE) – строит круговую диаграмму, у которой отрыв секторовот центра задается вектором EXPLODE, который должен иметь тот жеразмер, что и вектор данных X.

Пример 5: построение круговой диаграммы, где третий и шестой сектораотделены от остальных (рисунок 6):» Х=[1 9 3 4 8 12];» pie(X,[0 0 3 0 0 8])

Существуют и другие типы двумерных графиков: графики с зонамипогрешности, график дискретных отсчетов функции, графики в полярнойсистеме координат, угловые гистограммы, графики векторов, график проекцийвекторов на плоскость, контурные графики и др.

Для выполнения лабораторной работы необходимо:1) ознакомиться с командами построения двумерных графиков;2) построить основные виды двумерных графиков и диаграмм;3) произвести редактирование построенных графиков;4) оформить отчет и защитить лабораторную работу.5осн [157-165, 175-187]2доп [34-51, 116-134], 4доп [15-24]

Контрольные вопросы:1. Какие виды двумерных графиков есть в MATLAB?2. Какие команды построения двумерных графиков имеются в MATLAB?3. Какой вид имеет лестничный график в MATLAB?4. Какой вид имеет круговая диаграмма в MATLAB?5. Какой вид имеет столбцовая диаграмма в MATLAB?

Лабораторная работа 4Тема: Работа с трехмерными графиками (2 ч.).Задание: ознакомиться с командами построения трехмерных графиков в

пакете MATLAB, построить основные виды трехмерных графиков и диаграмми произвести их редактирование.

Цель: изучение команд построения трехмерных графиков в пакетеMATLAB.

Page 67: Abdulina Umk Komp Vych 050704 2010

Рассмотрим построение трехмерной графики. Трехмерные поверхностиобычно описываются функцией двух переменных z(x,у). Специфика построениятрехмерных графиков требует не просто задания ряда значений х и у (векторовх и у), но она требует определения для X и Y двумерных массивов – матриц.Для создания таких массивов служит функция meshgrid, которая используетсясовместно с функциями построения графиков трехмерных поверхностей.Функция meshgrid записывается в следующих формах:- [X,Y] = meshgrid(x) – аналогична [X,Y] = meshgrid(x,x);- [X,Y,Z] = meshgrid(x,y,z) – возвращает трехмерные массивы, используемые

для вычисления функций трех переменных и построения трехмерныхграфиков;

- [X,Y] = meshgrid(x,y) – преобразует область, заданную векторами х и у, вмассивы X и Y, которые могут быть использованы для вычисления функциидвух переменных и построения трехмерных графиков, строки выходногомассива X являются копиями вектора х, а столбцы Y – копиями вектора у.

Примеры:» [X,Y] = meshgrid(l : 4, 13 : 17);» [X,Y] = meshgrid(-2 : .2 : 2, -2 : .2 : 2);

Функция ndgrid является многомерным аналогом функции meshgrid:- [Х1,Х2,ХЗ,...]=ndgrid(xl,x2,x3....) – преобразует область, заданную

векторами x1, x2, x3... в массивы Х1, Х2, ХЗ..., которые могут бытьиспользованы для вычисления функций нескольких переменных имногомерной интерполяции, i-я размерность выходного массива Хi являетсякопией вектора xi;

- [XI,Х2....]=ndgrid(x) – аналогична [XI,Х2....]=ndgrid(x,x,...).Пример применения функции ndgrid:

»[Х1, Х2] = ndgrid(-2 : .2 : 2, -2 : .2 : 2);»Z = XI .* ехр(-Х1.^2 - Х2.^2);»mesh(Z)

Команда plot3(...) является аналогом команды plot (...), но относится кфункции двух переменных z(x, у). Она строит аксонометрическое изображениетрехмерных поверхностей и представлена следующими вариантами:- plot3(x,y,z) – строит массив точек, представленных векторами х, у и z,

соединяя их отрезками прямых;- plot3(X,Y,Z) – строит точки с координатами X(i,:), Y(i,:) и Z(i,:) и соединяет

их отрезками прямых, X, Y и Z – три матрицы одинакового размера.Пример построения трехмерной поверхности:

» [X,Y]=meshgrid([-3 : 0.15 : 3]);» Z=X.^2+Y.^2;» plot3(X,Y,Z)

Наиболее представительными и наглядными являются сетчатые графикиповерхностей с заданной или функциональной окраской. Имеются три группытаких команд:

Page 68: Abdulina Umk Komp Vych 050704 2010

- mesh(X,Y,Z,C) – выводит в графическое окно сетчатую поверхность Z(X,Y)с цветами узлов поверхности, заданными массивом С;

- mesh(X,Y,Z) – аналог предшествующей команды при C=Z, используетсяфункциональная окраска, при которой цвет задается высотой поверхности.

Возможны также варианты команды mesh(x,y,Z), mesh(x,y,Z,C), mesh(Z) иmesh(Z,C).

Пример построение сетчатого графика (рисунок 7):» [X,Y]=meshgrid([-4:0,25:5]);» Z=X.^2 + Y.^2;» mesh(X,Y,Z)

Для закраски многоугольников, определенных в пространстве, служиткоманда fill3:- fill3(X,Y,Z,C) – строит закрашенный многоугольник в пространстве с

данными вершин, хранящимися в векторах X, Y и Z, и цветом, заданнымпалитрой С;

- fill3(Xl,Yl,Zl,Cl,X2,Y2,Z2,C2,...) – другой вариант построения несколькихзакрашенных многоугольников в пространстве.

Пример построение закрашенных многоугольников (рисунок 8):» X=[6 5 7 3 5 4];» Y=[5 4 6 3 7 2];» Z=[4 3 2 1 6 8];» C=[1 2 3 4 5 6];» fill3(X,Y,Z,C)

Объемные круговые диаграммы строятся командой pie3:- pie3(...) – построение трехмерной круговой диаграммы, аналогична команде

pie(...).Для построения цилиндра и сферы в виде трехмерной фигуры с помощью

команд surf (X, Y, Z) или surfl (X,Y,Z) служат команды:- [X,Y,Z]=cylinder(R,N) – создает массивы X, Y и Z, описывающие

цилиндрическую поверхность с радиусом R и числом узловых точек N дляпоследующего построения цилиндра с помощью функции surf(X.Y.Z);

- [X,Y,Z]=cylinder(R) и [X,Y,Z]=cylinder – подобны предшествующейфункции для N=20 и R=[1 1];

- [X,Y,Z]=sphere(N) – генерирует матрицы X, Y и Z размера (N+l)x(N+l) дляпостроения сферы;

- [X,Y,Z]=sphere – аналогична предшествующей функции при N=20.Пример построение объемного цилиндра (рисунок 9):

» [X,Y,Z]=cylinder(15, 40);» surf(X,Y,Z,X)

Пример построения сферы:» [X,Y,Z]=sphere(30);» surfl(X,Y,Z)

Page 69: Abdulina Umk Komp Vych 050704 2010

К числу специальных видов графики относится построение объемныхфигур с помощью плоских треугольников. Для построения таких фигур в видекаркаса (без окраски и отображения плоскостей) используются команды:- trimesh(TRI,X,Y,Z,C) – построение объемной каркасной фигуры с

треугольниками, специфицированными матрицей поверхности TRI, каждаястрока которой содержит три элемента и задает одну треугольную граньпутем указания индексов, по которым координаты выбираются из векторовX, Y, Z, цвета ребер задаются вектором С;

- trimesh(TRI,X,Y,Z) – построение, аналогичное предшествующему при C=Z,т. е. с цветом ребер, зависящим от значений высоты;

Пример построения случайной объемной фигуры, параметры которойзадаются с помощью генератора случайных чисел:» х = rand(1,40):» у = rand(1,40):» z = sin(x.*y);» tri = delaunay(x,y);» trimesh(tri,x,y,z)

Для переключения в режим редактирования графика нужно щелкнуть накнопке Edit Plot (Редактировать график) с изображением курсора-стрелки. Вэтом режиме графиком можно управлять с помощью контекстного меню,вызываемого щелчком правой кнопки мыши. Графики в пакете MATLABстроятся достаточно просто, так как многие свойства графиков установлены поумолчанию. К таким свойствам относятся вывод или скрытие координатныхосей, положение их центра, цвет линии графика, ее толщина и т. д. Свойства ивид графиков можно менять в широких пределах с помощью параметровкоманд графики. Однако этот путь требует хорошего знания деталей языкапрограммирования и дескрипторной графики MATLAB. Форматированиеграфиков стало более строгим и удобным: используются команды FigureProperties (свойства фигуры) и Axis Properties (свойства осей) со всеминеобходимыми настройками.

Поскольку графика MATLAB обеспечивает получение цветныхизображений, в ней есть ряд команд для управления цветом и различнымисветовыми эффектами. Среди них важное место занимает установка палитрыцветов. Палитра цветов RGB задается матрицей MAP из трех столбцов,определяющих значения интенсивности красного (red), зеленого (green) исинего (blue) цветов. Их интенсивность задается в относительных единицах от0.0 до 1.0. Например, [0 0 0] задает черный цвет, [1 1 1] – белый цвет, [0 0 1] –синий цвет. При изменении интенсивности цветов в указанных пределахвозможно задание любого цвета. Таким образом, цвет соответствуетобщепринятому формату RGB.

Команды редактирования графика приведены в лекции 4.Пример установки титульной надписи и надписей по осям графиков:

» [X,Y]=meshgrid([-3 : 0.1 : 3]);

Page 70: Abdulina Umk Komp Vych 050704 2010

» Z=sin(X)./(X.^2+Y.^2+0.3);» surfl(X,Y,Z)» colorbar» colormap(gray)» shading interp» xlabel('Axis X')» ylabel('Axis Y')» zlabel('Axis Z')» title('My graphic')

Пример размещения надписи под кривой графика в позиции (-4, 0.7):» х=10 : 0.1 : 10;» plot(x,sin(x).^3)» text(-4,0.7,'Graphic sin(x)^3')

Команда help graphSd наряду с прочим выводит полный списокхарактерных палитр, используемых графической системой MATLAB:- hsv – цвета радуги;- hot – чередование черного, красного, желтого и белого цветов;- gray – линейная палитра в оттенках серого цвета;- bone – серые цвета с оттенком синего;- copper – линейная палитра с оттенками меди;- pink – розовые цвета с оттенками пастели;- white – палитра белого цвета;- flag – чередование красного, белого, синего и черного цветов;- lines – палитра с чередованием цветов линий;- colorcube – расширенная палитра RGB;- jet – разновидность палитры HSV;- prism – призматическая палитра цветов;- cool – оттенки голубого и фиолетового цветов;- autumn – оттенки красного и желтого цветов;- spring – оттенки желтого и фиолетового цветов;- winter – оттенки синего и зеленого цветов;- summer – оттенки зеленого и желтого цветов.

Приемы форматирования двумерной графики можно использовать приработе с трехмерной графикой – вывод надписи на график, вывод объемнойлегенды и шкалы цветов.

Для выполнения лабораторной работы необходимо:1) ознакомиться с командами построения трехмерныграфиков;2) задать значения для построения трехмерных графиков и построить их;3) произвести редактирование всех видов трехмерныграфиков;4) оформить отчет и защитить лабораторную работу.5осн [157-165, 175-187]2доп [34-51, 116-134], 4доп [15-24]

Контрольные вопросы:

Page 71: Abdulina Umk Komp Vych 050704 2010

1) Какие виды трехмерных графиков есть в MATLAB?2) Какие команды построения трехмерных графиков имеются в MATLAB?3) Какая команда строит закрашенные многоугольники в MATLAB?4) Какая команда строит цилиндр в MATLAB?5) Какие команды редактирования графиков имеются в MATLAB?

Лабораторная работа 5Тема: Статистическая обработка (2 ч.).

Задание: отработать со всеми функциями статистической обработкиданных в пакете MATLAB.

Цель: изучение функций статистической обработки данных в пакетеMATLAB.

Методы статистической обработки данных включают поиск в векторах иматрицах элементов с максимальным и минимальным значениями, вычислениесреднего арифметического, медианы и стандартного отклонения,коэффициентов корреляции, проведение сортировки данных.

В пакете MATLAB определены следующие функции для нахождениямаксимальных и минимальных элементов вектора или матрицы (массива):- mах(А) – возвращает наибольший элемент, если А – вектор, или возвращает

вектор-строку, содержащую максимальные элементы каждого столбца, еслиА – матрица;

- mах(А,В) – возвращает массив того же размера, что А и В, каждый элементкоторого есть максимальный из соответствующих элементов этих массивов;

- max(A,[ ],dim) – возвращает наибольшие элементы по столбцам или построкам матрицы в зависимости от значения скаляра dim: dim=1 – постолбцам, dim=2 – по строкам;

- [C,I] =max(A) – кроме максимальных значений возвращает вектор индексовI этих элементов;

- min(A) – возвращает минимальный элемент, если А – вектор, иливозвращает вектор-строку, содержащую минимальные элементы каждогостолбца, если А – матрица;

- min(A,B) – возвращает массив того же размера, что А и В, каждый элементкоторого есть минимальный из соответствующих элементов этих массивов;

- min(A,[ ],dim) – возвращает наименьший элемент по столбцам или построкам матрицы в зависимости от значения скаляра dim;

- [C,I] = min(A) – кроме минимальных значений возвращает вектор индексовэтих элементов.

Элементарная статистическая обработка данных в массиве обычносводится к нахождению их среднего значения, медианы (срединного значения)и стандартного отклонения:- mean (А) – возвращает арифметическое среднее значение элементов

массива, если А – вектор, или возвращает вектор-строку, содержащую

Page 72: Abdulina Umk Komp Vych 050704 2010

средние значения элементов каждого столбца, если А – матрица(арифметическое среднее значение есть сумма элементов массива, деленнаяна их число);

- mean(A,dim) – возвращает среднее значение элементов по столбцам или построкам матрицы в зависимости от значения скаляра dim;

- median (A) – возвращает медиану, если А – вектор, или вектор-строкумедиан для каждого столбца, если А – матрица;

- median(A,dim) – возвращает значения медиан для столбцов или строкматрицы в зависимости от значения скаляра dim;

- std(X) – возвращает стандартное отклонение элементов массива, если X –вектор, или возвращает вектор-строку, содержащую стандартное отклонениеэлементов каждого столбца, если X – матрица;

- std(X,flag) – возвращает то же значение, что и std(X), если flag=0, а еслиflag=l, функция возвращает среднеквадратическое отклонение (квадратныйкорень из несмещенной дисперсии);

- std(X,flag,dim) – возвращает стандартное или среднеквадратическоеотклонения в зависимости от значения переменной dim.Пример: A=[1 50 100]; mean(A) = 50.3333; median(A) = 50; std(A) = 49.5008

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

Под корреляцией понимается взаимосвязь некоторых величин,представленных векторами или матрицами. Общепринятой мерой линейнойкорреляции является коэффициент корреляции. Его близость к единицеуказывает на высокую степень линейной зависимости. Приведенная нижефункция пакета MATLAB позволяет вычислить коэффициенты корреляции иматрицу ковариаций для входного массива данных:- corrcoef(X) – возвращает матрицу коэффициентов корреляции для входной

матрицы, строки которой рассматриваются как наблюдения, а столбцы – какпеременные, матрица S=corrcoef(X) связана с матрицей ковариацийC=cov(X) следующим соотношением:

§ S(i,j)=C(i,j)/sqrt(C(i,i)C(j,j));- S = corrcoef (х,у) – аналогична функции соггсоеf([х у]), где х и у – векторы-

столбцы;- cov(x) – вычисление матрицу ковариации для матрицы, где каждая строка

рассматривается как наблюдение, а каждый столбец – как переменная, иливозвращает смещенную дисперсию элементов вектора х;

- diag(cov(x)) – вектор смещенных дисперсий для каждого столбца;

Page 73: Abdulina Umk Komp Vych 050704 2010

- sqrt(diag(cov(x))) – вектор стандартных отклонений;- С = cov(x,y) – равносильна функции cov([x у]), где х и у – вектор-столбцы

одинаковой длины.Примеры:

» D=[2 -3 6;3 6 –1; 9 8 5]; C=cov(D);С = 14.3333 16.3333 3.6667 16.3333 34.3333 -10.3333 3.6667 -10.3333 14.3333» std(D) ® ans = 3.7859 5.8595 3.7859

Для выполнения лабораторной работы необходимо:1) отработать со всеми функциями статистической обработки;2) построить матрицу коэффициентов корреляции и матрицу ковариации;3) оформить отчет и защитить лабораторную работу.3осн [142-157], 5ocн[157-212, 245 -278]2доп [123-129], 4доп[24-25]

Контрольные вопросы:1) Какие функции для нахождения максимальных и минимальных элементов

вектора есть в MATLAB?2) Какие функции для нахождения максимальных и минимальных элементов

матрицы имеются в MATLAB?3) Как находят среднее значение и медиану в MATLAB?4) Какие команды сортировки есть в MATLAB?5) Как находят матрицу коэффициентов корреляции в MATLAB?

Лабораторная работа 6Тема: Решение систем линейных уравнений (3 ч.).Задание: найти решения нескольких систем линейных уравнений,

используя различные функции пакета MATLAB.Цель: изучение способов решения СЛУ в пакета MATLAB.Решение систем линейных уравнений (СЛУ) относится к самой массовой

области применения матричных методов. Система линейных уравнений имеетвид:

а11X1 + а12X2 + … + а1nXn=b1 а21X1 + а22X2 + … + а2nXn=b2

. . . аn1X1 + аn2X2 + … + аnnXn=bn ,

где а11, а12,..., апп – коэффициенты, образующие матрицу А, которые могутиметь действительные или комплексные значения, x1, х2,..., хп – неизвестные,образующие вектор X, и b1, b2,..., bп – свободные члены (действительные иликомплексные), образующие вектор В. Эта система может быть представлена вматричном виде как АХ=В, где А – матрица коэффициентов при неизвестных,X – искомый вектор неизвестных и В – вектор свободных членов. В

Page 74: Abdulina Umk Komp Vych 050704 2010

зависимости от вида матрицы А и ее характерных особенностей MATLABпозволяет реализовать различные методы решения.

Рассмотрим 3 простейших способа решения СЛУ:1) Х=В/А;2) Х=В*А^(-1);3) X=B*inv(A).

Примеры:A = [4 4 3; 5 4 3; 6 5 4]; B = [31 37 41];

1) Х1=В/А; ® X1 = [2.0000 -59.0000 53.0000];2) Х2=В*А^(-1); ® X2 = [2.0000 -59.0000 53.0000];3) X3=B*inv(A); ® X3 = [2.0000 -59.0000 53.0000].

Рассмотрим другие способы решения СЛУ.1) Выражение Х=В/А дает решение ряда систем линейных уравнений

АХ=В, где А – матрица размера тхп и В – матрица размера nxk.2) Выражение Х=В\А дает решение ряда систем линейных уравнений

ХА=В , где А – матрица размера тхп и В – матрица размера nxk. Если А –квадратная матрица, то А\В – примерно то же самое, что и inv(A)*B, востальных случаях возможны варианты, отмеченные ниже.

3) Если А – матрица размера пхп, а В – вектор-столбец с п компонентамиили матрица с несколькими подобными столбцами, тогда Х=А\В – решениеуравнения АХ=В , которое находится хорошо известным методом исключенияГаусса.

Теперь рассмотрим функции, введенные для решения систем линейныхуравнений с ограничениями методом наименьших квадратов:- X =lscov(A,B,V) – возвращает вектор X решения СЛУ вида А*Х=В+е, где е

– вектор шумов, который имеет ковариационную матрицу V; реализованметод наименьших квадратов в присутствии шумов с известнойковариацией; прямоугольная матрица А должна быть размера тхп, гдет>п; при решении минимизируется следующее выражение: (AX-B)'*inv(V)*(AX - B); решение имеет вид X=inv(A'* inv(V)*A)*A'*inv(V)*B,алгоритм решения, однако, построен так, что операция инвертированияматрицы V не проводится;

- [X, dX] = lscov(A,B,V) – возвращает также стандартную погрешность X,помещая ее в переменную dX;

- X =isqnonneg(A,B) – решение СЛУ АХ=В методом наименьших квадратовс неотрицательными ограничениями, А – действительная прямоугольнаяматрица, В – действительный вектор.

Примеры:A = [3 4; 1 2; 7 5]; B = [10; 15; 3];V = [0.4 0.1 0.5; 0.3 -0.2 0.5; 0.7 0.3 0.1];

» X = lscov(A, B, V) ® X = [-3.3272 4.2531];» X1 = lsqnonneg(A, B) ® X1 = [0.0000 1.8889];

Page 75: Abdulina Umk Komp Vych 050704 2010

Решение СЛУ с разреженными матрицами – хотя и не единственная, нонесомненно одна из основных сфер применения аппарата разреженных матриц.Ниже приведены функции, относящиеся к этой области примененияразреженных матриц. Большинство описанных методов относится китерационным, т. е. к тем, решение которых получается в ходе ряда шагов –итераций, постепенно ведущих к получению результата с заданнойпогрешностью или с максимальным правдоподобием. Описанные нижефункции MATLAB могут и должны применяться и при решении обычных СЛУ– без разреженных матриц.

· lsqr(A, В) – возвращает точное решение X СЛУ А*Х=В , еслиматрица последовательная, в противном случае – возвращает решение,полученное итерационным методом наименьших квадратов. Матрицакоэффициентов А должна быть прямоугольной размера m х n, а вектор-столбецправых частей уравнений В должен иметь размер m. Условие m>=n может бытьи необязательным. Функция lsqr начинает итерации от начальной оценки, поумолчанию представляющей собой вектор размером п, состоящий из нулей.Итерации производятся или до сходимости к решению, или до появленияошибки, или до достижения максимального числа итераций (по умолчаниюравного min(20, m, n) – либо 20, либо числу уравнений, либо числунеизвестных). Сходимость достигается, когда отношение вторых норм векторовnorm(B - AX)/norm(B) <= tol (по умолчанию 1е-6);

- lsqr(A,B,tol) – возвращает решение с заданной погрешностью (порогомотбора) tol;

- lsqr(A,b,tol,maxit) – возвращает решение при заданном максимальномчисле итераций maxit вместо, возможно, чересчур малого числа,заданного по умолчанию.Примеры:

» А=[0 0 1 2; 1 3 0 0; 0 1 0 1; 1 0 1 0];» В=[11; 7; 6; 4];» lsqr(A, B, le-6.5)

lsqr converged at iteration 5 to a solution with relative residual 1.9e-013ans = 1.0000 2.0000 3.0000 4.0000

Для выполнения лабораторной работы необходимо:1) выбрать несколько систем линейных уравнений;2) записать эти системы линейных уравнений в матричном виде;3) изучить способы решения СЛУ в MATLAB;4) найти решения нескольких систем линейных уравнений, используяразличные способы их решения в пакете MATLAB;5) оформить и защитить лабораторную работу.1осн[48-69], 2осн[114-169], 3осн[125-146], 5осн[366-371]1доп[18-42], 2доп[176-191], 3доп[5-46], 4доп[26-31]

Контрольные вопросы:1) Как записывается система линейных уравнений в общем виде?

Page 76: Abdulina Umk Komp Vych 050704 2010

2) Как записывается система линейных уравнений в матричном виде?3) Какие способы решения СЛУ есть в MATLAB?4) Как находят решение СЛУ в MATLAB?5) Какие функции для решения СЛУ есть в MATLAB?

Лабораторная работа 7Тема: Вычисление нулей и минимизация функции (3 ч.).Задание: произвести вычисление нулей функции одной переменной и

выполнить минимизацию функции одной переменной, используя различныефункции пакета MATLAB.

Цель: изучение способов вычисления нулей функции одной переменной иминимизации функции одной переменной в пакета MATLAB.

Ряд функций пакета MATLAB предназначен для работы с функциями. Поаналогии с дескрипторами графических объектов могут использоватьсяобъекты класса дескрипторов функций, задаваемых с помощью символа @,например: » fe=@exp. Под функциями понимаются как встроенные функции,например, sin(x) или ехр(х), так и функции пользователя, например, f(x),задаваемые как m-файлы-функции.

Довольно часто возникает задача решения нелинейного уравнения видаf(x) = 0 или f1(x) = f2(x). Последнее уравнение можно свести к виду f(x) =f1(х) -f2(х) = 0. Таким образом, данная задача сводится к нахождению значенийаргумента х функции f(x) одной переменной, при котором значение функцииравно нулю. Функции MATLAB, решающие данную задачу, приведены ниже:- fzero(@fun, x) – возвращает уточненное значение х, при котором

достигается нуль функции fun, представленной в символьном виде, приначальном значении аргумента х, возвращенное значение близко к точке, гдефункция меняет знак, или равно NaN, если такая точка не найдена;

- fzero(@fun,[xl x2]) – возвращает значение х, при котором fun(x)=0 сзаданием интервала поиска с помощью вектора x=[xl х2], такого, что знакfun(x(1)) отличается от знака fun(x(2)); если это не так, выдается сообщениеоб ошибке; вызов функции fzero с интервалом гарантирует, что fzeroвозвратит значение, близкое к точке, где fun изменяет знак;

- fzero(@fun,x, tol) – возвращает результат с заданной погрешностью tol.Для функции fzero ноль рассматривается как точка, где график функции

fun пересекает ось х, а не касается ее. В зависимости от формы заданияфункции fzero реализуются следующие хорошо известные численные методыпоиска нуля функции: деления отрезка пополам, секущей и обратнойквадратичной интерполяции.

Пример решения уравнения cos(x)=0:» х = fzero(@cos,[1 3]) x = 1.5708

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

Page 77: Abdulina Umk Komp Vych 050704 2010

Пример поиска корней функции fun1.m, представленной в виде m-файла:function f = funl(x) f = 0.25*x + sin(x) - l;

Построим график этой функции для определения интервалов поисканулей функции (рисунок 10):» х = 0 : 0.1 : 10;» plot(x, funl(x));» grid on;Из рисунка нетрудно заметить, что значения корней заключены в интервалах[0.5 1], [2 3] и [5 6]. Найдем их, используя функцию fzero:» xl = fzero(@funl, [0.5 1]) x1 = 0.8905» x2 = fzero(@funl, [2 3]) x2 = 2.8500» x3 = fzero(@funl,[5 6]) x3 = 5.8128» x3 = fzero(@funl, 5, 0.001) x3 = 5.8111

Корень хЗ найден двумя способами и значения в третьем знаке последесятичной точки отличаются в пределах заданной погрешности tol =0.001. Ксожалению, сразу найти все корни функции fzero невозможно.

Важной задачей численных методов является поиск минимума функцииf(x) в некотором интервале изменения х – от х1 до х2. Если нужно найтимаксимум такой функции, то достаточно поставить знак «минус» передфункцией. В зависимости от формы задания функции fminbnd вычислениеминимума выполняется известными методами золотого сечения илипараболической интерполяции. Для решения используются следующиефункции:- fminbnd(@fun,xl,x2) – возвращает значение х, которое является локальным

минимумом функции fun(x) на интервале xl < x < x2;- fminbnd(@fun,xl,x2,options) – сходна с описанной выше функцией, но

использует параметры tolX, maxfuneval, maxiter, display из векторапараметров вычислений options, предварительно установленные при помощикоманды optimset.

Пример поиска минимума для функции f(x), представленной в виде m-файла:

function y = f(x) y=x.^3 - 2*x - 5;

Построим график этой функции для определения минимума (рисунок 13):» х = 0 : 0.2 : 2;» plot(x, f(x));» grid on;

Найдем значение x и минимум функции:

Page 78: Abdulina Umk Komp Vych 050704 2010

» x = fminbnd(@fun, 0, 2) x = 0.8165» y = f(x) y = -6.0887

В пакете MATLAB решаются и другие задачи по численным методам:аппроксимация производных; численное интегрирование; работа сполиномами; решение дифференциальных уравнений, интерполяция иаппроксимация данных.

Для выполнения лабораторной работы необходимо:1) изучить возможности пакета MATLAB по вычислению нулей функции

одной переменной, используя различные формы функций пакета MATLAB;2) изучить возможности пакета MATLAB по поиску минимума функции

одной переменной, используя различные формы функций пакета MATLAB;3) вычислить нули нескольких функции одной переменной, построить их

графики и провести поиск нулей в заданных интервалах;4) найти минимумы нескольких функции одной переменной, построить их

графики и провести поиск минимумов в заданных интервалах;5) оформить отчет и защитить лабораторную работу.

1осн[48-69], 2осн[114-169], 3осн[125-146], 5осн[366-371]1доп[18-42], 2доп[176-191], 3доп[5-46], 4доп[26-31]

Контрольные вопросы:1) Как вычисляются нули функции одной переменной?2) Как происходит поиск минимума функции одной переменной?3) Какие способы вычисления нулей функции одной переменной есть в

MATLAB?4) Какие способы посика минимума функции одной переменной есть в

MATLAB?5) Какие функции для вычисления нулей функции одной переменной есть в

MATLAB?

2.5 Планы занятий в рамках самостоятельной работы студентов подруководством преподавателя (СРСП)

Тема 1. Работа с векторами и матрицами (3 ч.)Задание.

1. Задать несколько векторов и матриц разной размерности, используяоператор «двоеточие».

2. Построить несколько больших матриц разной размерности.3. Удалить в нескольких матрицах некоторые столбцы и строки.4. Построить несколько магических матриц разной размерности.

Формой проведения занятия является тренинг.Методические рекомендации.

Page 79: Abdulina Umk Komp Vych 050704 2010

Рассмотрим применение оператора : (двоеточие), который используетсядля создания последовательностей при формировании векторов и графиков:

начальное_значение : шаг : конечное_значениеЭта конструкция порождает возрастающую последовательность чисел,

которая начинается с начального значения, изменяется с заданным шагом изавершается конечным значением. Если шаг не задан, то он принимаетзначение 1.

Для указания отдельного элемента вектора или матрицы используютсявыражения вида V(1) или M(i, j). Пример:» М(2, 2) ® ans = 5

Если элементу М(2, 2) надо присвоить значение 10, следует записать:» М(2, 2)=10

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

Для формирования матриц и выполнения ряда матричных операцийвозникает необходимость удаления отдельных столбцов и строк матрицы. Дляэтого используются пустые квадратные скобки [ ].

Имеется также ряд особых функций для задания векторов и матриц.Например, функция magic(n) задает магическую матрицу размера п x п, укоторой сумма всех столбцов, всех строк и даже диагоналей равна одному итому же числу.

Контрольные примеры.Примеры применения оператора «двоеточие» для задания вектора:

» A = [1: 5] A = [1 2 3 4 5 ]

» V = [0 : 2 : 10 ] V = [0 2 4 6 8 10 ]

Пример применения оператора «двоеточие» для задания матрицы:» A = [1: 5; 2 : 3 : 14] A = [1 2 3 4 5; 2 5 8 11 14 ]

Пример задания магической матрицы:» M=magic(4) ® M = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

Пример объединения малых матриц в большую.Создадим вначале магическую матрицу размера 3x3:

» A=magic(3) ® А = 8 1 6 3 5 7 4 9 2Теперь можно построить матрицу, содержащую четыре матрицы:

» В = [А А+16; А+32 А+16] ® В = 8 1 6 24 17 22

Page 80: Abdulina Umk Komp Vych 050704 2010

3 5 7 19 21 23 4 9 2 20 25 18 40 33 38 24 17 22 35 37 39 19 21 23 36 41 34 20 25 18Пример удаления отдельных столбцов и строк матрицы:

» М(: , 2) = [ ] - удаление второго столбца.» М(2 , :) = [ ] - удаление второй строки.

1осн, 2доп, 4доп

Тема 2. Работа со встроенными функциями: даты и времени,обработки множеств, обработки строк (3 ч.)

Задание.1. Изучить функции обработки даты и времени в MATLAB и выполнить

множество вычислений с ними, исследуя все возможности пакета.2. Изучить функции обработки множеств в MATLAB и выполнить множество

вычислений с ними, исследуя все возможности пакета.3. Изучить функции обработки строк в MATLAB и выполнить множество

вычислений с ними, исследуя все возможности пакета.Формой проведения занятия является тренинг.Методические рекомендации.Ряд функций в пакете MATLAB служит для обработки даты и времени.

Представим некоторые из них:- calendar(d) – возвращает календарь на месяц, в который попадает день,

заданный аргументом d (дни отсчитываются от начала летоисчисления);- clock – возвращает вектор из 6 элементов, содержащий текущую дату и

время в десятичной форме [год месяц день час минуты секунды];- datenum – преобразует строку даты в порядковый номер даты, который

отсчитывается с некоторого начального дня (01.01.00);- now – возвращает текущие время и дату в форме числа, использование

rem(now, l) возвращает только время, a floor(now) – только дату;- tic – запускает таймер;- [N,S] = weekday(D) – возвращает день недели в виде числа N и в виде

строки S для каждой даты массива D.В пакете MATLAB имеются функции обработки множеств,

представленных векторами, которые широко используются при анализе иобработке данных. Если входные массивы не являются векторами, то онирассматриваются как совокупность векторов-столбцов А=А (:) или В=В (:).Рассмотрим некоторые из этих функций:- intersect(A, B) – возвращает пересечение множеств (общие элементы

векторов A и B), результирующий вектор отсортирован по возрастанию;

Page 81: Abdulina Umk Komp Vych 050704 2010

- ismember(А, S) – возвращает вектор той же длины, что и исходный А,содержащий логические единицы на месте тех элементов вектора А,которые принадлежат множеству S, и логические нули на месте техэлементов вектора А, которые не принадлежат множеству S;

- setdiff(A, B) – возвращает разность множеств, т. е., те элементы вектора А,которые не содержатся в векторе В, результирующий вектор сортируется повозрастанию;

- union(A, B) – возвращает вектор объединенных значений из А и В безповторяющихся элементов, результирующий вектор сортируется в порядкевозрастания;

- unique(А) – возвращает значения элементов из А, не содержащиеповторений, результирующий вектор сортируется в порядке возрастания.

К функциям обработки строк обычно относят поиск вхождений однихстрок в другие, замену регистров символов, объединение строк и т. д. В пакетеMATLAB рассмотрим некоторые из этих функций:- findstr(strl,str2) – обеспечивает поиск начальных индексов более короткой

строки внутри более длинной и возвращает вектор этих индексов, индексыуказывают положение первого символа более короткой строки в болеедлинной строке;

- lower(str) – возвращает строку символов str, в которой символы верхнегорегистра переводятся в нижний регистр;

- upper(str) – возвращает строку символов str, в которой все символы нижнегорегистра переводятся в верхний регистр;

- strrep(strl,str2,str3) – заменяет все подстроки str2, найденные внутри строкисимволов str1, на строку str3.

Контрольные примеры.Примеры обработки даты:

1) datestr(12034, 2) ® 12/11/322) datestr(12034, 8) ® sat3) datestr(12034, 12) ® Dec32

Примеры обработки множеств.1) A=[1 2 3 4]; B=[2 5 7 3]; intersect(A, B) ® 2 32) setdiff(A, B) ® 1 4

Примеры обработки строк:1) s1=’мама’; s2=’м’; findstr(sl, s2) ® 1 ;2) lower(s1) ® МАМА ;3) strrep(sl, s2, ‘у’) ® уауа .

5осн, 2 доп, 4 доп

Тема 3. Подготовка данных для создания графиков и ихредактирование (3 ч.)

Задание.

Page 82: Abdulina Umk Komp Vych 050704 2010

1. Изучить функции meshgrid и ndgrid, которые позволяют задавать данные дляпостроения графиков трехмерных поверхностей в MATLAB.

2. Выполнить множество построений графиков трехмерных поверхностей сэтими функциями, исследуя все возможности пакета MATLAB.

3. Изучить команды редактирования графиков в MATLAB.4. Применить эти функции при построении графиков, исследуя все

возможности пакета.Формой проведения занятия является тренинг.Методические рекомендации.Трехмерные поверхности обычно описываются функцией двух

переменных z(x,у). Специфика построения трехмерных графиков требует непросто задания ряда значений х и у (векторов х и у), но она требует определениядля X и Y двумерных массивов – матриц. Для создания таких массивов служитфункция meshgrid, которая используется совместно с функциями построенияграфиков трехмерных поверхностей. Функция meshgrid записывается вследующих формах:- [X,Y] = meshgrid(x) – аналогична [X,Y] = meshgrid(x,x);- [X,Y,Z] = meshgrid(x,y,z) – возвращает трехмерные массивы, используемые

для вычисления функций трех переменных и построения трехмерныхграфиков;

- [X,Y] = meshgrid(x,y) – преобразует область, заданную векторами х и у, вмассивы X и Y, которые могут быть использованы для вычисления функциидвух переменных и построения трехмерных графиков, строки выходногомассива X являются копиями вектора х, а столбцы Y – копиями вектора у.

Для переключения в режим редактирования графика нужно щелкнуть накнопке Edit Plot (Редактировать график) с изображением курсора-стрелки.Рассмотрим некоторые команды редактирования графика:- title('string') – установка на двумерных и трехмерных графиках титульной

надписи, заданной строковой константой 'string';- xlabel('String'), ylabel('String'), zlabel('String') – команды установки надписей

возле осей х, у и z;- text(X,Y, 'string') – добавляет в двумерный график текст, заданный строковой

константой 'string', так что начало текста расположено в точке скоординатами (X, Y), если X и Y заданы как одномерные массивы, тонадпись помещается во все позиции [x(i) ,y(i)];

- legend(stringl, string2, strings,...) – добавляет к текущему графику легенду ввиде строк, указанных в списке параметров;

- axis([XMIN XMAX YMIN YMAX]) – установка диапазонов координат поосям х и у для текущего двумерного графика.

Контрольные примеры.Примеры задания данных для построения графиков трехмерных

поверхностей:» [X,Y] = meshgrid(l : 4, 13 : 17);

Page 83: Abdulina Umk Komp Vych 050704 2010

» [X,Y] = meshgrid(-2 : .2 : 2, -2 : .2 : 2);Пример применения функции ndgrid:

»[Х1, Х2] = ndgrid(-2 : .2 : 2, -2 : .2 : 2);»Z = XI .* ехр(-Х1.^2 - Х2.^2);»mesh(Z)

Пример установки титульной надписи и надписей по осям графиков:» [X,Y]=meshgrid([-3 : 0.1 : 3]);» Z=sin(X)./(X.^2+Y.^2+0.3);» surfl(X,Y,Z)» colorbar» colormap(gray)» shading interp» xlabel('Axis X')» ylabel('Axis Y')» zlabel('Axis Z')» title('My graphic')

Пример размещения надписи под кривой графика в позиции (-4, 0.7):» х=10 : 0.1 : 10;» plot(x,sin(x).^3)» text(-4,0.7,'Graphic sin(x)^3')

5осн, 2 доп, 4доп

Тема 4. Работа с цветом при редактировании графиков (3 ч.)Задание.

1. Изучить возможности применения строковой константы S, задающей цветлинии, тип точки и тип линии в командах построения двухмерныхграфиков в MATLAB.

2. Выполнить множество построений двухмерных графиков с заданием цвета,исследуя все возможности пакета MATLAB.

3. Изучить команду colormap задания характерных палитр, используемыхграфической системой MATLAB, и варианты команды shading, задающейраскраску.

4. Применить эти команды при построении графиков, исследуя всевозможности пакета.

Формой проведения занятия является тренинг.Методические рекомендации.При построении двухмерных графиков цвет и тип линии и точек графика

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

Поскольку графика MATLAB обеспечивает получение цветныхизображений, в ней есть ряд команд для управления цветом и различнымисветовыми эффектами. Среди них важное место занимает установка палитрыцветов. Палитра цветов RGB задается матрицей MAP из трех столбцов,

Page 84: Abdulina Umk Komp Vych 050704 2010

определяющих значения интенсивности красного (red), зеленого (green) исинего (blue) цветов. Их интенсивность задается в относительных единицах от0.0 до 1.0. Например, [0 0 0] задает черный цвет, [1 1 1] – белый цвет, [0 0 1] –синий цвет. При изменении интенсивности цветов в указанных пределахвозможно задание любого цвета. Таким образом, цвет соответствуетобщепринятому формату RGB.

Некоторые команды управления цветом:- colormap(MAP) – устанавливает палитру RGB, заданную матрицей MAP;- colormap('default') – устанавливает палитру по умолчанию, при которой

распределение цветов соответствует радуге;- shading flat – задает окраску ячеек или граней в зависимости от текущих

данных;- shading interp – задает окраску с билинейной интерполяцией цветов;- shading faceted – равномерная раскраска ячеек поверхности (принята по

умолчанию).Команда help graphSd наряду с прочим выводит полный список

характерных палитр, используемых графической системой MATLAB.Контрольные примеры.Пример задания цвета двухмерного графика:

» plot (X, Y, ‘g*’)Пример применения команд задания цвета:

» colorbar» colormap(spring)» shading faceted

5осн, 2 доп, 4доп

Тема 5. Работа с галереей трехмерной графики (3 ч.)Задание.

1. Войти в галерию трехмерной графики пакета MATLAB с помощьюкоманды Examples and demos в меню Help .

2. Изучить состав фигур галереи трехмерной графики в пакете MATLAB.3. Изучить вид каждой из фигур и m-файлы для них с помощью команды:

type имя_m-файла4. Исследовать возможности пакета MATLAB по изменению вида фигуры с

помощью m-файла.Формой проведения занятия является тренинг.Методические рекомендации.Галерея трехмерной графики представлена фигурами и m-файлами,

список которых приведен в таблице 6.Контрольный пример.В качестве примера рассмотрим фигуру «Завязанный узел», вызвав ее по

команде: kleinl и просмотрев командный файл для нее с помощью команды:type kleinl.m

Page 85: Abdulina Umk Komp Vych 050704 2010

Таблица 6Состав галереи трехмерной графики MATLAB

Имя в галерее Файл Наименование фигурыKnot Knot.m Завязанный узелQuiver Quivdemo. m Векторное объемное полеKleinl Kleinl. m Объемное кольцоCruller Cruller.m Объемное кольцо МебиусаHoops Tory4.m Четыре объемных обруча

Slosh Spharm2.mПостроение фигуры,напоминающей улитку

Modes Modes. M Демонстрация фаз анимациитрехмерной поверхности

Logo Logo.mПостроение логотипа системыMATLAB

Команда kleinl строит график объемной ленты Мебиуса с однимперекручиванием. Этот график хорошо иллюстрирует хотя и одноцветную, нофункциональную закраску фигуры с имитацией ее освещения источникомсвета, расположенным вверху справа, и реализацией эффектов отражения света.График построения фигуры изображен на рисунке 1.

Рисунок 17 – Объемная лента Мебиуса

Page 86: Abdulina Umk Komp Vych 050704 2010

Пользуясь командами главного меню в окне фигуры, можно рассмотретьфигуру со всех сторон, а затем изменяя командный файл, изменить свойствафигуры. Текст m-файла для этой фигуры:

% параметры фигурыab = [0 2*pi];rtr = [2 0.5 1];pq = [40 40];box = [-3 3 -3 3 -2 2];vue = [55 60];set(gcf,'color',[.7 .8 .9]); % задает цвет фонаtube('xyklein',ab,rtr,pq,box,vue); % вывод фигурыshading interpcolormap(pink); % задаем цвет фигурыlightlighting phong

5осн, 2 доп, 4доп

Тема 6. Нахождение минимума, максимума и сортировка в векторахи матрицах (3 ч.)

Задание.1. Изучить возможности функций для нахождения максимальных иминимальных элементов векторов или матриц в MATLAB и использовать их набольшом количестве примеров.2. Изучить команду выполнения сортировки векторов и матриц в системеMATLAB и использовать эти команды на большом числе примеров.

Формой проведения занятия является тренинг, а затем дискуссия собсуждением полученных результатов.

Методические рекомендации.Ряд функций статистической обработки данных описан в лабораторной

работе 5. В пакете MATLAB определены такие функции для нахождениямаксимальных и минимальных элементов вектора или матрицы (массива):- max(A,[ ],dim) – возвращает наибольшие элементы по столбцам или по

строкам матрицы в зависимости от значения скаляра dim: dim=1 – постолбцам, dim=2 – по строкам;

- min(A,[ ],dim) – возвращает наименьший элемент по столбцам или построкам матрицы в зависимости от значения скаляра dim.

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

значений, а если матрица, то происходит сортировка по столбцам;

Page 87: Abdulina Umk Komp Vych 050704 2010

- sort(A,dim) – для матриц сортирует элементы по столбцам или по строкам взависимости от значения переменной dim.

- sortrows(A) – выполняет сортировку строк матрицы А по возрастанию;- sortrows(A,column) – возвращает матрицу, отсортированную по столбцам,

указанным в векторе column.Контрольные примеры.Пример поиска максимальных значений в матрице:

» A=magic(7);» С = max(A) ® [46 47 48 49 43 44 45 ]

Пример сортировки магической матрицы:» A=magic(5) ® 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9» [В, INDEX] = sort(A);

5осн, 2 доп, 4 доп

Тема 7. Вычисление среднего, медианы и стандартного отклоненияв векторах и матрицах (3 ч.)

Задание.1. Исследовать возможности пакета MATLAB по элементарнойстатистической обработке данных в векторах и матрицах.2. Вычислить среднее значение, медиану и стандартное отклонение длявекторов и матриц на множестве примеров.

Формой проведения занятия является тренинг, а затем дискуссия собсуждением полученных результатов.

Методические рекомендации.Элементарная статистическая обработка данных в массиве обычно

сводится к нахождению их среднего значения, медианы (срединного значения)и стандартного отклонения:- mean (А) – возвращает арифметическое среднее значение элементов

массива, если А – вектор, или возвращает вектор-строку, содержащуюсредние значения элементов каждого столбца, если А – матрица(арифметическое среднее значение есть сумма элементов массива, деленнаяна их число);

- median (A) – возвращает медиану, если А – вектор, или вектор-строкумедиан для каждого столбца, если А – матрица;

- std(X) – возвращает стандартное отклонение элементов массива, если X –вектор, или возвращает вектор-строку, содержащую стандартное отклонениеэлементов каждого столбца, если X – матрица.

Контрольный пример для вектора.

Page 88: Abdulina Umk Komp Vych 050704 2010

» A=[1 50 100];» mean(A) = 50.3333;» median(A) = 50;» std(A) = 49.5008

5осн, 2 доп, 4 доп

Тема 8. Примеры использования численных методов для решениясистем линейных уравнений с ограничениями (3 ч.)

Задание.1. Изучить существующие методы решения систем линейных уравнений.2. Изучить возможности функции lscov для решения систем линейныхуравнений с ограничениями методом наименьших квадратов в MATLAB ииспользовать эту функцию для множества СЛУ.3. Изучить возможности функции lsqnonneg для решения систем линейныхуравнений с ограничениями методом наименьших квадратов в MATLAB ииспользовать эту функцию для множества СЛУ.

Формой проведения занятия является тренинг, а затем дискуссия собсуждением полученных результатов.

Методические рекомендации.Теперь рассмотрим функции, введенные для решения систем линейных

уравнений с ограничениями методом наименьших квадратов:- X =lscov(A,B,V) – возвращает вектор X решения СЛУ вида А*Х=В+е, где е –

вектор шумов, который имеет ковариационную матрицу V;- [X, dX] = lscov(A,B,V) – возвращает также стандартную погрешность X,

помещая ее в переменную dX;- X =isqnonneg(A,B) – решение СЛУ АХ=В методом наименьших квадратов с

неотрицательными ограничениями, А – действительная прямоугольнаяматрица, В – действительный вектор.

Контрольный пример применения функций для СЛУ с ограничениями:» A = [3 4; 1 2; 7 5];» B = [10; 15; 3];» V = [0.4 0.1 0.5; 0.3 -0.2 0.5; 0.7 0.3 0.1];» X = lscov(A, B, V) ® X = [-3.3272 4.2531];» X1 = lsqnonneg(A, B) ® X1 = [0.0000 1.8889].

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 9. Примеры использования численных методов длярешения систем линейных уравнений с разреженными матрицами (3 ч.)

Задание.1. Изучить понятие «разреженная матрица».2. Изучить возможности функции lsqr для решения систем линейных

уравнений с разреженными матрицами в пакете MATLAB и использоватьэту функцию для множества СЛУ.

Page 89: Abdulina Umk Komp Vych 050704 2010

3. Изучить другие функции для решения систем линейных уравнений(например, biсg – решение СЛУ двунаправленным методом сопряженныхградиентов).

Формой проведения занятия является тренинг, а затем дискуссия собсуждением полученных результатов.

Методические рекомендации.Решение СЛУ с разреженными матрицами – хотя и не единственная, но

несомненно одна из основных сфер применения аппарата разреженных матриц.Большинство описанных методов относится к итерационным. Ниже приведеныфункции, относящиеся к этой области применения разреженных матриц:- lsqr(A, В) – возвращает точное решение X СЛУ А*Х=В , если матрица

последовательная, в противном случае – возвращает решение, полученноеитерационным методом наименьших квадратов;

- lsqr(A,B,tol) – возвращает решение с заданной погрешностью (порогомотбора) tol;

- lsqr(A,b,tol,maxit) – возвращает решение при заданном максимальном числеитераций maxit вместо, возможно, чересчур малого числа, заданного поумолчанию.

Контрольный пример применения функции для СЛУ разреженнымиматрицами:» А=[0 0 1 2; 1 3 0 0; 0 1 0 1; 1 0 1 0];» В=[11; 7; 6; 4];» lsqr(A, B, le-6.5)lsqr converged at iteration 5 to a solution with relative residual 1.9e-013ans = 1.0000 2.0000 3.0000 4.0000

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 10. Примеры использования численных методов длянахождения корней для стандартных функций (3 ч.)

Задание.1. Изучить возможности команды fzero (@fun, x), возвращающей уточненное

значение х, при котором достигается нуль функции fun, в пакете MATLAB.2. Использовать эту функцию для множества примеров, вычисляя корни

стандартных функций таких, как sin(x), cos(x), exp(x) и других.3. Сравнить результаты, получаемые применением функции fzero с разными

параметрами.Формой проведения занятия является тренинг, а затем дискуссия с

обсуждением полученных результатов.Методические рекомендации.Ряд функций пакета MATLAB предназначен для работы с функциями.

Под функциями понимаются как встроенные функции, например, sin(x) илиехр(х), так и функции пользователя, например, f(x), задаваемые как m-файлы-функции.

Page 90: Abdulina Umk Komp Vych 050704 2010

Довольно часто возникает задача решения нелинейного уравнения видаf(x) = 0 или f1(x) = f2(x). Последнее уравнение можно свести к виду f(x) =f1(х) -f2(х) = 0. Таким образом, данная задача сводится к нахождению значенийаргумента х функции f(x) одной переменной, при котором значение функцииравно нулю. Функции MATLAB, решающие данную задачу, приведены ниже:- fzero(@fun, x) – возвращает уточненное значение х, при котором достигается

нуль функции fun, представленной в символьном виде, при начальномзначении аргумента х, возвращенное значение близко к точке, где функцияменяет знак, или равно NaN, если такая точка не найдена;

- fzero(@fun,[xl x2]) – возвращает значение х, при котором fun(x)=0 сзаданием интервала поиска с помощью вектора x=[xl х2], такого, что знакfun(x(1)) отличается от знака fun(x(2));

- fzero(@fun,x, tol) – возвращает результат с заданной погрешностью tol. Для функции fzero ноль рассматривается как точка, где график функции

fun пересекает ось х, а не касается ее. В зависимости от формы заданияфункции fzero реализуются следующие хорошо известные численные методыпоиска нуля функции: деления отрезка пополам, секущей и обратнойквадратичной интерполяции.

Контрольный пример решения уравнения cos(x)=0:» х = fzero(@cos,[1 3]) x = 1.5708

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 11. Примеры использования численных методов длянахождения корней для любых функций (3 ч.)

Задание.1. Изучить возможности команды fzero (@fun, x), возвращающей уточненноезначение х, при котором достигается нуль функции fun, в пакете MATLAB.2. Использовать эту функцию для множества примеров, вычисляя корнилюбых функций.3. Изучить возможности поиска корней для функций, имеющих несколькокорней, и произвести расчеты на множестве примеров.4. Сравнить результаты, получаемые применением функции fzero с разнымипараметрами.

Формой проведения занятия является тренинг, а затем дискуссия собсуждением полученных результатов.

Методические рекомендации.Функции MATLAB, решающие данную задачу, приведены выше в

теме10.Контрольный пример поиска корней функции fun1.

Создадим m-файл fun1.m для рассматриваемой функции:function f = funl(x) f = 0.25*x + sin(x) - l;

Page 91: Abdulina Umk Komp Vych 050704 2010

Построив график этой функции, определим интервалы поиска нулейфункции и найдем все корни:» х = 0 : 0.1 : 10;» plot(x, funl(x));» grid on;» xl = fzero(@funl, [0.5 1]) x1 = 0.8905» x2 = fzero(@funl, [2 3]) x2 = 2.8500» x3 = fzero(@funl,[5 6]) x3 = 5.8128» x3 = fzero(@funl, 5, 0.001) x3 = 5.8111

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 12. Примеры использования численных методов для поискаминимумов функции (3 ч.).

Задание.1. Изучить возможности команды fminbnd(@fun,xl,x2), возвращающей

значение х, которое является локальным минимумом функции fun, в пакетеMATLAB.

2. Использовать эту функцию для множества примеров, находя локальныеминимумы функции и соответствующие им значения х.

3. Для определения области поиска минимума для каждой их исследуемыхфункций необходимо построить график, пользуясь возможностями пакетаMATLAB.

4. Изучить и применить параметры options для этой функции.5. Сравнить результаты, получаемые применением функции fzero с разными

параметрами.Формой проведения занятия является тренинг, а затем дискуссия с

обсуждением полученных результатов.Методические рекомендации.Важной задачей численных методов является поиск минимума функции

f(x) в некотором интервале изменения х – от х1 до х2. Если нужно найтимаксимум такой функции, то достаточно поставить знак «минус» передфункцией. В зависимости от формы задания функции fminbnd вычислениеминимума выполняется известными методами золотого сечения илипараболической интерполяции. Для решения используются следующиефункции:- fminbnd(@fun,xl,x2) – возвращает значение х, которое является локальным

минимумом функции fun(x) на интервале xl < x < x2;- fminbnd(@fun,xl,x2,options) – сходна с описанной выше функцией, но

использует параметры tolX, maxfuneval, maxiter, display из вектора

Page 92: Abdulina Umk Komp Vych 050704 2010

параметров вычислений options, предварительно установленные при помощикоманды optimset.

Контрольный пример: поиск минимума для функции f(x).Представим функцию в виде m-файла:

function y = f(x) y=x.^3 - 2*x - 5;Построим график этой функции и определим минимум:

» х = 0 : 0.2 : 2;» plot(x, f(x));» grid on;» x = fminbnd(@fun, 0, 2) x = 0.8165» y = f(x) y = -6.0887

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 13. Примеры вычисления определенных интегралов (3 ч.).Задание.

1. Изучить возможности команды trapz, возвращающей значениеопределенного интеграла, в пакете MATLAB.2. Использовать эту функцию для множества примеров, находя численныезначения интегралов различного вида.

Формой проведения занятия является тренинг, а затем дискуссия собсуждением полученных результатов.

Методические рекомендации.Приведенные ниже функции пакета MATLAB выполняют численное

интегрирование методом трапеций:- trapz(Y) – возвращает определенный интеграл, используя интегрирование

методом трапеций с единичным шагом между отсчетами. Если Y – вектор, тоtrapz(Y) возвращает интеграл элементов вектора Y, если Y – матрица, тоtrapz(Y) возвращает вектор-строку, содержащую интегралы каждого столбцаэтой матрицы;

- trapz(X,Y) – возвращает интеграл от функции Y по переменной X, используяметод трапеций (пределы интегрирования в этом случае задаютсяначальным и конечным элементами вектора X);

- trapz(...,dim) – возвращает интеграл по строкам или по столбцам для входнойматрицы в зависимости от значения переменной dim.

Контрольный пример использования функции trapz:» trapz(cos(x), 2)ans = - 0.6410 0.4369 - 0.2241

Page 93: Abdulina Umk Komp Vych 050704 2010

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 14. Примеры решения систем обыкновенныхдифференциальных уравнений (3 ч.).

Задание.1. Изучить возможности различных решателей ОДУ в пакете MATLAB.2. Использовать эти команды для множества примеров, решая ОДУ.3. Сравнить результаты, получаемые применением различных решателей.

Формой проведения занятия является тренинг, а затем дискуссия собсуждением полученных результатов.

Методические рекомендации.Для решения систем ОДУ в MATLAB реализованы различные методы.

Их реализации названы решателями ОДУ. Обобщенное название solver(решатель) означает один из возможных численных методов решения ОДУ:ode45, ode23, ode113, ode15s, ode23s, ode23t , ode23tb, bvp4c или pdepe.

Решатели реализуют следующие методы решения ОДУ:- ode45 – одношаговые явные методы Рунге-Кутта 4-го и 5-го порядка; это

классический метод, рекомендуемый для начальной пробы решения, вомногих случаях он дает хорошие результаты;

- ode23 – одношаговые явные методы Рунге-Кутта 2-го и 4-го порядка; приумеренной жесткости системы ОДУ и низких требованиях к точности этотметод может дать выигрыш в скорости решения;

- ode113 – многошаговый метод Адамса-Башворта-Мултона переменногопорядка; это адаптивный метод, который может обеспечить высокуюточность решения;

- ode23tb – неявный метод Рунге-Кутта в начале решения и метод,использующий формулы обратного дифференцирования 2-го порядка.

Имеются и другие функции для решения ОДУ.Контрольный пример решения дифференциального уравнения вида:

y’=2x 2 +2y ,с начальным условием y 0 =1 при x 0 =0.

Напишем команду решения этого ОДУ в MATLAB:» y=dsolve('Dy=2*x^2 + 2*y', 'y(0)=1', 'x') y = - x^2 - x - 1/2 + 3/2*exp(2*x)

На основе полученного решения рассматриваемого дифференциальногоуравнения напишем m-файл du1:

I=1for x = 0 : 0.1: 1 u(I) = - x^2 - x - ½ + 3/2*exp(2*x); I = I+1;end

Вычислим значения полученной функции и построим график функции вMATLAB:

Page 94: Abdulina Umk Komp Vych 050704 2010

» du1;» x = [0 : 0.1: 1];» plot(x,u)В результате получим график, представленный на рисунке 18.

Рисунок 18 – График рассматриваемой функции1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп, 5 доп

Тема 15. Примеры вычисления корней полинома (3 ч.).Задание.

1. Изучить возможности команды вычисления корней полинома в пакетеMATLAB.

2. Использовать эту функцию для множества примеров, находя корниразличных полиномов.

Формой проведения занятия является тренинг, а затем дискуссия собсуждением полученных результатов.

Методические рекомендации. В MATLAB имеются следующие функции обработки полиномов [7-11]:

- poly(A) – для квадратной матрицы А размера п x п возвращает вектор-строкуразмером n + 1, элементы которой являются коэффициентамихарактеристического полинома det(A-sI), где I – единичная матрица, a s –оператор Лапласа;

- poly(r) – для вектора r возвращает вектор-строку r с элементами,представляющими собой коэффициенты полинома, корнями которогоявляются элементы вектора r; функция roots(r) является обратной, еерезультаты, умноженные на целое число, дают poly (r).

- roots (с) – возвращает вектор-столбец, чьи элементы являются корнямиполинома с.

- polyval (p,x) – возвращает значения полинома р, вычисленные в точках,заданных в массиве; полином р – вектор, элементы которого являютсякоэффициентами полинома в порядке уменьшения степеней, х может бытьматрицей или вектором; в любом случае функция polyval вычисляетзначения полинома р для каждого элемента х.

Page 95: Abdulina Umk Komp Vych 050704 2010

Контрольный пример вычисления корней для полинома следующеговида:

x=7x3 + 45x2 + 12x + 23Зададим полином в MATLAB и вычислим его корни:

» x=[7, 45, 12, 23];» d=roots(x)d = - 6.2382 - 0.0952 + 0.7195i - 0.0952 - 0.7195i

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп, 5 доп

2.6 Планы занятий в рамках самостоятельной работы студентов(СРС)

Тема 1. Работа со справочной системой пакета MATLABЗадание. Изучение справочной системы пакета MATLAB (3 ч.).Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) вызвать интерактивную систему помощи в пакете MATLAB через командуhelp и, изучив весь список папок, просмотреть некоторые из них;

2) научиться получать справку по конкретному объекту и по ключевому слову;3) изучить справочную подсистему пакета MATLAB Help Desk, которая

оформлена в виде HTML-файлов.5осн, 2доп, 4 доп

Тема 2. Работа с демонстрационными примерами пакета MATLABЗадание. Изучение справочной системы пакета MATLAB (3 ч.).Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) рассмотреть демонстрационные примеры пакета MATLAB, пользуяськомандой help demos,

2) запустить на выполнение некоторые из них;3) изучить выполнение демонстрационных примеров.

5осн, 2доп, 4 доп

Тема 3. Создание простейших m-файлов для обработки векторов впакете MATLAB

Задание. Изучение возможностей построения m-файлов для обработкивекторов (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) открыть режим создания m-файла, выполнив команду:

Page 96: Abdulina Umk Komp Vych 050704 2010

2) Файл / Новый / М-файл3) в открывшемся окне написать текст m-файла, например, следующие

команды по обработке вектора:a=[1 2 3 4]b=[4 5 6 7]c=a.*bt = 0:pi/100:2*pi;y = sin(t);plot(t,y)grid on

4) сохранить этот файл под любым именем, например, ааа.m (m-файл имеетрасширение .m);

5) запустить его на выполнение по команде: Отладка / Запуск ;6) исправить выявленные ошибки;7) вернувшись в окно команд MATLAB, можно запустить m-файл на

выполнение по команде: ааа.m ;8) текст m-файла в окне команд MATLAB можно по команде: type ааа.m ;9) создать несколько m-файлов по обработке векторов.

5осн, 2доп

Тема 4. Создание простейших m-файлов для обработки матриц впакете MATLAB

Задание. Изучение возможностей построения m-файлов для обработкиматриц (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) открыть режим создания m-файла, выполнив команду:2) Файл / Новый / М-файл

3) в открывшемся окне написать текст m-файла, например, следующиекоманды по обработке матрицы:

M=magic(4)sum(M)sum(diag(M))

4) сохранить этот файл под любым именем, например, а1.m;5) запустить его на выполнение по команде: Отладка / Запуск ;6) исправить выявленные ошибки;7) вернувшись в окно команд MATLAB, можно запустить m-файл на

выполнение по команде: а1.m ;8) текст m-файла в окне команд MATLAB можно по команде: type а1.m ;9) создать несколько m-файлов по обработке матриц.

5осн, 2доп

Page 97: Abdulina Umk Komp Vych 050704 2010

Тема 5. Работа со встроенными функциями (логические иматематические функции) для векторов

Задание. Изучение возможностей логических и математических функцийпо обработке векторов (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) исследовать классы логических и математических встроенных функций впакете MATLAB на предмет возможности их применения для обработкивекторов;

2) применить исследованные встроенные функции для обработки векторов намножестве примеров.

5осн, 2доп, 4 доп

Тема 6. Работа со встроенными функциями (функции обработкимножеств и обработки строк) для векторов

Задание. Изучение возможностей функций обработки множеств иобработки строк для векторов (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) исследовать функции обработки множеств и обработки строк в пакетеMATLAB на предмет возможности их применения для обработки векторов;

2) применить исследованные встроенные функции для обработки векторов намножестве примеров.

5осн, 2доп, 4 доп

Тема 7. Работа со встроенными функциями обработки матрицЗадание. Изучение возможностей встроенных функций по обработке

матриц (3 ч.).Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) исследовать все классы встроенных функций в пакете MATLAB на предметвозможности их применения для обработки матриц;

2) применить исследованные встроенные функции для обработки матриц;3) отметить те функции, которые нельзя применить для обработки матриц.

5осн, 2доп, 4 доп

Тема 8. Примеры редактирования графиков: создание подписей илегенд

Задание. Изучение возможностей создания подписей и легенд приредактировании двумерных графиков (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

Page 98: Abdulina Umk Komp Vych 050704 2010

1) исследовать возможности пакета MATLAB по созданию подписей и легендпри редактировании двумерных графиков;

2) применить найденные команды в различных вариантах при редактированиидвумерных графиков на множестве примеров.

5осн, 2доп, 4 доп

Тема 9. Примеры редактирования графиков: изменение масштаба ицвета

Задание. Изучение возможностей изменения масштаба и цвета приредактировании двумерных графиков (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) исследовать возможности пакета MATLAB по изменению масштаба и цветапри редактировании двумерных графиков;

2) применить найденные команды в различных вариантах при редактированиидвумерных графиков на множестве примеров.

5осн, 2доп, 4 доп

Тема 10. Примеры изменения свойств для любых двух фигур изгалереи трехмерной графики

Задание. Изучение возможностей изменения свойств для любых двухфигур из галереи трехмерной графики (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) войти в галерею трехмерной графики пакета MATLAB;2) изучить вид любых двух фигур и m-файлы для них;3) изменить ряд свойств для каждой из фигур, отслеживая изменения по шагам.

5осн, 2доп, 4 доп

Тема 11. Примеры статистической обработки: построение матрицыковарации и матрицы корреляции

Задание. Изучение возможностей пакета MATLAB по построениюматрицы коварации и матрицы корреляции при статистической обработкиеданных (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) изучить команды пакета MATLAB по построению матрицы коварации иматрицы корреляции при статистической обработкие данных;

2) задав исходную матрицу с данными, вычислить для нее по построениюматрицу коварации и матрицу корреляции;

3) проверить формирование матрицы корреляции по данным матрицыковарации по известной формуле (см. лекцию6);

4) провести такие вычисления на множестве примеров.

Page 99: Abdulina Umk Komp Vych 050704 2010

5осн, 2доп, 4 доп

Тема 12. Примеры использования численных методов длячисленного интегрирования

Задание. Изучение возможностей пакета MATLAB по использованияконкретных численных методов для численного интегрирования (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) изучить метод трапеций как один из численных методов, применяемый длячисленного интегрирования в пакете MATLAB;

2) изучить метод трапеций с накоплением как один из численных методов,применяемый для численного интегрирования в пакете MATLAB;

3) провести вычисления вручную по одному из изучаемых методов;4) выполнить вычисления по численному интегрированию в пакете MATLAB

на множестве примеров.1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 13. Примеры использования численных методов дляаппроксимации функций: метод наименьших квадратов и методравномерного приближения

Задание. Изучение возможностей пакета MATLAB по использованияконкретных численных методов для для аппроксимации функций: методнаименьших квадратов и метод равномерного приближения (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) изучить метод наименьших квадратов и метод равномерного приближениякак численные методы для аппроксимации функций;

2) использовать функцию diff пакета MATLAB для вычисленияпроизводных на множестве примеров.

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 14. Примеры использования численных методов дляаппроксимации функций: многочлен Ньютона и многочлен Лагранжа

Задание. Изучение возможностей пакета MATLAB по использованияконкретных численных методов для для аппроксимации функций: многочленНьютона и многочлен Лагранжа (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) изучить использование интерполяционного многочлена Ньютона иинтерполяционного многочлена Лагранжа для аппроксимациипроизводных;

2) изучить функции аппроксимации Лапласиана в пакете MATLAB иприменить их на большом числе примеров;

Page 100: Abdulina Umk Komp Vych 050704 2010

3) использовать функцию diff пакета MATLAB для вычисленияпроизводных на множестве примеров.

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

Тема 15. Примеры использования численных методов для обработкиполиномов

Задание. Изучение возможностей пакета MATLAB по использованиячисленных методов для обработки полиномов (3 ч.).

Методические рекомендации.Для выполнения задания необходимо выполнить следующие действия:

1) изучить способы задания полиномов;2) изучить такие операции над полиномами как вычисление суммы полиномов,

вычисление произведения полиномов, вычисление деления двух полиномовс остатком;

3) изучить функции пакета MATLAB, позволяющие выполнить основныеоперации для обработки полиномов и применить их на множествепримеров.

1осн, 2осн, 3осн, 5осн, 1доп, 2доп, 3доп, 4 доп

2.7 Тематика письменных работ по курсу

К числу письменных работ по дисциплине «Компьютерные вычисления»относятся 2 самостоятельные работы:

СР1 - Обработка векторов и матриц в виде m-файлов;СР2 - Численные методы в пакете MATLAB (для решения СЛУ,

минимизации функций, аппроксимации производных, численногоинтегрирования, работы с полиномами, решения ОДУ).

Выполнение самостоятельных работ по дисциплине «Компьютерныевычисления» позволит студенту проверить и углубить свои знания и навыки попринципам и методам выполнения математических расчетов с помощьюсовременных программных пакетов на компьютере. Кроме того, в ходе работыстудент изучит принципы реализации численных методов алгебры и анализа,возможности реализации статистической обработки и использованиячисленных методов, будет совершенствовать свои профессиональные качествав области компьютерной подготовки, используя современные вычислительныепакеты (на примере MATLAB) и производя с их помощью различныевычисления для научно-технических расчетов.

Подготовка к выполнению СР1 включает такие шаги:1) изучить возможности пакета MATLAB по обработке векторов и матриц;2) открыть режим создания m-файла, создать m-файл по обработке векторов с

помощью арифметических операций, отладить его и запустить навыполнение, проверив его работоспособность;

Page 101: Abdulina Umk Komp Vych 050704 2010

3) открыть режим создания m-файла, создать m-файл по обработке матриц спомощью арифметических операций, отладить его и запустить навыполнение, проверив его работоспособность;

4) оформить отчет и защитить самостоятельную работу.Подготовка к выполнению СР2 включает такие шаги:

1) получить индивидуальное задание по СР2;2) изучить теорию и применяемые численные методы для выполнения

поставленной задачи;3) изучить возможности пакета MATLAB по выполнению индивидуального

задания;4) подготовить исходные данные и провести вычисления в соответсвии с

поставленной задачей в пакете MATLAB на множестве исходных данных;5) оформить все примеры в виде m-файлов;6) проанализировать полученные результаты;7) оформить отчет и защитить самостоятельную работу.

Варианты заданий по СР2.Вариант 1. Решение системы линейных уравнений. Необходимо

выполнить следующее:- изучить существующие методы решения систем линейных уравнений (метод

Крамера, матричный метод, метод Гаусса и др.) и описать их;- решить пример вручную, пользуясь одним из изученных методов;- изучить возможности пакета MATLAB по решению СЛУ;- выполнить вычисления для множества примеров, пользуясь несколькими

функциями MATLAB.Вариант 2. Минимизация функций. Необходимо выполнить следующее:

- изучить существующие методы минимизации функций (метод деленияотрезка пополам, метод «золотого сечения» и др.) и описать их;

- решить пример вручную, пользуясь одним из изученных методов;- изучить возможности пакета MATLAB по минимизации функций;- выполнить вычисления для множества примеров, пользуясь несколькими

функциями MATLAB.Вариант 3. Численное интегрирование. Необходимо выполнить

следующее:- изучить существующие методы численного интегрирования (формула

прямоугольников, формула трапеций, формула Симпсона и др.) и описатьих;

- решить пример вручную, пользуясь одним из изученных методов;- изучить возможности пакета MATLAB по численному интегрированию;- выполнить вычисления для множества примеров, пользуясь всеми

возможностями MATLAB по численному интегрированию.Вариант 4. Аппроксимация производных. Необходимо выполнить

следующее:

Page 102: Abdulina Umk Komp Vych 050704 2010

- изучить существующие методы аппроксимации производных (метод Руни-Ромберга, метод неопределенных коэффициентов и др.) и описать их;

- решить пример вручную, пользуясь одним из изученных методов;- изучить возможности пакета MATLAB по аппроксимации производных;- выполнить вычисления для множества примеров, пользуясь несколькими

функциями MATLAB.Вариант 5. Работа с многочленами. Необходимо выполнить следующее:

- изучить существующие способы представления многочленов и методы ихобработки (многочлен Тейлора, интерполяционный многочлен Лагранжа идр.) и описать их;

- представить многочлен и выполнить обработку вручную, пользуясь однимиз изученных методом;

- изучить возможности пакета MATLAB по работе с многочленами;- выполнить вычисления для множества примеров, пользуясь различными

функциями MATLAB.Вариант 6. Решение обыкновенных дифференциальных уравнений.

Необходимо выполнить следующее:- изучить существующие методы решения обыкновенных дифференциальных

уравнений (приближенный метод интегрирования, приближенное решениеметодом Эйлера и др.) и описать их;

- решить пример с ОДУ вручную, пользуясь одним из изученных методов;- изучить возможности пакета MATLAB по решению ОДУ;- выполнить вычисления для множества ОДУ, пользуясь несколькими

функциями MATLAB.Вариант 7. Интерполяция и аппроксимация данных. Необходимо

выполнить следующее:- изучить существующие методы интерполяции и аппроксимации данных и

описать их;- решить пример вручную, пользуясь одним из изученных методов;- изучить возможности пакета MATLAB по интерполяции и аппроксимации

данных;- выполнить вычисления для множества примеров, пользуясь различными

возможностями MATLAB.Вариант 8. Матричные операции линейной алгебры. Необходимо

выполнить следующее:- изучить существующие матричные операции линейной алгебры и описать

их;- решить пример вручную, пользуясь одной из изученных операций;- изучить возможности пакета MATLAB по матричным операциям линейной

алгебры;- выполнить вычисления для множества примеров, пользуясь различными

возможностями MATLAB.

Page 103: Abdulina Umk Komp Vych 050704 2010

Вариант 9. Функции разреженных матриц. Необходимо выполнитьследующее:- изучить существующие методы представления и обработки разреженных

матриц и описать их;- решить пример вручную, пользуясь одним из изученных методов;- изучить возможности пакета MATLAB по представлению и обработке

разреженных матриц;- выполнить вычисления для множества примеров, пользуясь различными

возможностями MATLAB.Вариант 10. Операции с векторами. Необходимо выполнить следующее:

- изучить существующие методы обработки векторов и описать их;- решить несколько примеров обработки векторов вручную, пользуясь

изученными методами;- изучить возможности пакета MATLAB по обработке векторов;- выполнить вычисления для множества примеров, пользуясь различными

возможностями MATLAB.Вариант 11. Операции с матрицами. Необходимо выполнить следующее:

- изучить существующие методы обработки матриц и описать их;- решить несколько примеров обработки матриц вручную, пользуясь

изученными методами;- изучить возможности пакета MATLAB по обработке матриц;- выполнить вычисления для множества примеров, пользуясь различными

возможностями MATLAB.Вариант 12. Обработка свойств графических объектов в MATLAB.

Необходимо выполнить следующее:- изучить виды компьютерной графики и методы обработки графических

объектов и описать их;- изучить возможности пакета MATLAB по обработке свойств графических

объектов;- выполнить обработку свойств для множества графических объектов,

пользуясь различными возможностями пакета MATLAB.Вариант 13. Галерея трехмерной графики в MATLAB. Необходимо

выполнить следующее:- изучить виды компьютерной графики и методы обработки графических

объектов и описать их;- изучить фигуры из галереи трехмерной графики;- изучить возможности пакета MATLAB по обработке галереи трехмерной

графики;- выполнить обработку фигур из галереи трехмерной графики, изменяя их

свойства и пользуясь различными возможностями пакета MATLAB.Вариант 14. Специальная графика в MATLAB. Необходимо выполнить

следующее:

Page 104: Abdulina Umk Komp Vych 050704 2010

- изучить виды компьютерной графики и методы обработки графическихобъектов и описать их;

- изучить специальную графику в MATLAB и возможности ее обработки;- выполнить обработку специальной графики на множестве примеров,

пользуясь различными возможностями пакета MATLAB.Вариант 15. Создание пользовательского интерфейса в MATLAB.

Необходимо выполнить следующее:- изучить современные требования к пользовательскому интерфейсу и

описать их;- изучить возможности пакета MATLAB по созданию пользовательского

интерфейса;- создать развитый пользовательский интерфейс для решения некоторых

простейших задач по обработке векторв, матриц и построению графиков,пользуясь различными возможностями пакета MATLAB.

Вариант 16. Построение и обработка двухмерных графиков в MATLAB.Необходимо выполнить следующее:- изучить деловую графику, методы построения и обработки графиков и

описать их;- изучить возможности пакета MATLAB по построению и обработке

различных двухмерных графиков;- выполнить построение и обработку двухмерных графиков на множества

примеров, пользуясь различными возможностями пакета MATLAB.Вариант 17. Построение и обработка трехмерных графиков в MATLAB.

Необходимо выполнить следующее:- изучить деловую графику, методы построения и обработки графиков и

описать их;- изучить возможности пакета MATLAB по построению и обработке

различных трехмерных графиков;- выполнить построение и обработку трехмерных графиков на множества

примеров, пользуясь различными возможностями пакета MATLAB.Пояснительная записка содержит все сведения по самостоятельной

работе в виде рукописного или печатного текста, сопровождаемогонеобходимыми пояснениями, рисунками, текстами программ, распечаткамиконтрольных примеров, блок-схемами. Пояснительная записка по СР1 и СР2включает следующие разделы:

1) индивидуальное задание;2) содержание;3) введение;4) основная часть;5) заключение;6) список литературы.

Во введении следует изложить цель работы, актуальность проблемы,современное состояние вопроса в исследуемой области. В основную часть СР2

Page 105: Abdulina Umk Komp Vych 050704 2010

можно включить раздел «СУЩЕСТВУЮЩИЕ МЕТОДЫ РЕШЕНИЯ», гдеследует описать имеющиеся теоретические методы решения, например, системлинейных уравнений (в соответствии с индивидуальным заданием) и привестипример ручного счета по одному или нескольким методам. В СР2 можновключить разделы «МЕТОДЫ РЕШЕНИЯ В MATLAB» и «ВЫПОЛНЕНИЕРАСЧЕТОВ В MATLAB», где следует описать возможности MATLAB попоставленной задаче, представить результаты счета в MATLAB на множествеисходных данных и произвести анализ этих результатов. В заключении следуетоценить качество полученных результатов, эффективность пакета MATLAB,его универсальность.

2.8 Тестовые задания для самоконтроля с указанием ключейправильных ответов

1 Что собой представляет пакет MATLAB?A. Это язык программирования высокого уровня для обработки массивов.B. Это язык программирования высокого уровня для обработки чисел.C. Это язык программирования высокого уровня для технических

вычислений. *D. Это язык программирования высокого уровня для векторных

вычислений.E. Это язык программирования высокого уровня для обработки строк.

2 С каким расширением сохраняется сеанс работы MATLAB?A. Сеанс работы можно сохранить в файле с расширением .mat . *B. Сеанс работы можно сохранить в файле с расширением .db .C. Сеанс работы можно сохранить в файле с расширением .mdb .D. Сеанс работы можно сохранить в файле с расширением .m .E. Сеанс работы можно сохранить в файле с расширением .txt .

3 Что собой представляет вектор в пакете MATLAB?A. Вектор – это символы, разделенные пробелом.B. Вектор – это числа, разделенные пробелом и заключенные в круглых

скобках.C. Вектор – это числа, разделенные пробелом и заключенные в

квадратных скобках. *D. Вектор – это слова, разделенные пробелом и заключенные в

квадратных скобках.E. Вектор – это выражения со знаками арифметических операций.

4 Что собой представляет матрица в пакете MATLAB?A. Матрица – это строки выражений со знаками арифметических

операций.B. Матрица – это строки из чисел, разделенные точкой с запятой и

заключенные в круглых скобках.

Page 106: Abdulina Umk Komp Vych 050704 2010

C. Матрица – это числа, разделенные пробелом и заключенные вквадратных скобках.

D. Матрица – это строки из чисел, разделенные точкой с запятой изаключенные в квадратных скобках. *

E. Матрица – это символы, разделенные точкой с запятой.5 Какова должна быть размерность матриц при выполнении поэлементныхопераций в пакете MATLAB?

A. Матрицы должны иметь разную размерность.B. Матрицы должны иметь одинаковую размерность. *C. Матрицы могут иметь различную размерность.D. Матрицы должны иметь размерность n.E. Матрицы должны иметь любую размерность.

6 Какой класс функций выполняется над логическими переменными в пакетеMATLAB?

A. Логические функции. *B. Арифметические функции.C. Тригонометрические функции.D. Математические функции.E. Функции над множествами.

7 Как пишутся аргументы встроенных функций в пакете MATLAB?A. Аргументы встроенных функций заключаются в квадратные скобки.B. Аргументы встроенных функций заключаются в фигурные скобки.C. Аргументы встроенных функций заключаются в круглые скобки. *D. Аргументы встроенных функций заключаются в кавычки.E. Аргументы встроенных функций заключаются в апострофы.

8 Какая команда строит столбцовый график в пакете MATLAB?A. Команда plot.B. Команда stairs.C. Команда hist.D. Команда pie.E. Команда bar. *

9 Какая команда строит гистограмму в пакете MATLAB?A. Команда plot.B. Команда bar.C. Команда hist. *D. Команда pie.E. Команда bar.

10 Какая команда строит круговую диаграмму в пакете MATLAB?A. Команда plot.B. Команда stairs.C. Команда hist.D. Команда pie. *E. Команда bar.

Page 107: Abdulina Umk Komp Vych 050704 2010

11 Какие классы чисел используются в пакете MATLAB?A. Используются числа целые, дробные, с фиксированной и плавающей

точкой, комплексные. *B. Используются числа целые и дробные.C. Используются числа целые и с фиксированной и плавающей точкой.D. Используются числа комплексные.E. Используются числа с фиксированной и плавающей точкой.

12 Какой символ используется для блокировки вывода результата вычисленийв пакете MATLAB?

A. Точка.B. Точка с запятой. *C. Запятая.D. Двоеточие.E. Кавычка.

13 Что может содержать выражение в пакете MATLAB?A. Выражение может содержать константы и переменные.B. Выражение может содержать вектора и матрицы.C. Выражение может содержать константы и знаки арифметическихопераций.D. Выражение может содержать переменные, функции, вектора иматрицы.E. Выражение может содержать константы, переменные, функции,вектора, матрицы и знаки арифметических операций. *

14 Какую системную переменную используют в пакете MATLAB для хранениярезультата вычислений?

A. Переменную с именем a.B. Переменную с именем pi.C. Переменную с именем ans. *D. Переменную с именем inf.E. Переменную с именем anser.

15 Что означает знак ^ в пакете MATLAB?A. Операция поэлементного сложения.B. Операция возведения в степень. *C. Операция правостороннего деления.D. Операция взятия по модулю.E. Операция поэлементного умножения.

16 Какой оператор записывается в виде n : k : m в пакете MATLAB?A. Оператор присваивания.B. Условный оператор.C. Оператор перечисления.D. Оператор сравнения.E. Оператор «двоеточие». *

17 Какой знак используют в операторе присваивания в пакете MATLAB?

Page 108: Abdulina Umk Komp Vych 050704 2010

A. Знак «=». *B. Знак « - ».C. Знак «= =».D. Знак «> =».E. Знак «< =».

18 Что такое поэлементная операция в пакете MATLAB?A. Операция, выполняемая над элементами матрицы с одинаковымииндексами..B. Операция, выполняемая над элементами матрицы.C. Операция умножения, выполняемая над элементами вектора.D. Операция, выполняемая над элементами вектора или матрицы содинаковыми индексами. *E. Операция умножения, выполняемая над элементами вектора илиматрицы.

19 Что такое математическая модель?A. Cистема линейных или нелинейных уравнений и неравенств.B. Cистема линейных или нелинейных уравнений и неравенств, котораяявляется моделью исследуемого объекта. *C. Cистема дифференциальных уравнений, которая описывает объект.D. Cистема линейных или нелинейных уравнений и неравенств, котораяявляется моделью исследуемого объекта.E. Cистема линейных уравнений.

20 Какое основное требование предъявляют к математической модели?A. Это ее адекватность рассматриваемому объекту.B. Это ее точность.C. Это отсутствие погрешности.D. Это ее адекватность и точность.E. Это описание рассматриваемого объекта.

21Что такое вычислительный эксперимент?A. Способ изучения исследуемого объекта.B. Способ изучения исследуемого объекта с помощью численногометода.C. Способ изучения процесса или явления с помощью математическоймодели.D. Способ описания исследуемого объекта с помощью математическоймодели.E. Способ изучения исследуемого объекта, процесса или явления спомощью математической модели и численного метода. *

22 Что такое численный метод?A. Это такая интерпретация математической модели, которая доступнадля реализации на компьютере. *B. Это интерпретация математической модели.C. Это реализация на компьютере.

Page 109: Abdulina Umk Komp Vych 050704 2010

D. Это описание математической модели на компьютере.E. Это реализация математической модели.

23 Что такое устойчивость задачи?A. Устойчивость – чувствительность задачи.B. Устойчивость – чувствительность задачи к неточностям в исходныхданных. *C. Устойчивость – чувствительность задачи к неточностям в выходныхданных.D. Устойчивость – чувствительность математической модели кнеточностям в исходных данных.E. Устойчивость – чувствительность задачи к неточностям в исходных ивыходных данных.

24 Что такое корректно поставленная задача ?A. Это задача, для которой решение существует.B. Это задача, для которой решение существует, оно единственно иустойчиво по исходным данным. *C. Это задача, для которой существует единственное решение.D. Это задача, решение которой устойчиво по исходным данным.E. Это задача, решение которой устойчиво по исходным данным.

25 Что такое сходимость численного метода?A. Это близость получаемого численного решения задачи к некоторомурешению.B. Это близость получаемого численного решения задачи к некоторойточке.C. Это точность получаемого численного решения задачи.D. Это близость получаемого численного решения задачи к истинномурешению. *E. Это малая погрешность получаемого численного решения задачи.

26 Что такое постановка задачи?A. Это содержательная постановка задачи, определение конечных целейрешения и построение математической модели. *B. Это содержательная постановка задачи.C. Это определение конечных целей решения задачи.D. Это содержательная постановка задачи и построение математическоймодели.E. Это построение математической модели задачи.

27 Что такое алгоритм решения задачи?A. Это последовательность элементарных арифметических и логическихопераций.B. Это последовательность действий, приводящая к конечномурезультату.C. Это последовательность элементарных арифметических и логическихопераций, приводящая к конечному результату. *

Page 110: Abdulina Umk Komp Vych 050704 2010

D. Это последовательность шагов, приводящая к конечному результату.E. Это последовательность арифметических операций, приводящая крезультату.

28 Как задается система линейных уравнений (СЛУ) в матричном виде?A. СЛУ задается в виде АХ=В. *B. СЛУ задается в виде АХ>В.C. СЛУ задается в виде АХ<В.D. СЛУ задается в виде АХ>=В.E. СЛУ задается в виде АХ= =В.

29 Как можно решить СЛУ, заданную в матричном виде, в пакете MATLAB?A. Решение СЛУ в матричном виде: Х = В - А.B. Решение СЛУ в матричном виде: Х = В + А.C. Решение СЛУ в матричном виде: Х = В/А. *D. Решение СЛУ в матричном виде: Х = А / В.E. Решение СЛУ в матричном виде: Х = В/А - X.

30 Для чего предназначена функция fzero в пакете MATLAB?A. Для вычисления максимума заданной функции.B. Для вычисления минимума заданной функции.C. Для вычисления значений заданной функции.D. Для вычисления заданной функции.E. Для вычисления корней заданной функции. *

31 Для чего предназначена функция fminbnd в пакете MATLAB?A. Для вычисления минимума заданной функции.B. Для вычисления максимума заданной функции. *C. Для вычисления нулей заданной функции.D. Для вычисления корней заданной функции.E. Для вычисления минимума и максимума заданной функции.

Правильные ответы помечены знаком *.

2.9 Перечень экзаменационных вопросов по пройденному курсу

1. Окно MATLAB.2. Панель инструментов в окне MATLAB.3. Главное меню в окне MATLAB.4. Обработка векторов в пакете MATLAB.5. Обработка матриц в пакете MATLAB.6. Построение выражений для обработки векторов в пакете MATLAB.7. Построение выражений для обработки матриц в пакете MATLAB.8. Основные арифметические операции в пакете MATLAB.9. Поэлементные операции над векторами в пакете MATLAB.10. Поэлементные операции над матрицами в пакете MATLAB.11. Построение магических матриц в пакете MATLAB.12. Построение больших матриц в пакете MATLAB.

Page 111: Abdulina Umk Komp Vych 050704 2010

13. Основные классы встроенных функций в пакете MATLAB.14. Арифметические функции в пакете MATLAB.15. Математические функции в пакете MATLAB16. Встроенные функции для обработки векторов в пакете MATLAB.17. Встроенные функции для обработки матриц в пакете MATLAB.18. Встроенные функции для обработки множеств в пакете MATLAB.19. Встроенные функции для обработки строк в пакете MATLAB.20. Построение двумерных графиков в пакете MATLAB.21. Построение трехмерных графиков в пакете MATLAB.22. Редактирование двумерных графиков в пакете MATLAB.23. Команды подготовки данных для трехмерных графиков в пакете

MATLAB.24. Редактирование трехмерных графиков в пакете MATLAB.25. Редактирование цвета на двумерных графиках в пакете MATLAB.26. Редактирование цвета на трехмерных графиках в пакете MATLAB27. Установка титульной надписи на двумерном графике.28. Установка титульной надписи на трехмерном графике.29. Установка надписи возле осей на двумерном графике.30. Установка надписи возле осей на трехмерном графике.31. Установка легенды на двумерном графике.32. Установка легенды на трехмерном графике.33. Типы данных в пакете MATLAB.34. Константы и переменные в пакете MATLAB35. Построение выражений в пакете MATLAB.36. Основные операторы в пакете MATLAB.37. Операторы отношения в пакете MATLAB.38. Логические операторы в пакете MATLAB.39. Условный оператор в пакете MATLAB.40. Оператор цикла в пакете MATLAB.41. Оператор двоеточия в пакете MATLAB.42. Оператор переключателя в пакете MATLAB.43. Методы статистической обработки данных в пакете MATLAB.44. Математическое моделирование и численный эксперимент.45. Численный эксперимент.46. Понятие математической модели.47. Понятие численного метода.48. Схема вычислительного эксперимента.49. Этапы решения задачи.50. Этапы постановки задачи и разработка численного метода.51. Этапы программирования и отладки программ.52. Этапы проведения расчетов и анализа результатов.53. Построение математической модели.54. Классы численных методов.

Page 112: Abdulina Umk Komp Vych 050704 2010

55. Области применения численных методов.56. Понятия устойчивости.57. Понятия корректности.58. Понятия сходимости.59. Корректно поставленная задача.60. Численные методы алгебры и анализа.61. Численные методы решения систем линейных уравнений.62. Задание СЛУ в матричном виде.63. Метод Крамера для решения СЛУ.64. Методы решения систем линейных уравнений в пакете MATLAB65. Численные методы вычисления корней функции.66. Методы вычисления корней функции в пакете MATLAB67. Численные методы минимизации функций.68. Методы минимизации функций в пакете MATLAB.69. Метод золотого сечения для минимизации функции.70. Численные методы для численного интегрирования.71. Методы численного интегрирования в пакете MATLAB.72. Вычисление определенного интеграла с помощью трапеции.73. Усложненная квадратурная формула трапеций.74. Численные методы решения систем обыкновенных

дифференциальных уравнений.75. Задача Коши.76. Методы решения систем обыкновенных дифференциальных

уравнений в пакете MATLAB77. Численные методы для работы с полиномами.78. Вид полинома.79. Произведение многочленов.80. Методы для обработки полиномов в пакете MATLAB.

Page 113: Abdulina Umk Komp Vych 050704 2010

Глоссарий

Компьютерная математика – передовое научное направление на стыкематематики и информатики.

MATLAB – представляет собой хорошо апробированную и надежнуюсистему компьютерной математики, рассчитанную на решение самогоширокого круга математических задач с представлением данных вуниверсальной матричной форме.

Вектор – числа, разделенные пробелом и заданные в квадратных скобках.Матрица – включает строки из чисел, отделенные друг от друга точкой с

запятой, и заключенные в квадратные скобки.Простейшие арифметические операторы над векторами и матрицами -

знаки сложения +, вычитания -, умножения * , деления /, возведение в степень^.

Поэлементное умножение – операция умножения, выполняемая надэлементами вектора или матрицы с одинаковыми индексами.

Поэлементное деление – операция деления, выполняемая надэлементами вектора или матрицы с одинаковыми индексами.

Арифметические функции – аналогичны арифметическим операторам.Функции отношения – служат для сравнения двух переменных,

векторов или матриц.Логические функции – выполняются над элементами одинаковых по

размеру массивов.Встроенная функция – выполняет определенные преобразования своих

аргументов и возвращает результаты этих преобразований, аргументыобязательно заключены в круглые скобки.

Переменная ans – предназначена для отображения значения результатавычислений в MATLAB.

Выражение – конструкция, содержащая константы, переменные,функции, вектора, матрицы и знаки арифметических операций.

Графический объект – имеет множество свойств.Классическая гистограмма – характеризует числа попаданий значений

элементов вектора Y в М интервалов с представлением этих чисел в видестолбцовой диаграммы.

Лестничные графики – визуально представляют собой ступеньки согибающей, представленной функцией у(х).

Трехмерные поверхности – описываются функцией двух переменныхz(x, у).

Сетчатые графики – поверхности с заданной или функциональнойокраской.

Палитра цветов RGB – задается матрицей MAP из трех столбцов,определяющих значения интенсивности красного (red), зеленого (green) исинего (blue) цветов.

Page 114: Abdulina Umk Komp Vych 050704 2010

Константа – предварительно заданное числовое или символьноезначение.

Циклы – используются для организации вычислений с заданным числомповторяющихся шагов.

Оператор переключателя – используется для осуществлениямножественного выбора.

Методы статистической обработки данных – включают поиск ввекторах и матрицах элементов с максимальным и минимальным значениями,вычисление среднего арифметического, медианы и стандартного отклонения,коэффициентов корреляции, проведение сортировки данных.

Элементарная статистическая обработка данных в массиве –сводится к нахождению их среднего значения, медианы (срединного значения)и стандартного отклонения.

Корреляция – взаимосвязь некоторых величин, представленныхвекторами или матрицами.

Коэффициент корреляции – общепринятая мера линейной корреляции.Вычислительная математика – один из разделов информатики,

позволяющий сделать математическое описание какого-либо объекта илипроцесса и разработать и реализовать алгоритм исследования составленнойматематической модели.

Математическое моделирование – способ исследования различныхпроцессов путем изучения явлений, имеющих различное физическоесодержание, но описываемых одинаковыми математическими соотношениями.

Математическая модель – система линейных уравнений и неравенств,которая является моделью исследуемого объекта.

Вычислительный эксперимент – способ изучения исследуемогообъекта, процесса или явления с помощью математической модели ичисленного метода.

Численный метод – такая интерпретация математической модели,которая доступна для реализации на компьютере.

Графические методы – позволяют в ряде случаев оценить порядокискомой величины.

Аналитические методы - позволяют выразить решение задачи спомощью формул.

Устойчивость – чувствительность задачи к неточностям в исходныхданных.

Корректно поставленной задача – это задача, для которой для любыхзначений исходных данных из области допустимых значений решениесуществует, оно единственно и устойчиво по исходным данным.

Корректный численный метод – это метод, для которого численное ре-шение существует и оно единственное при любых значениях исходных данных.

Сходимость численного метода – близость получаемого численногорешения задачи к истинному решению.

Page 115: Abdulina Umk Komp Vych 050704 2010

СОДЕРЖАНИЕ1УЧЕБНАЯ ПРОГРАММА ДИСЦИПЛИНЫ – SYLLABUS 32 СОДЕРЖАНИЕ АКТИВНОГО РАЗДАТОЧНОГО МАТЕРИАЛА 102.1 Тематический план курса 102.2 Конспект лекционных занятий 112.3 Планы лабораторных занятий 52Лабораторная работа 1 52Лабораторная работа 2 56Лабораторная работа 3 63Лабораторная работа 4 66Лабораторная работа 5 71Лабораторная работа 6 73Лабораторная работа 7 762.5 Планы занятий в рамках самостоятельной работы студентов подруководством преподавателя (СРСП)

78

2.6 Планы занятий в рамках самостоятельной работы студентов (СРС) 952.7 Тематика письменных работ по курсу 1002.8 Тестовые задания для самоконтроля с указанием ключей правильныхответов

105

2.9 Перечень экзаменационных вопросов по пройденному курсу 110Глоссарий 113

Page 116: Abdulina Umk Komp Vych 050704 2010

Валентина Заманбековна АбдуллинаАлия Утебаевна Муртазина

КОМПЬЮТЕРНЫЕ ВЫЧИСЛЕНИЯ

Учебно-методический комплекс дисциплины(для специальности 050704 - Вычислительная техника и программное

обеспечение)

РедакторТехн. редактор

Протокол заседании кафедры«Техническая кибернетика» № ___«___»____________ 2010_г.

Протокол заседания УМС института«Информационных технологий» № __ «___»____________ 2010_г.

Подписано в печать___.___.2010___г.

Тираж . . . . экз. Формат 60х84 1/16. Бумага типографская № 1 Объем . . . п. л. Заказ № . . . . Цена договорная

Издание Казахского национального технического университетаимени К.И. Сатпаева

Научно-издательский центр КазНТУг.Алматы, ул.Ладыгина, 32