Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Моделирование базовой последовательности.



МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К ЛАБОРАТОРНЫМ РАБОТАМ

ПО ДИСЦИПЛИНЕ

«Основы компьютерного моделирования»

Караганда 2010

 

Лабораторная работа №1

Моделирование базовой последовательности.

 

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

 

Методические указания

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

· математика и вычисления;

· разработка алгоритмов;

· вычислительный эксперимент, имитационное моделирование, макетирование;

· анализ данных, исследование и визуализация результатов;

· научная и инженерная графика;

· разработка приложений, включая графический интерфейс пользователя.

MATLAB – это интерактивная система, основным объектом которой является массив, для которого не требуется указывать размерность явно. Это позволяет решать многие вычислительные задачи, связанные с векторно-матричными формулировками, существенно сокращая время, которое понадобилось бы для программирования на скалярных языках типа C или Fortran.

Одно из назначений математики - служить языком общения между учеными и инженерами. Матрицы, дифференциальные уравнения, массивы данных, графики - это общие объекты и конструкции, используемые как в прикладной математике, так и в системе MATLAB. Именно эта фундамен­тальная основа обеспечивает системе MATLAB непревзойденную мощь и доступность.

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

Операторы системы MATLAB делятся на 3 категории:

· арифметические операторы - позволяют конструировать арифметиче­ские выражения и выполнять числовые вычисления;

· операторы отношения - позволяют сравнивать числовые операнды;

· логические операторы - позволяют строить логические выражения.

Логические операторы имеют самый низкий приоритет относительно операторов отношения и арифметических операторов.

Арифметические операторы. При работе с массивом чисел установлены сле­дующие уровни приоритета среди арифметических операций:

уровень 1: поэлементное транспонирование (.'), поэлементное возведение в сте­пень (.^), транспонирование матрицы ('), воз­ведение матрицы в степень (^);

уровень 2: унарное сложение (+), унарное вычитание (—);

уровень 3: умножение массивов (.*), правое деление (./), левое деление массивов (.\), умножение матриц (*), решение систем линейных уравнений - операция (/), операция (\);

уровень 4: сложение (+), вычитание (-);

уровень 5: оператор формирования массивов (: ).

Внутри каждого уровня операторы имеют равный приоритет и вычис­ляются в порядке следования слева направо. Заданный по умолчанию порядок следования может быть изменен с помощью круглых скобок.

Операторы отношения. В системе MATLAB определено 6 следующих опера­торов отношения:

< меньше;

< =меньше или равно;

> больше;

> = больше или равно;

== равно тождественно;

~ = не равно.

Операторы отношения выполняют поэлементное сравнение двух мас­сивов равных размерностей. Для векторов и прямоугольных массивов оба операнда должны быть одинакового размера, за исключением случая, когда один из них скаляр. В этом случае MATLAB сравнивает скаляр с каждым элементом другого операнда. Позиции, где это соотношение истинно, получают значение 1, где ложно - 0.

Операторы отношения всегда выполняются поэлементно.

Логические операторы. В состав логических операторов системы MATLAB входят следующие операторы:

& И;

ç ИЛИ;

~ НЕ.

Логические операторы реализуют поэлементное сравнение массивов одинаковых размерностей. Для векторов и прямоугольных массивов оба операнда должны быть одинакового размера, за исключением случая, когда один из них скаляр. В последнем случае MATLAB сравнивает скаляр с каж­дым элементом другого операнда. Позиции, где это соотношение истинно, получают значение 1, где ложно - 0.

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

· Логическое выражение с оператором AND (& ) является истинным, если оба операнда истинны. Если элементами логического выражения явля­ются числа, то выражение истинно, если оба операнда отличны от нуля.

· Логическое выражение с оператором OR( ê ) является истинным, если один из операндов или оба операнда логически истинны. Выражение ложно, только если оба операнда логически ложны. Если элементами логического выражения являются числа, то выражение ложно, если оба операнда равны нулю.

· Логическое выражение с оператором NOT(~) строит отрицание. Результат логически ложен, если операнд истинен, и истинен, если операнд ложен. Если элементами логического выражения являются числа, то любой операнд, отличный от нуля, становится нулем, и любой нулевой операнд становится единицей.

Логические функции. В дополнение к логическим операторам в состав сис­темы MATLAB включен ряд логических функций:

· Функция хоr(а, b) реализует операцию ИСКЛЮЧИТЕЛЬНОЕ ИЛИ. Выраже­ние, содержащее ИСКЛЮЧИТЕЛЬНОЕ ИЛИ истинно, если один из операндов имеет значение TRUE, а другой - FALSE. Для числовых выражений функция возвращает 1, если один из операндов отличен от нуля, а другой - 0.

· Функция all возвращает 1, если все элементы вектора истинны или отличны от нуля.

· Функция any возвращает 1, если хотя бы один из элементов аргумента отличен от нуля; иначе возвращается 0

Помимо операции возведения в степень, реализуемой с помощью знака ^, есть еще функция извлечения квадратного корня sqrt, функция exp для возведения в степень числа е, функция pow2 для возведения в степень числа 2. Также присутствуют обратные к ним функции: log – натуральный логарифм, log10 – логарифм по основанию 10, log2 - логарифм по основанию 2.

Тригонометрические функции представлены весьма полно: sin, cos, tan (тангенс), cot (котангенс), asin (арксинус), acos (арккосинус), atan (арктан­генс), acot (арккотангенс). Имеются также и менее употребительные функции типа секанса, косеканса, а также гиперболические функции.

Упомянем еще функции, связанные с целочисленной арифметикой. Напри­мер, функции округления: round (округление до ближайшего целого), fix (усе­чение дробной части числа), floor (округление до меньшего целого), ceil (ок­ругление до большего целого).

Кроме того, есть еще функции mod (остаток от деления с учетом знака), rem (остаток в смысле модульной арифметики), sign (знак числа), factor (разложение числа на простые множители), isprime (истинно, если число простое), primes (формирование списка простых чисел), rat (приближение числа в виде рациональной дроби), 1cm (наименьшее общее кратное), gcd (наибольший общий делитель).

 

 

Задание к работе

Порядок выполнения работы:

1. Изучение теоретических сведений по теме лабораторной работы

2. По индивидуальному заданию написать программу

3. Оформление отчета по лабораторной работе, который должен содержать:

Название, цель работы, постановка задачи

Текст программы

Результаты тестирования работы программы

Ответы на контрольные вопросы

4. Защита лабораторной работы

 

Контрольные вопросы

1. Что такое «зона просмотра» и «зона редактирования»?

2. Дайте определения выражения.

3. Чем определяется порядок вычисления значения выражения?

4. Чему равно: round(17.6), fix(6.51), floor(12.7), ceil(12.7).

5. В каком случае функции mod и rem дают одинаковый результат?

6. Чему равно: mod(-12, 6), rem(-7, 2), isprime(5), isprime(10), lcm(3, 4), gcd(72, 12).

7. Какие операторы существуют в системе MATLAB?

8. Вычислить значение выражения, если A=2.5, B=7.8, C=-17.3, M=5, X=8.7, E=TRUE

a) (A+B)/C*M b) 2+X/(X+(A+B)/5) c) (A< B)& (X+A< B) ׀ (C< M) ׀ E

Варианты заданий

 

1. Написать программу, которая печатает true или false в зависимости от того, имеют три заданных числа одинаковую четность или нет.
2. Написать программу, которая вычисляет площадь правильного треугольника, вписанного в окружность заданного радиуса.
3. Вычислить значение f(x)=x+lnx, в заданной точке. Вывести на печать таблицу из 5 значений функции.
4. Вычислить длину окружности, площадь круга и объем шара заданного радиуса.
5. По координатам вершин вычислить периметр и площадь треугольника.
6. Найти произведение цифр заданного четырехзначного числа.
7. Определить число, полученное записыванием в обратном порядке цифр заданного трехзначного числа.
8. Определить, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр.
9. Дано натуральное число n, выяснить входит ли цифра 3 в запись этого числа и поменять порядок цифр числа n на обратный.
10. Определить, есть ли среди цифр заданного трехзначного числа одинаковые?
11. Даны три числа, определить, можно ли построить треугольник с такими длинами сторон.
12. Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.
13. Вычислить ( |x| - |y| ) / ( 1 + |x * y| ) по заданным x, y.
14. Даны x, y, z вычислить a, b, если а = (|x+1|1/2-|y|1/2)/(x+z), b = x*(arctg(z)+ey).
15. Треугольник задан величинами углов и радиусом описанной окружности. Найти стороны треугольника.
16. Определить время, через которое встретятся два тела, равноускоренно движущиеся навстречу друг другу, если известны их начальные скорости, ускорения и начальное расстояние между ними.
17. Найти площадь сектора, радиус которого равен r, а дуга содержит f радиан.
18. Дано действительное число a, за четыре операции умножения получить a3 и a10, вывести все промежуточные результаты в виде таблицы.
19. Дано число а, получить за шесть операций умножения а2, а5, а17. Вывести промежуточные результаты в виде таблицы.
20. Даны 3 вещественных числа. Определить, образуют ли они возрастающую последовательность.

 

Пример решения задачи лабораторной работы №1

Задание: Написать программу, которая печатает true и false в зависимости от того, имеют три заданных числа одинаковую четность или нет.

 

Листинг текста программы:

a=input(‘Введите первое число’);

b= input(‘Введите второе число’);

c= input(‘Введите третье число’);

x1=mod(a, 2) %mod – остаток от деления числа а на 2

x2=mod(b, 2) %0 – если число четное

x3=mod(c, 2) %1 – если число нечетное

if (x1==x2) & (x1==x3)

disp(‘Все числа имеют одинаковую четность’)

else

disp(‘Все числа имеют разную четность’)

end

 

Лабораторная работа №2

Рис.1.1 Блок-схема одноканальной одно-фазовой модели

 


Генерирование данных

В программе имитации на ЭВМ часто применяются численные методы генерирования данных. Для описания случайной величины независимо от того, как она распределена - непрерывно или дискретно, удобно ввести кумулятивную функцию распределения вероятности F(x), которая при данном значении своего аргумента Х - вероятность того, что случайная реализация величины Х не превосходит x. Для абсолютно непрерывной функции, функция плотности вероятностей f(х) имеет вид:

 

(1.4)

 

 

Нормальное распределение

Функция плотности вероятностей:

Параметры: m x и d x

Математическое ожидание:

Ex = m x

Дисперсия:

Vx =d x2, STDX=d x

Гамма-распределение

Функция плотности вероятностей:

a> 0, k> 0, x> =0

Параметры: a и k

Математическое ожидание:

Ex=k/a;

Дисперсия:

Vx=k/a2

Биноминальное распределение

Функция плотности вероятностей:

f(x)=(xn)pxqu-x, x=0, l..N; q=1- p;

Параметры: n, N, p, q; 0< =p< =1;

Математическое ожидание:

Ex = np

Дисперсия:

Vx = npq

Распределение Пуассона

Функция плотности вероятностей:

f(x)=e-l *(l x/x! ) x=0, 1, …; l > 0

Параметры: l

Математическое ожидание:

Ex = l

Дисперсия:

Vx = l

Рис. 1.2 Структурная схема модели одноканальной СМО

 

Канал обслуживания осуществляет обслуживание каждой заявки в соот­ветствии с заданным детерминированным или случайным законом обслужива­ния. Выходной поток заявок отличается от входного в зависимости от законов дисциплины очереди и обслуживания

Перечислим переменные и управление модели:

Эндогенные переменные:

WT - среднее время ожидания заявки в очереди;

IDT - среднее время простоя системы, в ожидании очередного требования.

Переменные состояния:

WTi - время ожидания i-ой заявки;

IDTi время простоя системы, в ожидании i-ой заявки.

Экзогенные переменные:

i - интервал времени между появлением i-ой и (i+1)-ой заявками;

STi - время обслуживания i-ой заявки.

Характеристики функционирования системы:

f(AT) - функция распределения плотностей вероятностей интервала врeмeни между двумя последовательными заявками;

f(SТ) - Функция распределения плотностей вероятностей времени обслуживания.

Тождества:

 

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

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

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

 

Лабораторная работа №3

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

Лабораторная работа №4

Архитектура персептрона

Нейрон персептрона

Нейрон, используемый в модели персептрона, имеет ступенчатую функцию активации hardlim с жесткими ограничениями (рисунок 4.1).

Рисунок 4.1 – Модель нейрона

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

Если вход функции активации n ≥ 0, то нейрон персептрона возвращает 1, если n < 0, то 0.

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

Рисунок 4.2 – Пространство входов

 

Пространство входов делится на две области разделяющей линией L, которая для двумерного случая задается уравнением

(4.1)

 

Эта линия перпендикулярна к вектору весов w и смещена на величину b. Векторы входа выше линии L соответствуют положительному потенциалу нейрона, и, следовательно, выход персептрона для этих векторов будет равен 1; векторы входа ниже линии L соответствуют выходу персептрона, равному 0.

При изменении значений смещения и весов граница линии L изменяет свое положение.

Персептрон без смещения всегда формирует разделяющую линию, проходящую через начало координат; добавление смещения формирует линию, которая не проходит через начало координат, как это показано на рисунке 4.2.

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

Модель персептрона

Для формирования модели однослойного персептрона в системе

MATLAB предназначена функция newp

net = newp(PR, S)

со следующими входными аргументами: PR – массив минимальных и максимальных значений для R элементов входа размера Rx2;

S – число нейронов в слое.

Например, функция net = newp([0 2], 1); создает персептрон с одноэлементным входом и одним нейроном; диапазон значений входа – [0 2].

В качестве функции активации персептрона по умолчанию используется функция hardlim.

Моделирование персептрона

Рассмотрим однослойный персептрон с одним двухэлементным вектором входа, значения элементов которого изменяются в диапазоне от –2 до 2 (p1 = [–2 2], p2 = [–2 2], число нейронов в сети S = 1):

clear, net = newp([-2 2; -2 2], 1); %Создание персептрона net

По умолчанию веса и смещение равны нулю, и для того, чтобы установить желаемые значения, необходимо применить следующие операторы:

 

 

Запишем уравнение (1) в развернутом виде для данной сети:

В этом случае разделяющая линия имеет вид

L: -p1 + p2 + 1 = 0

и соответствует линии L на рисунке 4.2.

 

Определим реакцию сети на входные векторы p1 и p2, расположенные по разные стороны от разделяющей линии:

 

p1 = [1; 1];

a1 = sim(net, p1 % Моделирование сети net с входным вектором p1

a1 = 1

p2 = [1; -1];

a2 = sim(net, p2) % Моделирование сети net с входным вектором p2

 

a2 = 0

 

 

Персептрон правильно классифицировал эти два вектора.

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

p3 = {[1; 1] [1; -1]}

a3 = sim(net, p3) % Моделирование сети net при входном сигнале p3

 

p3 = [2x1 double] [2x1 double]

a3 = [1] [0]

Инициализация параметров

 

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

clear, net = newp([-2 2; -2 2], 1);

Запросим характеристики весов входа

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

wts = net.IW{1, 1}, bias = net.b{1}

wts = 0 0

bias = 0

Теперь переустановим значения элементов матрицы весов и сме-

щения:

net.IW{1, 1} = [3, 4]; net.b{1} = 5;

wts = net.IW{1, 1}, bias = net.b{1}

wts = 3 4

bias = 5

Для того чтобы вернуться к первоначальным установкам парамет-

ров персептрона, предназначена функция init:

 

net = init(net); wts = net.IW{1, 1}, bias = net.b{1}

 

wts = 0 0

bias = 0

 

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

 

% Задать функции инициализации весов и смещений

net.inputweights{1, 1}.initFcn = 'rands';

net.biases{1}.initFcn = 'rands';

% Выполнить инициализацию ранее созданной сети с новыми функциями

net = init(net);

wts = net.IW{1, 1}, bias = net.b{1}

wts = -0.1886 0.8709

bias = -0.6475

 

Видно, что веса и смещения выбраны случайным образом.

Порядок выполнения работы

1. Для заданного преподавателем варианта (таблица) разработать

структурную схему персептронной нейронной сети.

2. Разработать алгоритм создания и моделирования персептрон-

ной нейронной сети.

3. Реализовать разработанный алгоритм в системе MATLAB.

4. Определить параметры созданной нейронной сети (веса и сме-

щение) и проверить правильность работы сети для последовательно-

сти входных векторов (не менее 5).

5. Построить график, аналогичный представленному на рис. 2, для

своих исходных данных.

Задание к работе

 

1. Изучение теоретических сведений по теме лабораторной работы

2. Простой персептрон. Алгоритм обучения персептрона

3. Постановка задачи распознавания образов.

4. Описание структуры используемого персептрона

5. Реализовать разработанный алгоритм в системе MATLAB.

6. Определить параметры созданной нейронной сети (веса и смещение) и проверить правильность работы сети для последовательности входных векторов (не менее 5).

7. Построить график, аналогичный представленному на рисунке 4.2, для

своих исходных данных.

8. Алгоритм работы программы

9. Оформление отчета по лабораторной работе, который должен содержать:

­ Название и задание к лабораторной работе

Ответы на контрольные вопросы и задания

10. Защита лабораторной работы

 

 

Контрольные вопросы

1. Что такое нейроподобный элемент?

2. В естественном нейроне аксон, а в нейроподобном элементе -..?

3. Что такое нейронная сеть?

4. Какие типы искусственных нейронных сетей бывают?

5. Какие задачи не может решить простой однослойный персептрон?

6. Какие виды связей существуют в нейронных сетях?

7. В чем отличие правила Уидроу-Хоффа от дельта-правила?

8. Какие основные выходные функции используют при построении нейроподобных элементов?

9. Какая выходная функция используется при построении персептрона в данной программе?

10. Для чего использован «ПОРОГ» в нейроподобных элементах?

 

 

Лабораторная работа №5

Генерирование данных

В программе имитации на ЭВМ часто применяются численные методы генерирования данных. Для описания случайной величины независимо от того, как она распределена - непрерывно или дискретно, удобно ввести кумулятивную функцию распределения вероятности F(x), которая при данном значении своего аргумента Х - вероятность того, что случайная реализация величины Х не превосходит x. Для абсолютно непрерывной функции, функция плотности вероятностей f(х) имеет вид:

 

(1.4)

 

 

Нормальное распределение

Функция плотности вероятностей:

Параметры: m x и d x

Математическое ожидание:

Ex = m x

Дисперсия:

Vx =d x2, STDX=d x

Гамма-распределение

Функция плотности вероятностей:

a> 0, k> 0, x> =0

Параметры: a и k

Математическое ожидание:

Ex=k/a;

Дисперсия:

Vx=k/a2

Биноминальное распределение

Функция плотности вероятностей:

f(x)=(xn)pxqu-x, x=0, l..N; q=1- p;

Параметры: n, N, p, q; 0< =p< =1;

Математическое ожидание:

Ex = np

Дисперсия:

Vx = npq

Распределение Пуассона

Функция плотности вероятностей:

f(x)=e-l *(l x/x! ) x=0, 1, …; l > 0

Параметры: l

Математическое ожидание:

Ex = l

Дисперсия:

Vx = l

Лабораторная работа №6

Лабораторная работа №7

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К ЛАБОРАТОРНЫМ РАБОТАМ

ПО ДИСЦИПЛИНЕ

«Основы компьютерного моделирования»

Караганда 2010

 

Лабораторная работа №1

Моделирование базовой последовательности.

 

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

 

Методические указания

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

· математика и вычисления;

· разработка алгоритмов;

· вычислительный эксперимент, имитационное моделирование, макетирование;

· анализ данных, исследование и визуализация результатов;

· научная и инженерная графика;

· разработка приложений, включая графический интерфейс пользователя.

MATLAB – это интерактивная система, основным объектом которой является массив, для которого не требуется указывать размерность явно. Это позволяет решать многие вычислительные задачи, связанные с векторно-матричными формулировками, существенно сокращая время, которое понадобилось бы для программирования на скалярных языках типа C или Fortran.

Одно из назначений математики - служить языком общения между учеными и инженерами. Матрицы, дифференциальные уравнения, массивы данных, графики - это общие объекты и конструкции, используемые как в прикладной математике, так и в системе MATLAB. Именно эта фундамен­тальная основа обеспечивает системе MATLAB непревзойденную мощь и доступность.

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

Операторы системы MATLAB делятся на 3 категории:

· арифметические операторы - позволяют конструировать арифметиче­ские выражения и выполнять числовые вычисления;

· операторы отношения - позволяют сравнивать числовые операнды;

· логические операторы - позволяют строить логические выражения.

Логические операторы имеют самый низкий приоритет относительно операторов отношения и арифметических операторов.

Арифметические операторы. При работе с массивом чисел установлены сле­дующие уровни приоритета среди арифметических операций:

уровень 1: поэлементное транспонирование (.'), поэлементное возведение в сте­пень (.^), транспонирование матрицы ('), воз­ведение матрицы в степень (^);

уровень 2: унарное сложение (+), унарное вычитание (—);

уровень 3: умножение массивов (.*), правое деление (./), левое деление массивов (.\), умножение матриц (*), решение систем линейных уравнений - операция (/), операция (\);

уровень 4: сложение (+), вычитание (-);

уровень 5: оператор формирования массивов (: ).

Внутри каждого уровня операторы имеют равный приоритет и вычис­ляются в порядке следования слева направо. Заданный по умолчанию порядок следования может быть изменен с помощью круглых скобок.

Операторы отношения. В системе MATLAB определено 6 следующих опера­торов отношения:

< меньше;

< =меньше или равно;

> больше;

> = больше или равно;

== равно тождественно;

~ = не равно.

Операторы отношения выполняют поэлементное сравнение двух мас­сивов равных размерностей. Для векторов и прямоугольных массивов оба операнда должны быть одинакового размера, за исключением случая, когда один из них скаляр. В этом случае MATLAB сравнивает скаляр с каждым элементом другого операнда. Позиции, где это соотношение истинно, получают значение 1, где ложно - 0.

Операторы отношения всегда выполняются поэлементно.

Логические операторы. В состав логических операторов системы MATLAB входят следующие операторы:

& И;

ç ИЛИ;

~ НЕ.

Логические операторы реализуют поэлементное сравнение массивов одинаковых размерностей. Для векторов и прямоугольных массивов оба операнда должны быть одинакового размера, за исключением случая, когда один из них скаляр. В последнем случае MATLAB сравнивает скаляр с каж­дым элементом другого операнда. Позиции, где это соотношение истинно, получают значение 1, где ложно - 0.

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

· Логическое выражение с оператором AND (& ) является истинным, если оба операнда истинны. Если элементами логического выражения явля­ются числа, то выражение истинно, если оба операнда отличны от нуля.

· Логическое выражение с оператором OR( ê ) является истинным, если один из операндов или оба операнда логически истинны. Выражение ложно, только если оба операнда логически ложны. Если элементами логического выражения являются числа, то выражение ложно, если оба операнда равны нулю.

· Логическое выражение с оператором NOT(~) строит отрицание. Результат логически ложен, если операнд истинен, и истинен, если операнд ложен. Если элементами логического выражения являются числа, то любой операнд, отличный от нуля, становится нулем, и любой нулевой операнд становится единицей.

Логические функции. В дополнение к логическим операторам в состав сис­темы MATLAB включен ряд логических функций:

· Функция хоr(а, b) реализует операцию ИСКЛЮЧИТЕЛЬНОЕ ИЛИ. Выраже­ние, содержащее ИСКЛЮЧИТЕЛЬНОЕ ИЛИ истинно, если один из операндов имеет значение TRUE, а другой - FALSE. Для числовых выражений функция возвращает 1, если один из операндов отличен от нуля, а другой - 0.

· Функция all возвращает 1, если все элементы вектора истинны или отличны от нуля.

· Функция any возвращает 1, если хотя бы один из элементов аргумента отличен от нуля; иначе возвращается 0

Помимо операции возведения в степень, реализуемой с помощью знака ^, есть еще функция извлечения квадратного корня sqrt, функция exp для возведения в степень числа е, функция pow2 для возведения в степень числа 2. Также присутствуют обратные к ним функции: log – натуральный логарифм, log10 – логарифм по основанию 10, log2 - логарифм по основанию 2.

Тригонометрические функции представлены весьма полно: sin, cos, tan (тангенс), cot (котангенс), asin (арксинус), acos (арккосинус), atan (арктан­генс), acot (арккотангенс). Имеются также и менее употребительные функции типа секанса, косеканса, а также гиперболические функции.

Упомянем еще функции, связанные с целочисленной арифметикой. Напри­мер, функции округления: round (округление до ближайшего целого), fix (усе­чение дробной части числа), floor (округление до меньшего целого), ceil (ок­ругление до большего целого).

Кроме того, есть еще функции mod (остаток от деления с учетом знака), rem (остаток в смысле модульной арифметики), sign (знак числа), factor (разложение числа на простые множители), isprime (истинно, если число простое), primes (формирование списка простых чисел), rat (приближение числа в виде рациональной дроби), 1cm (наименьшее общее кратное), gcd (наибольший общий делитель).

 

 

Задание к работе

Порядок выполнения работы:

1. Изучение теоретических сведений по теме лабораторной работы

2. По индивидуальному заданию написать программу

3. Оформление отчета по лабораторной работе, который должен содержать:

Название, цель работы, постановка задачи

Текст программы

Результаты тестирования работы программы

Ответы на контрольные вопросы

4. Защита лабораторной работы

 

Контрольные вопросы

1. Что такое «зона просмотра» и «зона редактирования»?

2. Дайте определения выражения.

3. Чем определяется порядок вычисления значения выражения?

4. Чему равно: round(17.6), fix(6.51), floor(12.7), ceil(12.7).

5. В каком случае функции mod и rem дают одинаковый результат?

6. Чему равно: mod(-12, 6), rem(-7, 2), isprime(5), isprime(10), lcm(3, 4), gcd(72, 12).

7. Какие операторы существуют в системе MATLAB?

8. Вычислить значение выражения, если A=2.5, B=7.8, C=-17.3, M=5, X=8.7, E=TRUE

a) (A+B)/C*M b) 2+X/(X+(A+B)/5) c) (A< B)& (X+A< B) ׀ (C< M) ׀ E

Варианты заданий

 

1. Написать программу, которая печатает true или false в зависимости от того, имеют три заданных числа одинаковую четность или нет.
2. Написать программу, которая вычисляет площадь правильного треугольника, вписанного в окружность заданного радиуса.
3. Вычислить значение f(x)=x+lnx, в заданной точке. Вывести на печать таблицу из 5 значений функции.
4. Вычислить длину окружности, площадь круга и объем шара заданного радиуса.
5. По координатам вершин вычислить периметр и площадь треугольника.
6. Найти произведение цифр заданного четырехзначного числа.
7. Определить число, полученное записыванием в обратном порядке цифр заданного трехзначного числа.
8. Определить, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр.
9. Дано натуральное число n, выяснить входит ли цифра 3 в запись этого числа и поменять порядок цифр числа n на обратный.
10. Определить, есть ли среди цифр заданного трехзначного числа одинаковые?
11. Даны три числа, определить, можно ли построить треугольник с такими длинами сторон.
12. Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.
13. Вычислить ( |x| - |y| ) / ( 1 + |x * y| ) по заданным x, y.
14. Даны x, y, z вычислить a, b, если а = (|x+1|1/2-|y|1/2)/(x+z), b = x*(arctg(z)+ey).
15. Треугольник задан величинами углов и радиусом описанной окружности. Найти стороны треугольника.
16. Определить время, через которое встретятся два тела, равноускоренно движущиеся навстречу друг другу, если известны их начальные скорости, ускорения и начальное расстояние между ними.
17. Найти площадь сектора, радиус которого равен r, а дуга содержит f радиан.
18. Дано действительное число a, за четыре операции умножения получить a3 и a10, вывести все промежуточные результаты в виде таблицы.
19. Дано число а, получить за шесть операций умножения а2, а5, а17. Вывести промежуточные результаты в виде таблицы.
20. Даны 3 вещественных числа. Определить, образуют ли они возрастающую последовательность.

 

Пример решения задачи лабораторной работы №1


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 978; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.239 с.)
Главная | Случайная страница | Обратная связь