Лекція 3 . Символьні розрахунки в matlab . Пакет mupad . ...

18
Лекція 3 . Символьні розрахунки в Matlab. Пакет MuPAD. Елементи програмування

Upload: gwyn

Post on 23-Feb-2016

86 views

Category:

Documents


0 download

DESCRIPTION

Лекція 3 . Символьні розрахунки в Matlab . Пакет MuPAD . Елементи програмування. Умовний оператор if. Повна форма. Скорочена форма. if умова then команди else команди end_if. if умова then команди end_if. Приклад використання. f:=x->if x

TRANSCRIPT

Page 1: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Лекція 3.Символьні

розрахунки в Matlab.

Пакет MuPAD. Елементи

програмування

Page 2: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Умовний оператор if

if умова thenкоманди

elseкоманди

end_if

f:=x->if x<0 then x^2*exp(x) else sin(2*PI*x)^4*exp(-x^2) end_if

if умова thenкоманди

end_if

Повна форма Скорочена форма

Приклад використання

Page 3: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Умовний оператор if (продовження)

Page 4: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Логічні оператори

Оператор Пояснення

and логічне "і": A and B

or логічне "або": A or B

xor логічне "виключне або": A xor B

not логічне заперечення: not A

==> імплікація: A==>B це (not A) or B<=> тотожність: A<=>B це

(A ==> B) and (B ==> A)

Page 5: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Оператори порівняння

Оператор Пояснення

= рівність: A=B

<> нерівність: A<>B

> "більше": A>B

< "меньше": A<B

>= "більше або рівне": A>=B

<= "меньше або рівне": A=<B

Page 6: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Вкладені умовні оператори if

if умова then команди else if умова then команди else if умова then команди else команди end_if end_ifend_if

Загальна форма

if умова then команди elif умова then команди elif умова then команди else командиend_if

Альтернативна форма

Замість конструкції else if ... end_if використовуємо інструкцію elseif

Page 7: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Умовний оператор - приклад

f:=x->if x<0 or x>4 then cos(2*PI*x)^2 else if x<1 then 1-x^2 else if x<3 then sin(2*PI*x) else x-3 end_if end_if end_if

Повна форма

Скорочена форма

f2:=x->if x<0 or x>4 then cos(2*PI*x)^2 elif x<1 then 1-x^2 elif x<3 then sin(2*PI*x) else x-3 end_if

𝑓 (𝑥 )={c os (2𝜋 𝑥)2 при𝑥<0та𝑥>41−𝑥2 при0≤𝑥<1

sin (2𝜋 𝑥) при1≤ 𝑥<34−𝑥 при3≤ 𝑥≤ 4

Page 8: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Оператор вибору

case виразof значення_1 doкоманди_1of значення_2 doкоманди_2...otherwiseкомандиend_case

Загальна форма

Виконуються всі команді від місця, де є співпадіння значень, і до кінця оператора (інструкція end_case). Для завершення case-блоку використовують інструкцію break. Блок otherwise не є обов'язковим

Page 9: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Оператор вибору

GetColor:=x-> case x of 1 do print(Unquoted,"1 - означает КРАСНЫЙ"); break of 2 do print(Unquoted,"2 - означает ЖЕЛТЫЙ"); break of 3 do print(Unquoted,"3 - означает ЗЕЛЕНЫЙ"); break otherwise print(NoNL,x); print(Unquoted," - не знаю такого цвета") end_case

Приклад використання

Послідовність команд розділяється крапкою з комою (тобто ;). Ключове слово NoNL є абревіатурою від No New Line.

Page 10: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Оператор вибору

TestNumber:=x-> case x of 1 do of 2 do of 3 do of 5 do of 8 do print(Unquoted,"Это число Фибоначчи!"); break of 6 do print(Unquoted,"Совершенное число: 6=1+2+3 и 6=1*2*3"); break otherwise print(Unquoted,"Ничего интересного!") end_case

Приклад використання

Page 11: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Оператор циклу for

for змінна from значення_1 to значення_2 step значення_3 doкомандиend_for

Загальна форма

Крок инкременту step вказувати не обов'язково. В цьому випадку індексна змінна збільшується на одиницю. Щоб змінна зменшувалась, замість to використовуємо інструкцію downto.

for змінна in множина doкомандиend_for

Page 12: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Оператор циклу for

Fib:=n->(a:=1;b:=1;for k from 3 to n dob:=a+b;a:=b-a;end_for;b)

Приклад використання

Page 13: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Оператори циклу while та repeat

while умова doкомандиend_while

Загальна форма

Різниця в тому, коли перевіряється умова. Для while - умова продовження виконання, для repeat - умова завершення виконання

repeatкомандиuntil умова end_repeat

Page 14: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Оператори циклу while та repeat

a:=1:b:=1:i:=2:print(NoNL,a);print(NoNL," ");print(NoNL,b);while i<20 dob:=a+b:a:=b-a:print(NoNL," ");print(NoNL,b);i:=i+1:end_while:

Приклади використання

a:=1:b:=1:i:=2:print(NoNL,a);print(NoNL," ");print(NoNL,b);repeatb:=a+b:a:=b-a:print(NoNL," ");print(NoNL,b);i:=i+1:until i>=20 end_repeat:

Page 15: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Створення процедуриЗагальна схема

Якщо процедура повертає результат, використовують інструкцію return(). Значення, що повертається процедурою, вказується аргументом інструкції

ім'я_процедури:=proc(аргументи)local локальні_змінні;beginкомандиend_proc

Page 16: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Створення процедуриПриклад застосування

FibNums:=proc(n)local i,a,b;begina:=1:b:=1:for i from 3 to n dob:=a+b:a:=b-a:end_for:return(b);end_proc:

Page 17: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Створення процедуриПриклад застосування

FNums:=proc(n) begin if n=1 or n=2 then return(1): else return(FNums(n-1)+FNums(n-2)): end_if: end_proc

Page 18: Лекція  3 . Символьні розрахунки в  Matlab . Пакет MuPAD .  Елементи програмування

Зауваження

В якості завершальної інструкції замість ключових слів end_for, end_while, end_repeat, end_if, end_case та end_proc у відповідних місцях можна використовувати ключове слово end