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
]]>