Упражнение 3. Matlab

From Ilianko

Управляващи оператори

if

if <expression>
  statment
end

if <expression>
 statement;
else
 statement;
end

if <expression>
 statement;
elseif
 statement;
else
 statement;
end

Релации и логически оператори

< , <= , >, >= , ~=, ==

&, &&, |, ||, ~

Логическо равенство да не се ползва за числа с плаваща запетая


switch

switch expression
 case val1
   statement
 case {val2, val3
   statement
 otherwise
   statement
end

Логическо равенство да не се ползва за числа с плаваща запетая

for

for index = nachalo:stypka:kraj % ako nqma stypka tq e 1
  statement
end
for i = A % A e vektor/matrica
  statement
end

while

while expression
 statemnet
end

Dopълнителни управляващи оператори

break continue - преминаване към следваща итерация на for или while цикъл pause - пауза до натискане на клавиш ( pause(4) <=> sleep(4) ) keyboard - predawa uprawlenieto на клавиатурата (използва се при дебъгване). Спира се програмата и може да проверяваме всички стойност return - връща се към програмата след keyboard

файл функции

function [a, b, c] = ime(x, y, z)
  global p, q;
  a = x;
  b = y;
  c = z;
end   

Записва се като ime.m

function y = signum(x)
  % сигнум функция
  if x>0
     y = 1;
  elseif x<0
     y = -1;
  else
     0
  end
end
>> signum(-5)

ans =

    -1

>> signum(0)

ans =

     0

>> signum(5)

ans =

     1

Символни преобразувания

clear - изчистване на workspace

Задаване на символни величини

оператори за създаване на символни величини

sym - по-универсален

x = sym('x') ; 
x = 
x
>> y = pi
y =
   3.1416

Символите се показват по вляво!

Дефиниране на цял стринг

>> eq = sym ('a*x^2')
eq =
a*x^2
Диференциране по x
>> diff(eq,x)
ans =
2*a*x

Matrica на хилберт

H = hilb(5)

H =

   1.0000    0.5000    0.3333    0.2500    0.2000
   0.5000    0.3333    0.2500    0.2000    0.1667
   0.3333    0.2500    0.2000    0.1667    0.1429
   0.2500    0.2000    0.1667    0.1429    0.1250
   0.2000    0.1667    0.1429    0.1250    0.1111

Извеждане в символичен вид

>> sym(H)
ans =

[   1, 1/2, 1/3, 1/4, 1/5]
[ 1/2, 1/3, 1/4, 1/5, 1/6]
[ 1/3, 1/4, 1/5, 1/6, 1/7]
[ 1/4, 1/5, 1/6, 1/7, 1/8]
[ 1/5, 1/6, 1/7, 1/8, 1/9]

В този случай няма да има грешка от закръгляне

>> det(H)
ans =
  3.7493e-12