Учебная работа. Лабораторная работа: Программирование в MATLAB

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Лабораторная работа: Программирование в MATLAB

Кафедра: Информационные технологии

ПРОГРАММИРОВАНИЕ В
MATLAB


Операторы
MATLAB

· Операторы цикла

Цикл
for

Синтаксис

for count=start:step:final

команды MATLAB

end

Описание

count – переменная цикла,

start – ее изначальное

final – ее конечное

step – шаг, на который возрастает count при любом последующем заходе в цикл

цикл завершается, как

Пример

Пусть требуется вывести семейство кривых для x€ [0, 2π], которое задано функцией, зависящей от параметра

y (x, a) = e-ax
sin x,

для значений параметра а от -0.1 до 0.1. Ниже приведен листинг файл-программы для вывода семейства кривых.

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

Figure

x = [0:pi/30:2*pi];

for a = -0.1:0.02:0.1

y = exp (-a*x).*sin(x);

hold on

plot (x, y)

end

В итоге выполнения программки покажется графическое окно, которое содержит требуемое семейство кривых.

Цикл
while

Синтаксис

while условие цикла

команды MATLAB

end

Описание

Цикл работает, пока производится (поистине) условие цикла. Для задания условия выполнения цикла допустимы последующие операции дела:


Обозначение
Операция дела

==
Равенство

<
Меньше

<=
Меньше либо равно

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

>
Больше

~=
Не равно

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



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

Логическое «и»
x<3 и k=4
(x<3) & (k==4)

Логическое «либо»
x=1 либо x=2
(x==1)| (x==2)

Отрицание «не»
a≠1.9
~(a==1.9)

Пример

Операторы ветвления

Условный оператор
if

Синтаксис

if условие

команды MATLAB

end

Описание

Если условие правильно, то производятся команды MATLAB, размещенные меж ifи end, а если условие не правильно, то происходит переход к командам, расположенных опосля end.

Пример

Условный оператор
elseif

Синтаксис

if условие1

команды1

elseif условие2

команды2

………………………

elseif условиеn

командыn

else

команды

end

Описание

Зависимо от выполнения того либо другого условия работает соответственная ветвь программки, если все условия неверны, то производятся команды, размещенные опосля else.

Пример

Оператор
switch

Синтаксис

switch переменная

case

команды1

case

команды2

……………………

caseзначениеn

командыn

otherwise

команды

end


Любая ветвь определяется оператором case, переход в нее производится тогда, когда переменная оператора switch воспринимает значения, данные в остальных case, уже не проверяются. Если пригодных значений для переменной не нашлось, то производится ветвь программки, соответственная otherwise.

Пример

Прерывания цикла. Исключительные ситуации.

Оператор
break

Синтаксис

break

Оператор break употребляется при организации повторяющихся вычислений: for…end, while…end. При выполнении условия

if условие

break

end

оператор break кончает цикл (for либо while) и происходит выполнение операторов, которые размещены в строчках, последующих за end. В случае вложенных циклов break производит выход из внутреннего цикла.

Обработка исключительных ситуаций, оператор
try

catch

Синтаксис

try

операторы, выполнение которых

может привести к ошибке

catch

операторы, которые следует выполнить

при появлении ошибки в блоке

меж try и catch

end

Описание

Система try…catch дозволяет обойти исключительные ситуации (ошибки, приводящие к окончанию работы программки, к примеру, воззвание к несуществующему файлу) и сделать некие деяния в случае их появления.

Пример

Сервисные функции

disp

производит вывод текста либо значения переменной в командное окно

input
– производит запрос на ввод с клавиатуры. Употребляется при разработке приложений с интерфейсом из командной строчки.

eval

делает содержимое строчки либо строковой переменной, как команды MATLAB

clear
– удаляет переменные рабочей среды.

с
lc
– производит чистку командного окна

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

help
имя_функции

Задания на выполнение лабораторной работы

Номер определенного варианта задания определяется педагогом.

Задание №1

Данное задание предполагает нахождение для некой совокупы данных алгебраического интерполяционного многочлена степени n: Pn




.

Цель работы:

Нужно составить программку вычисления коэффициентов алгебраического интерполяционного многочлена Pn





0



1



an
xn

.

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

Пусть, к примеру, имеется последующая совокупа данных:




0
1
2
3


i


1,2
1,4
1,6
1,8

yi


8,3893
8,6251
8,9286
8,9703

Коэффициенты
0



1


an

определяются из решения системы уравнений:

Тут



количество данных пар точек (


),


0



1


an

– разыскиваемые коэффициенты многочлена Pn





0



1



an
xn

).

Требования к программке

При выполнении данной работы нужно:

· Задать границы отрезка [x0, xn]
, на котором строится интерполяционный многочлен P(x)

· Задать n
количество отрезков интерполяции (либо, что то же самое, степень многочлена)

Примечание: x0
, xn
, n
вводятся с клавиатуры.

· Для получения начальных данных (x, y)
(количество пар точек (xi,
yi
)

, по которым строится интерполяционный многочлен P(x)
n1=n+1
) предугадать:

— Ввод произвольно расположенных узлов xi,
i=0, n

с клавиатуры

— Расчет узлов xi
, i=0, n,

соответственных равномерному расположению аргумента x
на отрезке [x0, xn]

— В пп. 1,2 значения yi
, i=0, n

или вводятся с клавиатуры (если начальная функция неведома), или рассчитываются по данной функции f(x)
. Выражение, определяющее функцию, вводится с клавиатуры и обязано соответствовать правилам записи выражений в MATLAB

— Ввод данных (xi,
yi,
i=0, n

) из файла

· Решить систему уравнений для определения коэффициентов многочлена P(x)

· Выстроить графики начальной таблично данной функции и многочлена P(x)

· Если начальные данные заданы в виде функции f(x), выстроить график погрешности интерполяции /f(x) – P(x)/. Высчитать наибольшее по модулю

При выполнении крайнего пт на отрезке [x0, xn]
взять не наименее 500 точек для проведения расчетов

Задание №2

Интерполяция сплайнами

Цель работы:

Нужно составить программку вычисления коэффициентов и построения сплайн-функции S(x), «склеенной» из кусков многочленов 3‑го порядка Si




которые имеют специальную форму записи:

,

функция Si




определена на отрезке [xi
-1
, xi
],

Требования к программке

При выполнении данной работы нужно:

· Задать границы отрезка [x0, xn], на котором строится сплайн-функция S(x)

· Задать n – количество отрезков интерполяции, на любом из которых строится кубический многочлен Si(x).

· Примечание: x0, xn, n вводятся с клавиатуры.

· Организовать ввод начальных данных (x, y) (количество пар точек (xi, yi), по которым строится сплайн-функция S(x), n1=n+1), предусмотрев:

— Ввод произвольно расположенных узлов xi, i=0, n с клавиатуры

— Расчет узлов xi, i=0, n, соответственных равномерному расположению аргумента x на отрезке [x0, xn]

— В пп. 1,2 значения yi, i=0, n или вводятся с клавиатуры (если начальная функция неведома), или рассчитываются по данной функции f(x). Выражение, определяющее функцию, вводится с клавиатуры и обязано соответствовать правилам записи выражений в MATLAB

— Ввод данных (xi, yi, i=0, n) из файла

· Для краевых критерий 1–3 высчитать коэффициенты di кубических сплайнов

— S1»(x0)=0, S3»(x3)=0

— S1′(x0)=f ‘(x0), S3′(x3)=f ‘(x3)

— S1»(x0)=f «(x0), S3»(x0)=f «(x3)

· Для определения коэффициентов естественного кубического сплайна (краевые условия 1) нужно решить последующую систему уравнений:

·

Коэффициенты σ0
=0,σn
=0

· Выстроить графики начальной функции и сплайн-функций для всех 3-х типов краевых критерий.

· Выстроить графики функций погрешности сплайн-интерполяции f(x) – S(x) для всех 3-х типов краевых критерий.

· Высчитать наибольшие по модулю значения погрешности интерполяции на данном промежутке [x0, xn] для всякого вида сплайна.

Примечание:

В пакете MATLAB индексы одномерных и двумерных массивов начинаются с 1, а не с 0. Учитывать это при составлении программки.


Задание №3

Аппроксимация функции способом меньших квадратов (МНК).

Данное задание предполагает нахождение для некой совокупы данных аппроксимирующей функции (многочлена степени m), построенной способом меньших квадратов (МНК).

Цель работы:

Нужно составить программку нахождения коэффициентов многочлена φ



0



1




an


xm

способом меньших квадратов.

Советы по выполнению работы:

Пусть, к примеру, имеется последующая совокупа данных:



i


1,2
1,4
1,6
1,8
2,0
2,2
2,4
2,6
2,8
3,0

yi


8,3893
8,6251
8,9286
8,9703
9,1731
9,1784
8,8424
8,7145
8,3077
7,9611

Поиск нужных коэффициентов осуществляется последующим образом:

где

количество точек (


),



– степень искомого многочлена,



0






1




am


– разыскиваемые коэффициенты (φ








0






1








am
xm


).

Требования к программке

При выполнении данной работы нужно:

· Задать границы отрезка [x1, xn], на котором строится аппроксимирующая функция φ(x)=a0+a1*x+… an * xm

· Задать m – степень многочлена

· Примечание: x1, xn, m вводятся с клавиатуры.

· Для получения начальных данных (x, y), по которым строится аппроксимирующая функция φ(x)=a0+a1*x+… an* xm
предугадать:

— Ввод произвольно расположенных узлов xi, i=1, n с клавиатуры

— Расчет узлов xi, i=1, n, соответственных равномерному расположению аргумента x на отрезке [x1, xn]

— В пп. 1,2 значения yi, i=1, n или вводятся с клавиатуры (если начальная функция неведома), или рассчитываются по данной функции f(x). Выражение, определяющее функцию, вводится с клавиатуры и обязано соответствовать правилам записи выражений в MATLAB

— Ввод данных (xi, yi, i=1, n) из файла

· Решить систему уравнений для определения коэффициентов многочлена φ(x)

· Выстроить графики начальной таблично данной функции и многочлена φ(x)

· Если начальные данные заданы в виде функции f(x), выстроить график погрешности интерполяции /f(x) – φ(x)/. Высчитать наибольшее по модулю

При выполнении крайнего пт на отрезке [x1, xn]
взять не наименее 500 точек для проведения расчетов

Требования к оформлению лабораторной работы

Отчет должен содержать:

1. Постановку задачки

2. текст программки

3. Результаты тестирования

Примечание тексты программ должны быть снабжены комментами.

Перечень литературы

1. Ануфриев И.Е. Самоучитель Matlab 5.3/6.x – СПб.: БХВ-Петербург, 2003. – 736 с.: ил.

2. В.П. Дьяконов MATLAB 6.5 SPI/7 + Simulink 5/6 в арифметике и моделировании. Серия «Библиотека специалиста». – М.: СОЛОН-Пресс, 2005. – 576 с.: ил.

3. Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. MathLab 7. – СПб.: БХВ-Петербург, 2005. – 1104 с.: ил.

]]>