Главная страница

задания к лабораторным. Практикум по численным методам и положение о вычислительной практике Для студентов специальностей Статистика иМатематические методы в экономике


Скачать 0.59 Mb.
НазваниеПрактикум по численным методам и положение о вычислительной практике Для студентов специальностей Статистика иМатематические методы в экономике
Дата18.01.2021
Размер0.59 Mb.
Формат файлаpdf
Имя файлазадания к лабораторным.pdf
ТипПрактикум
#169338
страница5 из 5
1   2   3   4   5

Использование переменных
Возможно приписать числовое значение переменной для использования в последующих вычислениях. Например, набрав
>> x=3
получим
x=
3


36
Но можно сделать и так,
>> rad=2; ht=3;
>> vol=pi*ht*rad^2
vol=
37.6991
Следует обратить внимание, что первая строка содержит две команды и ни одна из них не выдает результата! Когда MATLAB встречает инструкцию с сим- волом ; (точка с запятой) в конце, он запрещает вывод результата. Инструкция в действительности выполняется, но ее результат умалчивается.
Использование символа ; позволяет избежать хаотического заполнения эк- рана промежуточными результатами.
Не следует забывать, что каждая переменная должна как-то получить зна- чение прежде, чем она будет использована в дальнейших вычислениях. Так, после выполнения предыдущих примеров и строки
>> f=x^2+2*x*y+y^2
будет выведено следующее сообщение
??? Undefined function or variable y
Но если ввести
>> y=4;
а затем повторно выполнить вычисление f, оно пройдет успешно.
Следует отметить, что быстрый способ повторить предыдущую строку
MATLAB – это нажимать клавишу «стрелка вверх» до тех пор, пока не отобразит- ся желаемая команда. Этим же приемом можно воспользоваться, если исходная строка была не совсем правильной или есть необходимость получить новую стро- ку из более сложной, но схожей с ней и выполненной ранее. Выбрав требуемую строку, можно использовать «стрелки в сторону» и клавишу Delete для редакти- рования.
Векторы и графики
MATLAB отличается простотой построения графиков. Основные принципы таковы:
1. Выбрать последовательность
x
, т.е. вектор значений аргумента.
2. Вычислить
( )
y
f x
=
, т.е. получить соответствующий вектор
y
-вектор.
3. Вывести график
y
от
x
Прежде, чем проделать это, рассмотрим работу MATLAB с векторами.

37
Векторы
Выполним следующий пример
>> u=[2,2,3]
>> u=[2 2 3]
>> v=[1, 0, -1]
>> w=u-2*v
>> range=1:13
>> odd=1:2:13
>> down=20:-0.5:0
>> even=odd+1
>> xgrid=0:.05:1;
>> x=xgrid*pi
>> y=sin(x)
Первые две строки показывают, что элементы вектора могут разделяться пробелами или запятыми. Таким образом [1+1 2 3] означает то же самое, что и
[2,2,3], а [1 +1 2 3] – то же, что и [1,1,2,3]!
Следует заметить, что векторы могут быть любой длины. Они могут быть строками, как в рассмотренном только что примере, так и столбцами.
>> w’
ans=
0
2
5
Апостроф означает транспонирование. В MATLAB векторы трактуются как частный случай матриц.
Если представляемый вектор оказывается слишком длинным и не умещает- ся в одной строке, система сначала отображает столько элементов, сколько их умещается в строке, а остальные переносит на следующие строки. Элементы это- го вектора-строки трактуются как столбцы.
Элементарная функция
x
, такая, как sin( )
x
, также является вектором того же типа. Мы можем использовать этот факт при создании графиков функций, как по- казано в следующем разделе.
MATLAB знает, как перемножать матрицы соответствующих размеров. По- пробуем выполнить строки
>> w*w’
>> w’*w
>> u*w’
>> u*u
Почему последняя строка не работает?

38
Допустим, необходимо получить множество значений
z
, данное выражени- ем
2
z
y
=
, где вектору
y
уже были присвоены некоторые значения. Для этого не- обходимо выполнить присвоение
>> z=y*y’
Оно вычисляется как скалярное произведение
y y

. Чтобы заставить MAT-
LAB перемножить векторы поэлементно, нужно выполнить следующее
>> z=y.*y
где точка перед символом «*» – ключевой признак поэлементной операции. По- добным образом понимаются в качестве поэлементных и операции возведения в степень и деления векторов и матриц одинаковых размеров.
Графики
Для построения графика достаточно выполнить функцию
>> plot(x,y)
После ее выполнения откроется дополнительное окно, в котором будет по- строена кривая
y
в зависимости от аргумента
x
. Оси выбираются автоматически в соответствии с областями изменения переменных. Это простейший случай.
Например, график, выведенный функцией
>> plot(x,y,’+’)
будет построен с помощью символов ‘+’ для всех элементов вектора
x .
График, построенный с помощью функции
>> plot(x,y,’*g’)
будет иметь зеленый цвет (Green) и будет построен с помощью символов «*».
Для того, чтобы вывести сетку, необходимо ввести команду следующего вида
>> plot(параметры), grid
Создание и редактирование скрипт-файлов
Достаточно утомительно снова и снова вводить те же самые или подобные им последовательности команд. К счастью, есть простой путь обойти это: нужно просто сохранить любую часто повторяемую последовательность команд в виде файла, называемого
скриптом или M-файлом. После этого можно вызывать этот список команд так часто, как надо.

39
Редактирование и сохранение программ
M-файл можно создавать с помощью Блокнота, либо с помощью встроенно- го редактора M-файлов, который запускается из MATLAB с помощью меню
File->New->M-file.
Создадим простейщий M-файл
% myfile.m
% Это просто название файла
% Эти три строки – комментарии, на которые
% MATLAB не обращает внимания
disp(‘Вы запустили M-файл’)
и сохраним его. Затем, вернувшись в MATLAB, можно выполнить
>> type myfile
После выполнения данной команды будет отображено все содержание фай- ла myfile.m.
Скрипт-файлы
Чтобы использовать скрипт-файл, достаточно набрать
>> myfile
После этого будут выполнены все команды, содержащиеся в файле
myfile.
Следует заметить, что myfile – это имя инструкции MATLAB, т.к. my-
file.m – имя файла, содержащего ее определения.
Нельзя давать файлам *.m имена, состоящие из русских букв и имена,
начинающиеся с цифр!!!
Файлы функций
Было бы утомительным присваивать значения компонентам двух векторов перед каждым обращением к нашему скрипту. Можно соединить присвоение входных значений с действующими инструкциями вызова M-файла, используя M- файл типа «
функция». Кроме того, одновременно можно присвоить полученные значения новым переменным, т.е. создать файл-функцию с именем, например, dist, такую, что, набрав
>> dab=dist([1,2,3], [1,1,3]);
или
>> a=[1,2,3]; b=[1,1,3];
>> dab=dist(a,b);

40
Переменной dab будет присвоено правильное значение расстояния.
Ниже приведен текст файла dist.m, содержащий полное описание функ- ции и выполняющих ее команд:
% Файл dist.m
% Вычисляет расстояние между 2 точками
% в 3-мерном пространстве
% Вызов d=dist(a,b)
% Вход: a,b – векторы с координатами точек
% Выход: d – расстояние между точками
function d=dist(a,b)
d1=b-a;
d2=d1*d1’;
d=sqrt(d2);
Все комментарии, находящиеся НАД описанием функции, являются справ- кой по данной функции и могут быть выведены на экран при помощи команды
>> help dist
Исправления любых ошибок в M-файле можно проводить как с помощью
Блокнота, так и с помощью команды меню
MATLAB
File->Open.
M-файлы, являющиеся функциями, могут использовать различные пере- менные, которые будут являться внутренними. Это помогает уменьшить путаницу с другими вычислениями и переменными, используемыми непосредственно в ко- мандной строке MATLAB и в прочих M-файлах.
Команда
>> clear
удаляет все ранее определенные переменные.

41
Упражнения
1.
Найти сумму первых четырех членов последовательности
1 2
3
,
,
,...
2 3 3 4 4 5



2.
Определить вектор
t
со значениями компонент, равномерно расположен- ными с шигом 0.2 между 0 и 6 включительно. Использовать его для того, чтобы нарисовать кривые
( ) sin( )
f t
t
π
=
и
( )
sin( )
t
g t
e
t
π

=
на одном графике, изобразив первую зеленым, а вторую – желтым цветом. График построить с сеткой.
3.
Создать M-файл, в котором определяется длина каждой из сторон тре- угольника
ABC
. Координаты векторов должны передаваться в файл извне.
Операторы ветвления
Оператор ветвления
Синтаксис оператора следующий:
if условие операторы;
end
Если заданное условие истинно, инструкции выполняются, если условие яв- ляется ложным, инструкции не выполняются, и программа переходит к выполне- нию команд, расположенных после слова end.
В общем случае синтаксис имеет следующий вид:
if условие1
операторы1;
elseif условие2
операторы2;
elseif условие3
операторы3;
. . .
else
операторы;
end
В такой конструкции может быть много ветвей с ключевым словом
elseif. При этом, если справедливо условие1, выполнятся операторы1, ус-
ловие2 – операторы2, и т.д. Если все эти условия окажутся ложными, то вы- полняются команды, стоящие после слова else.

42
Оператор переключения
Синтаксис:
switch выражение
case значение1
операторы1
case {значение2, значение3,...}
операторы_i
. . .
otherwise
операторы;
end
Сначала вычисляется значение выражения (скалярное числовое значение либо строка символов), затем это значение сравнивается со значением1, зна-
чением2, и т.д. Если найдено совпадение, выполняются соответствующие инст- рукции. Если не найдено ни одного совпадения, выполняются операторы, распо- ложенные между otherwise и end.
Если выполнена одна из ветвей, то остальные выполняться не будут, т.е. не требуется написание оператора break.
Управляющие структуры
Цикл for
Синтаксис:
for variable=n_beg:step:n_end
операторы;
end
variable – некоторая переменная;
n_beg – начальное значение переменной;
n_end – конечное значение переменной;
step – шаг.
Цикл завершается, как только variable>n_end.
Цикл while
Синтаксис:
while условие
операторы;
end

43
Цикл выполняется до тех пор, пока истинно указанное условие. Под усло- вием понимается любое распознаваемое MATLAB выражение, которое может включать операции сравнения и логические операции.
Для задания условия выполнения цикла while могут использоваться лю- бые допустимые в Matlab операторы отношения, а также логические операторы.
Операция
Описание
==
Равно
=
Не равно
<,>,<=,>=
Операции сравнения
&
Логическое «И»
|
Логическое «ИЛИ»

Логическое «НЕ»
В случае, когда можно использовать поэлементные операции, лучше ис- пользовать их, т.к. они выполняются быстрее и эффективнее.

44
ПОЛОЖЕНИЕ О ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ
С целью закрепления теоретического материала на практических занятиях для студентов специальностей 080601 (061700) – «Статистика» и 080116
(061800) – «Математические методы в экономике» в четвертом семестре преду- смотрено проведение вычислительной практики в течение двух недель после окончания сессии. Такая практика способствует развитию навыков самостоятель- ной работы в области алгоритмизации и математического моделирования, исполь- зования пакетов прикладных программ для решения конкретных задач из различ- ных предметных областей. Программа практики ориентируется на знания, полу- ченные студентами в результате изучения дисциплин: «Информатика», «Алго- ритмизация и языки программирования», «Численные методы».
Цели вычислительной практики:
• закрепление, углубление и расширение основных понятий и определений вычислительной математики;
• практическое решение как типичных задач вычислительной математики, требующих небольшого объема вычислений, так и достаточно сложных в вычис- лительном отношении задач, которые могут быть проведены с помощью пакетов прикладных программ.
При таких требованиях у студентов имеется возможность изучить теорию основных вычислительных алгоритмов и реально убедиться в их действенных возможностях и свойствах на примере численного решения типичных модельных и прикладных задач.
Работая с конкретными задачами, студент углубляет знания в области тео- рии вычислительных алгоритмов, имеет возможность убедиться в действенных возможностях и свойствах конкретных алгоритмов на примере численного реше- ния типичных модельных и прикладных задач. Практическое проведение всего технологического цикла решения задачи, от составления и записи алгоритма до получения конкретного результата, служит хорошей базой для успешного изуче- ния ряда последующих специальных дисциплин.
Во время вычислительной практики студент выполняет набор заданий, охватывающих следующие разделы курса «Численные методы»:
• элементарная теория погрешностей;
• интерполяция функций;
• решение нелинейных уравнений;
• решение систем линейных и нелинейных уравнений;
• нахождение собственных чисел матрицы;
• решение дифференциальных уравнений.
Каждое задание состоит из двух задач. Решение первой задачи выполняется без применения прикладных математических программ и имеет целью закрепле- ние навыков пошаговой прокрутки алгоритма (разрешается использование таблиц

45
MS Excel и калькулятора). Вторая задача решается с использованием среды
MATLAB.
В качестве заданий, выполняемых во время прохождения практики, препо- давателем могут быть предложены как типовые, так и не типовые задачи, тре- бующие численного решения.
Практика проводится в компьютерном классе кафедры. Руководителем яв- ляется преподаватель кафедры. В течение всего периода практики руководитель практики проводит по необходимости консультации. По согласованию с руково- дителем практики студент может проходить вычислительную практику в других подразделениях вуза или организациях.
По завершению вычислительной практики студент предоставляет на кафед- ру отчет, который должен содержать постановки и решения всех предложенных задач. Отчет должен быть оформлен в соответствии с ГОСТом по типовым пра- вилам составления отчетов, принятым в вузе. Отчет выполняется в редакторе MS
Word, формулы набираются с помощью Equation Editor или Math Type. Отчет предоставляется руководителю практики не позднее последнего дня ее проведе- ния. Руководитель практики выставляет оценку. Если в том есть необходимость, проводится защита отчета.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Воробьева, Г.Н. Практикум по вычислительной математике: Учеб. посо- бие для техникумов. – 2-е изд., перераб. и доп. / Г.Н. Воробьева, А.Н. Данилова. –
М.: Высш. школа, 1990. – 208 с.: ил.
2. Сборник задач по методам вычислений: Учеб. пособие для вузов. – 2-е изд., перераб. и доп. / под ред. П.И. Монастырского.– М.: Физматлит, 1994. –
320 с.
3. Курбатова, Е.А. MATLAB 7. Самоучитель / Е.А. Курбатова. – М.: Изда- тельский дом «Вильямс», 2006. – 256 с.: ил.
1   2   3   4   5


написать администратору сайта