Матлаборатория-3
Александр СОЛОВЕЙ
|
N 4 (435) 20.01.2007
|
Продолжение. Начало см. в МК № В прошлых выпусках мы ознакомились с основными возможностями MatLAB, научились работать с матрицами, строить графики и решать системы уравнений. Сегодня речь пойдет о трехмерных представлениях MatLAB и о создании собственных функций в среде.
Графики функций с несколькими неизвестными
Точно так же, как и обычным графикам функций, графику, зависящему от нескольких переменных, необходимо задать область определения. Для этого в MatLAB содержится функция meshgrid, определяющая сетку вывода графика.
Приведем пример создания графика функции
z=x3/2+xy+y3/2:
Результат вы можете увидеть на рисунке (
рис. 1).
Каркасные поверхности создаются командой surf, по синтаксису схожей с mesh (
рис. 2):
Задать выводимое полотно можно командой shading. Так, при shading flat поверхность состоит из квадратиков цвета, а shading interp из переливающейся радуги (как на рисунке).
Команды surfc, meshc дополнительно к построению отображают проекции изгибов фигуры.
Обширны возможности MatLAB и по созданию контурных графиков. Задав массив levels с определенными уровнями, можно создавать контурные графики командами contour, contourf (двухмерные графики поверхностей), contour3 (3D-график).
Создание функций в MatLAB
Каждая функция MatLAB (как штатная, так и создаваемая пользователем) хранится в одноименном файле с расширением .m. Создать файл достаточно просто:
File > New > MFile откроет
редактор Mфайлов. Начинается функция со слова
function, после чего следует имя результата (или множество, заключенное в квадратные скобки, если результатов несколько) и список передаваемых параметров. Операторных скобок в MatLAB нет (по крайней мере, я не встречал). Конец блока, как и конец функции, обозначается словом end.
Пример функции, вычисляющей корни квадратного выражения:
Поместим этот текст в файл qsolve.m.
Теперь, вызвав функцию [ans1, ans2] = qsolve(1,4,1), мы получим корни квадратного уравнения
x2+4x+1=0.
Работа с полиномами
Прежде чем описывать работу с полиномами, расскажу о замечательной функции pretty, которая позволяет выводить любые выражения в более дружественном для человека формате так, например,
(x^3)/a+x^2+x отобразится почти такой, как напечатана в учебнике, разве что шрифтом одного размера (
рис. 3).
Все операции над символическими переменными и функциями должны быть описаны словами sym и syms соответственно, рассмотрим на примере:
В данном примере использовалась функция simple она упрощает полином, перебирая всевозможные методы. Остальные, наиболее используемые методы смотрите в
таблице 1.
Нахождение пределов, интегралов и производных
MatLAB предоставляет потрясающие возможности для настоящих «маньяков математики» по части математического анализа. Все они неплохо документированы, я же расскажу об основных, особенно полезных большинству учащихся и студентов.
Функция limit определяет предел функции. Второй и третий аргумент могут указывать, какая переменная и куда стремиться, четвертый же, представленный строковыми константами left и right, позволяет определить поиск предела слева или справа.
Для примера найдем предел функции
sin(x)/x, где
x стремится к нолю.
Если предел стремится к бесконечности, указывается служебное слово inf.
Нахождение производных осуществляется функцией diff.
При необходимости найти вторую, третью, n-ую производную номер указывается вторым аргументом функции.
Ну и наконец, интегралы находятся функцией int. При необходимости найти определенный интеграл пределы указываются третьим и четвертым аргументом. Вторую же позицию занимает переменная интегрирования:
Когда будете решать не забывайте дописывать свободный член (+C), MatLAB его не ставит.
Рассмотрим более сложный пример: двойной интеграл (
рис. 4).
Решение дифференциальных уравнений
Для аналитического решения дифференциальных уравнений распространена всего одна, но очень мощная в этом плане функция dsolve. Она может принимать неограниченное число аргументов с указанием уравнений. Производные функций задаются в уравнении как
DNy, где
N порядок производной. По определенным причинам неизвестные в алгоритме функции называются не
x, а
t на это следует обратить внимание.
Для примера:
y’’-2y’=2e^x; y(1)=-1; y’(1)=0
Итоги
Надеюсь, моя трилогия помогла вам с расчетами в математике и других науках, дала возможность проверить ответ в уравнении из учебника, ну или хотя бы просто обогатила багаж знаний. В случае вопросов пишите на электронную почту, указанную под заголовком статьи.
|