Студопедія
рос | укр

Головна сторінка Випадкова сторінка


КАТЕГОРІЇ:

АвтомобіліБіологіяБудівництвоВідпочинок і туризмГеографіяДім і садЕкологіяЕкономікаЕлектронікаІноземні мовиІнформатикаІншеІсторіяКультураЛітератураМатематикаМедицинаМеталлургіяМеханікаОсвітаОхорона праціПедагогікаПолітикаПравоПсихологіяРелігіяСоціологіяСпортФізикаФілософіяФінансиХімія






Перегляд неокласичної теорії ринку.Монополії і конкуренція


Дата добавления: 2015-06-12; просмотров: 697



 

  1. Л.П. Стойлова Математика учебное пособие – М. Аcadem A, 1997.
  2. А.А. Дадаян Математика для педагогических училищ, - М., ФОРУМ-ИНФРА, 2009.
  3. А.А. Дадаян Сборник задач по математике, - М, 2008
  4. В.С. Шипачев Высшая математика, - М., «Высшая математика», 2002
  5. К.Н. Лунгу, Д.Т. Письменный и др. Сборник задач по высшей математике - М, АЙРИС ПРЕСС, 2003.
  6. Интернет ресурсы.

 

 

ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB

 

Методический практикум

Алматы 2004

 

 

СОСТАВИТЕЛЬ: Ибраева Л.К.ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB. Методический практикум – Алматы: АИЭС, 2004 - 49 с.

 

Система MatLAB (MATrix LABoratory) является интерактивной системой для выполнения инженерных и научных расчетов Методический практикум предназначен для преподавателей, аспирантов и студентов, желающих применять систему MATLAB при исследовании систем. В методическом практикуме описаны только основные приемы работы с системой.

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

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

 

Рецензент: канд. техн наук, доц. С.Г.Хан

 

 

Печатается по плану издания Алматинского института энергетики и связи на 2004 г.

 

 

© Алматинский институт энергетики и связи, 2004 г.

Система MatLAB (MATrix LABoratory) является интерактивной системой для выполнения инженерных и научных расчетов, ориентированной на работу с массивами данных. Она имеет встроенную матричную и комплексную арифметику.

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

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

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

Работа в среде MatLAB может выполняться:

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

непосредственно в командном окне;

- путем вызова программы (встроенной или пользовательской);

- путем графической сборки модели исследуемой системы – пакет Simulink.

 

1. MatLAB как научный калькулятор

 

Ввод чисел выполняется по обычным правилам языков программирования; десятичный показатель записывается в виде целого числа после символа e.

Формат чисел: Файл-Свойства

Арифметические действия: + – * / \ ^

Вывод результата:

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

сразу отображается в командном окне.

- Если оператор не содержит знака присваивания, то значение результата

присваивается системной переменной ans.

- Общая форма:

<имя переменной> = <результат>

Имена переменных могут использоваться для хранения промежуточных результатов.

 

Пример 1.1:

>> 25 + 17;

>>ans*7

ans = 294

 

Зарезервированные имена переменных: i, j - мнимая единица; pi – число π; ans – результат последней операции без знака присваивания.

Некоторые элементарные функции:

sin(z), sinh(z), asin(z), cos(z), cosh(z), acos(z), tan(z), atan(z), exp(z), log(z), log10(z), sqrt(z), abs(z), round(z).

 

Комплексные числа вводятся в виде:

<имя переменной> = <значение действ.части> + i(либо j )*< значение мнимой части>

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

 

Пример 1.2:

>> x=1+2i; y = -3+4i;

>>disp(x+y)

-2.0000+6.0000i

 

Здесь использована функция disp, которая также позволяет выводить в командное окно результаты вычислений или некоторый текст.

Функции комплексного аргумента:

real(z) – выделяет действительную часть комплексного аргумента;

imag(z) – выделяет мнимую часть комплексного аргумента;

angle(z) – вычисляет значение аргумента комплексного числа

(в радианах от – π до + π).

Пример 1.3:

Наберите в командном окне:

>>disp(real(y)

>>disp(imag(y)0

>>disp(angle(y))

 

MatLAB специально предназначен для вычислений с векторами, матрицами и полиномами. Любая заданная переменная по умолчанию является вектором или матрицей.

Ввод вектора:

V1 = [1.2 2.3 3.4 4.5] (вместо пробелов можно использовать запятые).

Длинные векторы можно вводить частями, а затем объединять: v=[v1 v2].

Если элементы вектора являются арифметической прогрессией, то его можно ввести следующим образом:

V = nz : h : kz (nz – начальное значение, h – шаг, kz – конечное значение). По умолчанию шаг принимается равным 1.

Чтобы ввести вектор-столбец, его элементы нужно отделять точкой с запятой.

 

 

Пример 1.4:

Введите в командное окно

>>v1[1 2 3];v2=[4 5 6];

>>v=[v1 v2]

 

Действия над векторами одинаковой структуры:

Сложение и вычитание векторов: + и -

Транспонирование – знак апострофа (например, х').

Умножение вектора на число: *.

Умножение двух векторов: * (по правилам математики- для векторов одинакового размера и лишь тогда, когда один из векторов-сомножителей является строкой, а другой – столбцом; в противном случае, один из векторов надо транспонировать).

Векторное произведение (для трехкомпонентных векторов): cross (v1 v2)

Предусмотрено несколько операций поэлементного преобразования векторов (и матриц); все эти операции преобразуют элементы вектора как элементы обычного одномерного массива чисел. К таким операциям принадлежат все элементарные математические функции одного аргумента (некоторые были приведены выше). Например, запись Y = sin(X), где Х – известный вектор, приводит к формированию нового вектора Y, элементы которого равны синусу соответствующих элементов вектора Х.

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

Добавление числа к каждому элементу вектора (аналогично, вычитание): + и -

Поэлементное умножение векторов: .* (перед знаком умножения – точка)

Поэлементное деление векторов: ./ (перед знаком деления – точка)

Поэлементное возведение в степень: .^ (перед знаком степени – точка)

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

 

Пример 1.5:

Вычисление значений функции Y = a*exp(-k*x)*sin(x) при значениях аргумента x от 0 до 10 с шагом 1 можно выполнить при помощи следующих операторов:

>> a=3; k=0.5;

>> x = 0:1:10;

>>y= a*exp(-k*x).*sin(x)

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

 

Пример 1.6:

Введите в командное окно:

>>A=[2 4 5 8 10; 5 6 8 9 7]

MatLAB имеет функции, которые позволяют формировать векторы и матрицы определенного вида. Некоторые из них:

zeros(m,n) – создает матрицу m*n с нулевыми элементами;

ones(m,n)- создает матрицу m*n с единичными элементами;

eye(m,n)- создает матрицу m*n с единицами на главной диагонали и остальными

нулевыми элементами;

rand(m,n) - создает матрицу m*n из случайных чисел, равномерно

распределенных на (0,1);

randn(m,n) - создает матрицу m*n из случайных чисел, распределенных по

нормальному закону с нулевым математическим ожиданием и

дисперсией, равной 1.

Поэлементное преобразование матриц – аналогично действиям с векторами.

 

Пример 1.7:

>> A = [1,2,3,4,5; -2,3,1,4,8]

>> B = [1,3,5,-2,1;1,8,-3,-1,2]

>> sin(A)

>> A .*B

 

Матричные действия с матрицами:

Базовые действия с матрицами выполняются с помощью обычных знаков арифметических операций. Функция обращения матрицы – inv(A).

 

Пример 1.8:

>> A = [1 2 3 4 5; 6 7 8 9 10]

>>A’

>> B =[ 0 -1 -2 – 3 -4; 5 6 7 8 9]

>> A’*B

>> C=A*B’

>> inv(C)

>> inv(ans) % для проверки обращение применяется к результату

>> A=[1 2;3 4]

>>A^2 % действие эквивалентно умножению матрицы на себя

>>A^(-2) % при отрицательной степени выполняется умножение

обратной матрицы на себя

 

Действие деления матриц (которого не существует в математике): / (или \).

Действие В/А аналогично действиям B*inv(A); его удобно использовать для решения матричного уравнения X*A=B; действие A\B аналогично действиям inv(A)*B; удобно использовать для решения матричного уравнения A*X=B.

 

Пример 1.9: Требуется решить систему уравнений:

X1 + 2X2 + 3X3 = 14

2X1 + X2 - 5X3 = -15

X1 - X2 - X3 = -4

Решение: >> A=[1 2 3;2 1 -5;1 -1 -1]

>> B=[14;-15;-4]

>> x=A\B

 

Операции с полиномами

Полином хранится в виде вектора, элементами которого являются коэффициенты полинома:

P = [an … a2 a1 a0]

Некоторые функции:

conv(P1,P2) – умножение двух полиномов;

deconv(P1,P2) – деление полинома P1 на полином P2;

roots(P) – вычисление вектора, элементы которого являются корнями заданного

полинома;

poly(r) – построение вектора полинома по заданному вектору его корней;

polyval(p,x) – вычисление значения полинома по заданному значению его

аргумента;

polyder(p) – вычисление производной от полинома.

 

Пример 1.10:

Найдем корни полинома P(x) = x5 + 8x4 + 31x3 + 80x2 + 94x + 20.

>>p=[1,8,31,80,94,20];

>>disp(roots(p))

Вычислим значение полинома при х=2:

>>y=polyval(p,2);

 

Обработка данных измерений

Система дает возможность обработки данных, которые заданы в векторной или матричной форме.

max(V) – выдает значение максимального по значению элемента вектора V;

min(V) – выдает значение минимального по значению элемента вектора V;

sort(V) – формирует вектор, элементы которого распределены в порядке

возрастания из значений;

sum(V) – вычисляет сумму элементов вектора V;

prod(V) – вычисляет произведение всех элементов вектора V;

trapz(x,y) – осуществляет интегрирование методом трапеций (вычисляется

площадь под графиком функции y(x), в котором все точки, заданные

векторами x и y, соединены отрезками прямых.

 

Аппроксимация и интерполяция данных

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

polyfit(X,Y,n) – полиномиальная аппроксимация, n – порядок

аппроксимирующего полинома; X,Y – вектора аргументов и

значений функции; результатом будет вектор коэффициентов

полинома длиной (n + 1).

spline(X,Y,Xi) – интерполяция кубическими сплайнами.

 

Пример 1.11:

>> x = [1 2 3 4 5 6 7 8];

>> y = [-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1];

>> polyfit(x,y,1)

ans = 0.1143 -0.2393

Это означает, что заданная зависимость аппроксимирована прямой:

y(x) = 0.1143x – 0.2393

 

Построение графиков

Основной функцией, обеспечивающей построение графиков, является функция plot. Обращение к этой процедуре:

plot(x1,y1,s1,x2,y2,s2.,…)

Здесь x1,y1 - заданные векторы, элементами которых являются массивы значений аргумента (x1) и функции (y1), соответствующих первой кривой графика; x2,y2 – массивы значений аргумента и функции второй кривой графика и т.д. Переменные s1, s2 являются символьными (их указание не обязательно, они определяют тип линии, тип точки графика и цвет линии).

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

Пример 1.12:

Пусть требуется вывести график функции y=3sin(x+π/3) на промежутке от -3π до +3π с шагом π/100.

>>x=-3*pi:pi/100:3*pi;

>>y=3*sin(x+pi/3);

>>plot(x,y), grid

 

Заголовок графика выводится с помощью процедуры title(‘текст’), надписи к осям – процедурами xlabel(‘текст’), ylabel(‘текст’).

Пример 1.13:

>>x=-3*pi:pi/100:3*pi;

>>y=-3*sin(x+pi/3);

>>plot(x,y), grid

>>title(‘Функция y=3sin(x+π/3));

>>xlabel(‘x’); ylabel(‘y’)

 

Пример 1.14: Дополним пример 1.11.

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

 

>> x = [1 2 3 4 5 6 7 8];

>> y = [-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1];

>> P1=polyfit(x,y,1);

>> P1=polyfit(x,y,2);

>> P1=polyfit(x,y,3);

>> P1=polyfit(x,y,4);

>>stem(x,y);

>>hold

>>x=0.5:0.05:8.5;

>>y1=polyval(P1,x1);

>>y2=polyval(P2,x2);

>>y3=polyval(P3,x3);

>>y4=polyval(P4,x4);

>>plot(x1,y1,x2,y2,x3,y3,x4,y4);

>>grid:

>>title(‘Полиномиальная аппроксимация’);

>>xlabel(‘argument’);

>>ylabel(‘function’)

 

Здесь процедура stem(x,y)используется для представления графика дискретной функции в виде отдельных вертикальных линий для каждого из значений аргумента; x, y – векторы аргументов и значений функций; для отражения графика дискретной функции на той же фигуре, что и полиномы, после обращения к функции stem записывается функция hold.

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

 

Пример 1.15:

>> x= [1 3 2 9 6 8 4 9 -6];

>> plot(x)

>> grid

>> title (‘График вектора x')

>> ylabel (‘значения элементов’)

>> xlabel (‘номер элемента’)

 

Более наглядно представить вектор в виде столбчатой диаграммы (функция bar):

>> bar(x)

>> title (‘График вектора x')

>> ylabel (‘значения элементов’)

>> xlabel (‘номер элемента’)

 

2 Программирование в среде MatLAB

 

Программа создается в окне установленного редактора:


<== предыдущая лекция | следующая лекция ==>
Тема ХІ: Еволюція неокласичних ідей. Неолібералізм | Неолібералізм: лондонська, фрейбурзька, паризька, чиказька школи
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | <== 25 ==> | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
Studopedia.info - Студопедия - 2014-2024 год . (0.214 сек.) російська версія | українська версія

Генерация страницы за: 0.214 сек.
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7