Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
6. Сложение, вычитание матриц.
Эта операция допустима только с матрицами одинакового размера. При выполнении операции действие выполняется с соответствующими друг другу ячейками. Пример:
а(1,1) | а(1,2) | а(1,3) | b(1,1) | b(1,2) | b(1,3) | а(1,1)+ b(1,1) | а(1,2)+ b(1,2) | а(1,3)+ b(1,3) | ||
а(2,1) | а(2,2) | а(2,3) | + | b(2,1) | b(2,2) | b(2,3) | = | а(2,1)+ b(2,1) | а(2,2)+ b(2,2) | а(2,3)+ b(2,3) |
а(3,1) | а(3,2) | а(3,3) | b(3,1) | b(3,2) | b(3,3) | а(3,1)+ b(3,1) | а(3,2)+ b(3,2) | а(3,3)+ b(3,3) |
7. Произведение матриц.
При выполнении операции перемножения матриц выполняется последовательное умножение строки на столбец. При этом количество столбцов в первой матрице должно равняться количеству строк во второй матрице. Матрица результата будет иметь столько же строк, сколько и в первой матрице, и количество столбцов равное количеству столбцов во второй матрице.
A(1,1) | A(1,2) | A(1,3) | B(1,1) | B(1,2) | A(1,1)*B(1,1)+ A(1,2)*B(2,1)+ A(1,3)*B(3,1) | A(1,1)*B(1,2)+ A(1,2)*B(2,2)+ A(1,3)*B(3,2) | ||
A(2,1) | A(2,2) | A(2,3) | * | B(2,1) | B(2,2) | = | A(2,1)*B(1,1)+ A(2,2)*B(2,1)+ A(2,3)*B(3,1) | A(2,1)*B(1,2)+ A(2,2)*B(2,2)+ A(2,3)*B(3,2) |
B(3,1) | B(3,1) |
Построение графиков.
Вывод одного графика
MatLAB предоставляет следующие функции для работы с графикой:
plot(<Массив>) – построение графика значений из массива Х от номера отсчета.
plot(<Массив точек по оси Х>,<Массив точек по оси Y>) – построение графика значений из массива Y от значений из массива Х.
При вызове команды создается окно с указанным графиком.
Вывод нескольких графиков
Для вывода нескольких графиков на одном окне Вам необходимо указать их последовательно, например:
>> t=-10:0.1:10;
>> x1=sin(t);
>> x2=cos(t)./t;
>> plot(t, x1,t, x2)
или
>> t=-10:0.1:10;
>> x1=sin(t);
>> x2=cos(t)./t;
>> plot(t, x1)
>> hold on;
>> plot(t, x2)
Вывод на экран сразу нескольких графиков предоставляет простейший способ найти приблизительное значение решения.

Рис. 1.4. Иллюстрация графического метода решения
На данном графике представлены графики функций y=sin(t)/t и (x/5)2+y2=1. Как не трудно заметить данные функции имеют три точки пересечения.
Поиск решения уравнения
Графическим методом можно лишь примерно оценить решение. Для решения уравнений или систем уравнений в среде MATLAB используются процедуры fzero и fsolve. Процедура fzero служит для нахождения нулей функции одного переменного y = f(x). Рассмотрим решение такой задачи: необходимо найти значение x, при котором функция f(x)=x2 – 5 равна 0 вблизи точки x=2.
>> x0=fzero('x^2-5',2)
x0 =
2.2361
Для решения систем нелинейных уравнений в среде программирования MATLAB используется процедура fsolve.
Процедура fsolve решает уравнения и системы уравнений следующего вида: F(X) = 0.
Рассмотрим случай определения нулей функции одного переменного:
>> x=fsolve('sin(4*x)',1,optimset('Display','off'))
x =
0.7854
Рассмотрим подробней формат вызова fsolve:
– первый параметр задает функцию;
– второй, что решение будет найдено возле точки 1;
– optimset('Display','off') – отключить вывод на экран сообщения о результатах оптимизации.
Задание на лабораторную работу
Графически и при помощи функций найти:
1. Пересечение двух кривых:
y = x2 – 5x + 3 и y = 7x – 4.
2. Найти точку экстремума функции y = (x+2)(x-4);
3. Дан треугольник ABC: A(-1;-2), B(-1;4), C(5;4). Найти координаты основания перпендикуляра, опущенного из точки B на сторону AC.
4. Найти основание перпендикуляра, опущенного из точки A(3;10) на окружность радиуса 4, с центром в начале координат.
5. На графике функции y = (5+x)(5-x) определить точки, касательная в которых имеет угол наклона.
Литература к лабораторной работе №1
1. Мартынов А. П. MatLAB 5.x Вычисления. Визуализация. Программирование – М.: КУДИЦ-ОБРАЗ, 2000. – 366 с.
2. Сергиенко обработка сигналов – СПб.: Питер, 2002. – 608 с.: ил.
3. http://www. adubanov. *****/
4. www. *****
5. www. *****
Лабораторная работа № 2.
Построение трехмерных графиков.
Программирование в MatLAB
Цель работы
Целью лабораторной работы является изучение языка программирования среды MatLAB. Основной задачей ставится изучение типовых конструкций языка, таких как функции, условия и циклы. Также внимание уделяется построению трехмерных графиков.
Построение трехмерных графиков
Для построения трехмерных графиков, во-первых, понадобится создать сетку координат на плоскости. Выполняет это функция [X,Y]=meshgrid(x,y), где x и y - одномерные массивы, а X и Y - полученные в результате двухмерные массивы. Если массивы x и y одинаковые, то достаточно указать [X,Y]=meshgrid(x).
Например:
>> [X, Y]=meshgrid([-2:0.1:2]);
После этого описывается сама функция, например
>> Z=X.*exp(-X.^2-Y.^2);
После этого подается команда на вывод трехмерного графика:
>> plot3(X, Y,Z);
Результат исполнения для данного примера приведен на рис. 2.1.

Рис. 2.1. Вывод трехмерных графиков
Помимо этой простейшей функции система MatLAB располагает ещё рядом функций, позволяющих добиваться большей реалистичности в изображении трехмерных графиков. Это функции mesh, surf и surfl.
К примеру, вместо ранее показанного при помощи функции plot3 графика, можно вызовом функции mesh получить следующий график (рис. 2.2).
>> mesh(X, Y, Z);

Рис. 2.2 Вывод трехмерных графиков.
Программирование в системе MatLAB
Программирование в системе MatLAB очень близко к обычному программированию. Программа создается в любом текстовом редакторе. Файл должен иметь расширение *.m. Текст М-файла функции должен начинаться с заголовка function, имеющего следующий вид:
function [y1, y2, …] = fname(x1, x2, …)
Здесь fname – имя функции, х1, х2 и т. д. – входные параметры, у1, у2 и т. д. – выходные параметры. Входные и/или выходные параметры могут отсутствовать.
На самом деле имя функции определяется не строкой fname, а именем, под которым сохранен М-файл, оно должно совпадать с именем функции.
В качестве примера создадим функцию myfunc, которая будет строить трехмерных график предыдущего примера и принимать три входных параметра: точку начала построения графика, точку окончания построения, шаг. Для этого, открыв окно редактора командой меню File -> New -> M-file, вводим текст:
function myfunc(x1, x2, step)
[X, Y]=meshgrid([x1: step : x2]);
Z=X.*exp(-X.^2-Y.^2);
mesh(X, Y, Z);
Введя текст, необходимо сохранить файл под именем myfunc.
Для того чтобы функция была доступна из системы MatLAB, система должна быть способна найти соответствующий М-файл. Поиск файлов осуществляется следующим образом: сначала просматривается текущий рабочий каталог (его имя показано в панели инструментов главного окна, рис 1.2), а затем каталоги, входящие в путь поиска (MatLAB search path).
Для вызова M файла необходимо набрать его имя в командной строке MatLAB, и если необходимо его аргументы. Важным элементом, облегчающим программирование, являются комментарии. Строка комментария начинается в MatLAB символом ‘%’.
Проверка условия
Оператор проверки условия позволяет организовать разветвление исполнения программы. Внешний вид оператора представлен на рис.2.3.

Рис. 2.3. Блок-схема условного оператора: редуцированная и полная формы
Формат записи оператора, редуцированная форма:
if условие
операторы
end
полная форма:
if условие
операторы
elseif условие
операторы
else
операторы
end
Ввод с клавиатуры
x=input(‘строка подсказки’)
x=input(‘строка подсказки’, ‘s’)
Функция input выводит на экран строку подсказки и ждет ввода переменной. Функция x=input(‘строка подсказки’, ‘s’) возвращает введенную пользователем строку. При вводе переменных допустимо пользоваться стандартными функциями.
Циклы
MatLAB предоставляет пользователю два способа организации цикла. Первый из них цикл с известным количеством повторений. Блок-схема этого цикла представлена на рис. 2.4.

Рис. 2.4. Блок-схема цикла for
Формат оператора:
for переменная = начальное значение : [шаг :] конечное значение
операторы
end
Поле шаг в конструкции оператора не является обязательным. Например:
for i=1:100
x(i) = sin(2*PI*i/100);
end
Тело цикла обязательно заканчивается служебным словом end.
При работе с циклом for допустимо использование оператора прерывания цикла break. При выполнении оператора break работа цикла завершается, и управление передается на следующий после конца цикла оператор. Блок-схема программы, иллюстрирующий использование оператора break, приведена на рис. 2.5.
Текст программы соответствующий рис. 2.5.
for i=1:100
операторы
if a(i) == 0
break
end
операторы
end

Рис. 2.5. Иллюстрация использования оператора break
Кроме цикла for в программировании на MatLAB используется цикл while. В отличие от цикла for в структуре цикла while не предусмотрены элементы для изменения переменной, по которой организован цикл. Эти элементы должен предусмотреть сам пользователь в операторах цикла. Блок-схема цикла представлена на рис. 2.6.

Рис. 2.6. Блок-схема цикла while
Формат оператора цикла с неизвестным количеством повторений:
while условие
операторы
end
Тело цикла обязательно заканчивается служебным словом end.
Например, программа определения точности вычислений:
a=1;
while a+1 != 1
a=a/2;
end
a
Последняя строчка программы выведет на экран значение переменной а.
Задание на лабораторную работу
Написать программу (m-файл), которая строит график сферы или квадратной пирамиды по выбору пользователя. Выбор фигуры и длины запрашиваются у пользователя в процессе работы функции:– для сферы – это идентификатор и радиус – ‘сфера’, R.
– для пирамиды – это идентификатор, высота, длина стороны основания – ‘пирамида’, h, l.
Написать программу (m-файл), которая строит график куба или конуса по выбору пользователя. Выбор фигуры задается как входные параметры функции:– для куба – это идентификатор и длина ребра – ‘куб’, r.
– для конуса – это идентификатор, высота, радиус основания – ‘конус’, h, r.
Написать программу (m-файл), которая создает трехмерную матрицу и “раскрашивает” её значениями в шахматном порядке по всему объему. Значение раскрашивания зависят от входного параметра идентификации id:– id = ‘digit’ – матрица заполняется числами 1 и 0;
– id = ‘char’ – матрица заполняется буквами ‘1’ и ‘0’.
Входные параметры – это размерность матрицы по трём координатам, идентификатор; выходной – сама матрица.
Написать программу (m-файл), которая создает трёхмерную матрицу, заполненную случайными целыми числами (от 0 до 10) и производит арифметические поэлементные действия между двумерными массивами этой матрицы (по любой координате внутри матрицы). Значения операции зависит от идентификатора:– id = ‘+’
– id = ‘–’
– id = ‘*’ (поэлементное умножение).
Размерность матрицы по трём координатам и идентификатор запрашивается у пользователя в процессе работы функции. Выходной параметр – полученная матрица.
Написать программу (m-файл), которая раскрашивает черно-белый рисунок красным или зеленым или синим цветом. Цвет зависит от входного параметра:– id = 'красный';
– id = 'зеленый';
– id = 'синий'.
Входной параметр – раскрашиваемый цвет.
Написать программу (m-файл), которая инвертировала цвета черно-белого изображения (черное в белое, белое в черное) и поворачивала рисунок на угол кратный 90° вокруг своей оси. Угол поворота зависит от входного параметра:– id = 90 – поворот на 90°;
– id = 180 – поворот на 180°;
– id = 270 – поворот на 270°;
– id = 0 – нет поворота;
Пояснение к заданию 5 и 6:
Изображения представляют собой трёхмерный массив – [x, y, z], где x, y – размеры изображения; z – значение цвета. Черный цвет = 0, белый = 255. Для черно-белого изображения размерность z = 1, для цветного размерность z = 3.
Цвет состоит из трёх цветов: красного, зеленого, синего. Смешивание этих цветов и определяет различные оттенки.
Литература к лабораторной работе №2
Мартынов А. П. MatLAB 5.x Вычисления. Визуализация. Программирование – М.: КУДИЦ-ОБРАЗ, 2000. – 366 с. Сергиенко обработка сигналов – СПб.: Питер, 2002. – 608 с.: ил.Лабораторная работа № 3.
Вычисление определенных интегралов в среде MatLAB
Цель работы
Ознакомиться с некоторыми средствами математического анализа в среде MatLAB. Изучить предоставляемые пакетом возможности по вычислению определенных интегралов, дифференцированию и аналитическим вычислениям.
Вычисление определенных интегралов
Один из методов вычисления определенных интегралов – метод трапеций. В MatLAB'е функция, которая использует метод трапеций, называется trapz.
Пример. Вычислим интеграл
.
Сначала зададим значение аргумента:
>> x = -1:0.1:1;
Затем вычислим значение функции в этих точках:
>> y = exp(x);
Вычислим интеграл и получим результат:
>> int1 = trapz(x, y)
int1 =
2.3524
Получить высокую точность результата можно, увеличив количество шагов интегрирования (уменьшив шаг интегрирования):
>> x = -1:0.01:1;
>> y = exp(x);
>> int2 = trapz(x, y)
int2 =
2.3504
Таким образом, чтобы получить достаточную точность, необходимо последовательно сравнивать вычисленные результаты.
Однако в MatLAB'е есть функции, которые используют методы интегрирования более высоких порядков точности – quad (метод Симпсона) и quad8 (метод Ньютона-Котеса 8-го порядка точности). При одном и том же шаге интегрирования методы более высоких порядков точности достигают более точных результатов (точность результата равна 0.001). Оба этих метода являются адаптивными. Это означает, что пользователю нет необходимости контролировать достигнутую точность результата путем сравнения последовательных значений, соответствующих разным шагам интегрирования.
Используя функции quad и quad8, вычислим предыдущий пример.
Сначала создадим подынтегральную функцию:
function y = my_func(x)
y = exp(x);
Теперь вычислим интеграл:
>> [int, cnt] = quad('my_func', -1, 1)
int =
2.3504
cnt =
21
и
>> [int, cnt] = quad8('my_func', -1, 1)
int =
2.3504
cnt =
33
Входные параметры, используемые в данных функциях – название вычисляемой функции и пределы вычисления. Выходные параметры – вычисленный результат и количество точек, в которых пришлось вычислять подынтегральную функцию.
Как видно по значениям cnt в данном случае функция quad8 более трудоемкая.
Аналитические вычисления
В системе MatLAB есть возможность не только вычислять конкретные значения выражения, но и проводить аналитические вычисления.
Пример. Требуется символьно сложить два выражения x+y и 3y (ответ x+4y).
Для этих целей сначала необходимо создать объект нового типа – объект sym. С этими объектами и производятся аналитические вычисления.
>> f1 = sym('x+y');
>> f2 = sym('3.*y');
>> f = f1+f2
f =
x+4.*y
Используя аналитические вычисления можно выполнять операции символьного дифференцирования и символьного интегрирования – функции diff и int соответственно.
Так же существует ещё ряд функций для работы с символьными выражениями:
simplify – упрощение символьных выражений;
expand – для раскрывания алгебраических и функциональных выражений;
factor – раскладывание многочленов на простые множители;
subs – осуществляет подстановку новых переменных для указанных символьных переменных;
limits – вычисляет пределы.
Решение систем линейных уравнений
Для решения систем линейных уравнений в MatLAB'е существуют операции '/' и '\'.
Левое деление матриц – '\'.
Ay = b, где A – заданная квадратная матрица NxN, а b – заданный вектор-столбец длины N. Тогда у = A\b.
Правое деление матриц – '/' – решает систему следующего вида yA = b.
Задание на лабораторную работу
Написать функцию, которая:
1. Вычисляет значение производной в заданной точке. Входные параметры – функция («экспоненциальная», «логарифмическая», «степенная»), координата точки; выходные – значение производной.
2. Вычисляет площадь фигуры, ограниченную полиномом второй степени. Входные параметры – коэффициенты полинома, пределы интегрирования; выходной – площадь.
3. Вычисляет производную полинома второй степени и выводит график исходной функции и производной. Входные параметры – коэффициенты полинома.
4. Находит экстремумы полиномов 3-го порядка. Входные параметры – коэффициенты полинома; выходные – координаты экстремумов.
5. Вычисляет интеграл заданных функций. Входные параметры – функция («экспоненциальная», «логарифмическая», «степенная»), пределы интегрирования; выходные – значение интеграла.
6. Вычисляет скорость и ускорение физического тела в заданной точке. Тело движется по кривой описываемой полиномом третьей степени. Входные параметры – коэффициенты полинома, координата точки; выходные значение скорости и ускорения.
Литература к лабораторной работе №3
Мартынов А. П. MatLAB 5.x Вычисления. Визуализация. Программирование – М.: КУДИЦ-ОБРАЗ, 2000. – 366 с. Сергиенко обработка сигналов – СПб.: Питер, 2002. – 608 с.: ил.Лабораторная работа № 4.
Хаотические свойства нелинейных систем
Цель работы
Познакомиться с хаотическими свойствами простых нелинейных систем. Исследовать при помощи паутинных диаграмм хаотические свойства нелинейных дискретных отображений.
Введение
Данная лабораторная работа посвящена исследованию явления в нелинейных системах, получившего название детерминированного хаоса[1]. Этот вид хаоса порождается не случайным поведением большого количества элементов системы, а внутренней сущностью нелинейных процессов.
Одной из простейших задач, демонстрирующей хаотичность поведения системы является нелинейный рост популяции, описываемый логистическим уравнением
.
На этом примере мы познакомимся с хаотическим поведением нелинейной динамической системы. Независимо от конкретной физической природы любой объект является динамической системой, если можно указать такой набор величин (называемых динамическими переменными и характеризующих состояние системы), значения которых в любой последующий момент времени выводятся из начального набора по определенному правилу – закону эволюции.
Дискретные отображения
Рассмотрим функцию, отображающую некоторое множество само с себя:
.
Итерация f (n) функции f определяется как композиция f с самой собой n раз:
,
.
Итерацию можно выразить другим способом:
.
Поскольку каждая точка
под действием итераций функции f перемещается по множеству М, то функция f задает дискретную динамическую систему, т. е. некое движение на множестве М с течением дискретного времени n. Если для некоторой точки
определены все итерации
, то множество
называется орбитой точки x под действием функции f.
Точка x называется неподвижной точкой функции f, если
для любого n. Неподвижная точка x функции f называется притягивающей, если все точки из некоторой ее окрестности стремятся к x под действием итераций функции f; и отталкивающей, если все точки из некоторой окрестности покидают эту окрестность под действием итераций. Если неподвижная точка является притягивающей либо отталкивающей, то она также называется гиперболической.
Точка x называется периодической точкой функции f периода k, если
, причем
при i < k. Орбита периодической точки состоит из k точек и называется циклом периода k. Точка x является периодической точкой функции f периода k, если она является неподвижной точкой итерации
, но не является периодической точкой итераций с меньшими номерами.
Дав основные понятия, можно вернуться к исследованию логистической функции. Исследуемая функция является функцией одного параметра λ. Наша задача выяснить, как меняются орбиты точек, при изменении параметра λ. Чаше всего, при малом изменении параметра динамика, определяемая функцией, меняется мало. Немного изменяются значения неподвижных, периодических точек. Однако при некоторых значениях параметра происходит резкое изменение качественной картины, например, изменяется количество неподвижных точек, меняется их характер (притягивающие превращаются в отталкивающие). Скачкообразное изменение качественного поведения системы при плавном изменении параметра называется бифуркацией.
Рассмотрим, что будет происходить с точками из интервала [0;1] под действием итераций логистической функции.
При 0 < λ < 1 точка x = 0 является притягивающей, и каждая точка выбранного отрезка под действием итераций стремится к ней. При λ = 1 происходит бифуркация, и точка x = 0 перестает быть притягивающей.
При 1 < λ < 3 точка x = 0 является отталкивающей, а точка
– притягивающей неподвижной точкой.
Следующая бифуркация происходит при λ = 3, когда точка
перестает быть притягивающей и превращается в отталкивающую при λ > 3. Поскольку теперь обе точки x1 и x2 являются отталкивающими, логично предположить о наличии некого притягивающего объекта между ними. Так оно и происходит. При λ > 3 появляются еще две неподвижные точки, которые не являются неподвижными точками исходной функции. Они образуют цикл периода 2. Таким образом, имеет место бифуркация удвоения периода.
При дальнейшем увеличении параметра λ можно наблюдать и дальнейшие бифуркации удвоения периода. Для того чтобы наблюдать весь этот каскад бифуркаций можно провести следующий эксперимент. Выберем какое-либо начальное значение x и проделаем над ним 100-200 итераций отображения логистической функции. Затем отложим значения следующих 100-200 итераций по вертикальной оси, а значение параметра λ, при котором производились вычисления, – по горизонтальной. По оси λ пройдем отрезок от 2,9 до 4 с небольшим интервалом, например 0,01. Полученное множество называется бифуркационной диаграммой логистической функции.
Бифуркационная диаграмма позволяет проследить за развитием системы при плавном изменении параметра. При фиксированном значении параметра за орбитами точек позволяет проследить паутинная диаграмма (диаграмма Ламерея), изображенная на рисунке 1. Построение паутинной диаграммы позволяет выявить различные эффекты, незаметные на бифуркационной.

Рис. 4.1. Паутинная диаграмма логистической функции при λ = 2.7
Порядок построения паутинной диаграммы
1. Стоится график исследуемой функции. В нашем случае –
.
2. Строим прямую
.
3. Строим «траекторию» – ломанную, которая исходит из начального значения x, затем отражается под прямым углом от графика исследуемой функции, отражается от прямой
, потом отражается от графика функции и т. д. Действие этого правила легко пронаблюдать, если внимательно проследить за процессом построения паутинной диаграммы при различных значениях параметра λ.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |


