]]> ]]>
Править | Обсудить | История

MATLAB

Дата создания:
конец 1970-ых
Создан под влиянием:
Парадигма:
Типизация:
Принятые расширения файлов:
.m
Реализации и версии (свернуть все | развернуть все):
Язык программирования

MATLAB (от matrix laboratory) — интерпретируемый язык программирования, предназначенный для решения вычислительных задач. Особенностями языка являются ориентация на работу с матрицами (отсюда неофициальный лозунг языка — Think vectorized, т.е. Думай векторами), готовые реализации ряда полезных алгоритмов, богатые возможности визуализации данных и взаимодействия с другими языками.

Язык MATLAB был создан в конце 1970-ых годов; он предназначался для работы с библиотеками численных методов, написанными на FORTRAN, не зная самого языка. Язык быстро обрел популярность среди людей, занимающихся прикладной математикой.

Элементы синтаксиса:

Комментарий до конца строки %
Комментарии, которые могут быть вложенными %( ... %)
Регистрозависимость да
Регулярное выражение идентификатора переменной [a-zA-Z][_a-zA-Z0-9]*
Присваивание значения переменной varname = value
Объявление переменной global varname
Группировка выражений ( ... )
Блок foo ... end, где foo - одно из { if, for, while, ... }
Тождественное равенство == eq isequal
Тождественное неравенство ~= ne
Сравнение < > <= >=
Определение функции function retval = f(para1, para2) retval = ...
Вызов функции f(a,b,...)
Вызов функции без параметров f
Последовательность , ;
Если - то if condition, ..., end
Если - то - иначе if c1, b1, elseif c2, b2, else, b3, end
Цикл с предусловием while c, ..., end
Цикл for - next для диапазона целых чисел с инкрементом на 1 for i = 1:10, ..., end
Цикл for - next для диапазона целых чисел с декрементом на 1 for i = 10, 1, -1 do ... end

Примеры:

Hello, World!:

Пример для версий GNU Octave 3.2.3

Первая функция аналогична printf в C. Вторая — специфична для MATLAB.

printf("Hello, World!\n");

disp("Hello, World!");

Факториал:

Пример для версий GNU Octave 3.2.3

Используется встроенная функция factorial. Отметим, что на числах такого масштаба результат получается точный, но в общем случае Octave не предназначен для вычислений произвольной точности, и большие значения факториала будут вычисляться с ошибками.

for i = 0 : 16
  printf("%d! = %d\n", i, factorial(i));
endfor

Факториал:

Пример для версий GNU Octave 3.2.3

Используется рекурсивное вычисление факториала. Точка с запятой в конце строки подавляет автоматический вывод только что вычисленного значения (в данном случае fact) в интерактивном режиме, чтобы не засорять отформатированный вывод.

fact = 1;
for i = 0 : 16
  printf("%d! = %d\n", i, fact);
  fact *= i+1;
endfor

Факториал:

Пример для версий GNU Octave 3.2.3

Используется рекурсивное вычисление факториала.

function f = fact(n)
  if (n <= 1)
    f = 1;
  else
    f = n * fact(n - 1);
  endif
endfunction

for i = 0 : 16
  printf("%d! = %d\n", i, fact(i));
endfor

Числа Фибоначчи:

Пример для версий GNU Octave 3.2.3

Используется рекурсивное определение чисел Фибоначчи.

function f = fib(n)
  if (n <= 1)
    f = n;
  else
    f = fib(n - 1) + fib(n - 2);
  endif
endfunction

for i = 1 : 16
  printf("%d, ", fib(i));
endfor
disp("...");

Квадратное уравнение:

Пример для версий GNU Octave 3.2.3

За счет того, что Octave предназначен для работы с математическими задачами, в нем есть ряд встроенных численных методов решения стандартных задач, в том числе и нахождения корней полиномов. Чтобы найти корень полинома, достаточно вызвать функцию roots для вектора-строки, составленного из коэффициентов полинома в порядке убывания степени (т.е. коэффициент при максимальной степени x идет первым).

roots([2 -3 1])

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам