Файл: Санктпетербургский государственный.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.12.2023

Просмотров: 82

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М.А. Бонч-БруевичаИнститут непрерывного образования Лабораторные работы №1-№6 за 4 семестр По дисциплине «Теория информации, данные, знания»Вариант 2 (2010682)Оглавление САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ 1УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М.А. Бонч-Бруевича 1Лабораторные работы №1-№6 за 4 семестр 1По дисциплине «Теория информации, данные, знания» 1Введение 3Лабораторная работа №1. «Массивы и матрицы в Scilab. Решение задач линейной алгебры» 4Теоретический материал 4Задание 1 5Проверка задания 1 6Задание 2 7Выводы 9Лабораторная работа №2. «Построение двумерных графиков» 10Теоретический материал 10Задание 1 11задание 2 15выводы 16Лабораторная работа №3. «Построение трехмерных графиков» 17Задание 1 17задание 2 19выводы 20лабораторная работа №4. «Нелинейные уравнения и системы» 21Задание 1 21Задание 2 22Выводы 23Лабораторная работа №5. «Обработка экспериментальных данных» 24Теоретическая часть 24Задание 1 24Решение 25Задание 2 27Решение 28Выводы 29Лабораторная работа №6. «Решение задач оптимизации» 31Теория 31задание 32Решение 32 Введение Scilab 1— пакет прикладных математических программ, предоставляющий открытое окружение для инженерных (технических) и научных расчётов. Это самая полная общедоступная альтернатива MATLAB.Лабораторные работы позволят изучить на практике основные функции пакета программ, научиться использовать их в своих целях. Лабораторная работа №1. «Массивы и матрицы в Scilab. Решение задач линейной алгебры» Теоретический материал Для работы с множеством данных удобно использовать массивы. Например, можно создать массив для хранения числовых или символьных данных. В этом случае вместо создания переменной для хранения каждого данного достаточно создать один массив, где каждому элементу будет присвоен порядковый номер. Таким образом, массив — множественный тип данных, состоящий из фиксированного числа элементов. Как и любой другой переменной, массиву должно быть присвоено имя. Переменную, представляющую собой просто список данных, называют одномерным массивом, или вектором. Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и порядковый номер этого элемента, называемый индексом. Если возникает необходимость хранения данных в виде таблиц, в формате строк и столбцов, то необходимо использовать двумерные массивы (матрицы). Для доступа к данным, хранящимся в таком массиве, необходимо указать имя массива и два индекса: первый должен соответствовать номеру строки, а второй — номеру столбца, в которых хранится необходимый элемент. Значение нижней границы индексации в Scilab равно единице. Индексы могут быть только целыми положительными числами.Ввод элементов матрицы также осуществляется в квадратных скобках, при этом элементы строки отделяются друг от друга пробелом или запятой, а строки разделяются между собой точкой с запятой: name=[x11, x12, ..., x1n; x21, x22, ..., x2n; ...; xm1, xm2, ..., xmn;] Обратиться к элементу матрицы можно, указав после имени матрицы, в круглых скобках через запятую, номер строки и номер столбца на пересечении которых элемент расположен: name(индекс1, индекс2)Для работы с матрицами и векторами в Scilab предусмотрены следующие операции: + — сложение; - — вычитание1 ; ’ — транспонирование ; — матричное умножение ; — умножение на число; ˆ — возведение в степень ; \ — левое деление ; / — правое деление ; .* — поэлементное умножение матриц; .ˆ — поэлементное возведение в степень; .\ — поэлементное левое деление; ./ — поэлементное правое деление Для работы с матрицами и векторами в Scilab существуют специальные функции. Рассмотрим функции, которые понадобятся при выполнении данной работы. det(M) — вычисляет определитель квадратной матрицы М; inv(A) — вычисляет матрицу, обратную к A ; insolve(A,b) — решает систему линейных алгебраических уравнений вида A · x −

Задание 1

Задание 2

Выводы

Лабораторная работа №2. «Построение двумерных графиков»

Теоретический материал

Задание 1

задание 2

выводы

Лабораторная работа №3. «Построение трехмерных графиков»

Задание 1

задание 2

выводы

лабораторная работа №4. «Нелинейные уравнения и системы»

Задание 1

Задание 2

Выводы

Лабораторная работа №5. «Обработка экспериментальных данных»

Теоретическая часть

Задание 1

Решение

Задание 2

Решение

Выводы

Лабораторная работа №6. «Решение задач оптимизации»

Теория

задание

Решение





Сначала задаем массивы значений для параметров u и v



Затем вычисляем значения функций с данными значениями



И строим график на основании полученных значений





Рисунок 22.Результат

задание 2


Изобразить линии, заданные параметрически, где t [ ]

и

Задаем параметры для функции param3d и строим с ее помощью график



Задаем параметры для функции param3d и строим с ее помощью график

выводы


При выполнении данной работы мы научились строить 3D поверхности в Scilab и линии, заданные параметрически. Рассмотрели функции, позволяющие создавать 3d графики.

лабораторная работа №4. «Нелинейные уравнения и системы»

Задание 1


Найти корни полиномов.







Сначала задаем полином, предварительно определив вектор коэффициентов



Затем находим корни



Корни второго полинома найдем аналогично



Задание 2


Решить систему уравнений



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


Выводы


При выполнении данной работы мы научились решать системы уравнений в scilab и находить корни полиномов.

Лабораторная работа №5. «Обработка экспериментальных данных»

Теоретическая часть


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

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

Идея метода наименьших квадратов заключается в том, что функцию Y = f(x, a0, a1, . . . , ak) необходимо подобрать таким образом, чтобы сумма квадратов отклонений измеренных значений yi от расчетных Yi была наименьшей: Задача сводится к определению коэффициентов ai из условия (11.1). Для реализации этой задачи в Scilab предусмотрена функция

[a,S]=datafit(F,z,с)

где F — функция, параметры которой необходимо подобрать; z — матрица исходных данных; c — вектор начальных приближений; a — вектор коэффициентов; S — сумма квадратов отклонений измеренных значений от расчетных.

Задание 1


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


Решение


Сначала задаем пользовательскую функцию



И задав так же массивы экспериментальных данных, формируем матрицу исходных данных и указываем вектор начальных приближений





Находим вектора коэффициентов (a) и сумму квадратов отклонений измеренных от расчётных (S), она же суммарная ошибка



Строим графики экспериментальных данных и функциональной зависимости:





Находим коэффициенты регрессии и добавляем линию регрессии на график

Находим коэффициент корреляции r и индекс корреляции R


Задание 2


Задание 5.2. Для вариантов 1-7 найти приближенное значение функции при заданном значении аргумента с помощью функции линейной интерполяции. Функция задана таблично.


Решение


Задаем массивы значений



Создаем график регрессии





Задаем массив значения х в заданных точках



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




Выводы


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

Лабораторная работа №6. «Решение задач оптимизации»


Теория


При нахождении минимума функции многих переменных функцию costf необходимо построить таким образом, чтобы входными данными в нее были значения вектора неизвестных x и параметра ind. Функция costf должна зависеть не от нескольких неизвестных, а от одного массива (вектора) неизвестных. В случае функции многих переменных структура функции сostf должна быть такой:



Для решения задач линейного программирования в Scilab предназначена функция linpro следующей структуры:

Здесь c — массив (вектор-столбец) коэффициентов при неизвестных функции цели, длина вектора n совпадает с количеством неизвестных x.

A — матрица при неизвестных из левой части системы ограничений, количество строк матрицы равно количеству ограничений m, а количество столбцов совпадает с количеством неизвестных n.

b — массив (вектор-столбец), содержит свободные члены системы ограничений, длина вектора m.

ci — массив (вектор-столбец) размерности n содержит нижнюю границу переменных (cij 6 xj ); если таковая отсутствует, указывают [].

cs — массив (вектор-столбец) длиной n, содержит верхнюю границу переменных (csj > xj ); если таковая отсутствует, указывают [].

k — целочисленная переменная, используется, если в систему ограничений кроме неравенств входят и равенства, в матрице они будут находиться в k первых строках, оставшиеся l строк займут неравенства, т.е. m = k + l.

x0 — вектор-столбец начальных приближений длиной n.

Функция linpro возвращает массив неизвестных x, минимальное значение функции f и массив множителей Лагранжа kl.

задание


Решить задачу целочисленного программирования

Решение


Сначала задаем известные нам из системы данные: массив коэффициентов функции цели (с), матрицу при неизвестных левой части неравенства (А) и массив, который содержит свободные члены системы ограничений(b).

Затем задаём массив (вектор-столбец), который содержит нижнюю границу переменных и применяем функцию linpro




Рисунок 23. решение и результат кода

1 [ CITATION Sci21 \l 1049 ]