>> а = 7.5
>> b = 3.342
>> c = myfile(a, b)
c = 8.2109
Типы M-файлов. Существует два типа M-файлов: М-сценарии и М-функции со следующими характеристиками
Таблица 1.1.
М-сценарий | М-функция |
Не использует входных и выходных аргументов | Использует входные и выходные аргументы |
Оперирует с данными из рабочей области | По умолчанию, внутренние переменные являются локальными по отношению к функции |
Предназначен для автоматизации последовательности шагов, которые нужно выполнять много раз | Предназначена для расширения возможностей языка MATLAB (библиотеки функций, пакеты прикладных программ) |
Структура M-файла. М-файл, оформленный в виде функции состоит из следующих компонентов
function f = fact (n) - Строка определения функции
% FACT Вычисление факториала. - Первая строка комментария
% fact(n) возвращает n! - факториал числа n - Комментарий
% Вычислить fact (n) = prod(1:n).
f = prod(1:n); - Тело функции
Структура этой простейшей функции содержит компоненты, которые являются общими для любых функций системы MATLAB:
· Строка определения функции задаёт имя, количество и порядок следования входных и выходных аргументов.
· Первая строка комментария определяет назначение функции. Она выводится на экран с помощью команд lookfor или help имя каталога.
· Комментарий выводится на экран вместе с первой строкой при использовании команды help имя функции.
· Тело функции - это программный код, который реализует вычисления и присваивает значения выходным аргументам [13].
1.3. Обзор пакета Mathematica.
1.3.1. Введение.
Система Mathematica, созданная лет десять тому назад в своих последних версиях (Mathematica 4.0/5.0/6.0) имеет чрезвычайно широкий набор средств, переводящих сложные математические алгоритмы в программы. Все так называемые элементарные функции и огромное количество неэлементарных. Алгебраические и логические операции. По сути дела все алгоритмы, содержащиеся в курсе высшей математики ведущего технического вуза заложены в память компьютерной системы Mathematica. Это значит, что большинство упражнений из курса высшей математики может быть решено с помощью всего лишь одной команды. Действительно, все упражнения из линейной алгебры (включая такие нетривиальные вещи как приведение квадратичных форм к каноническому виду, приведение линейного оператора к жордановой форме). Все упражнения из анализа, теории дифференциальных уравнений (как обыкновенных, так и в частных производных). С помощью системы Mathematica можно вычислять интегралы (определенные и неопределенные), решать дифференциальные уравнения (численно и аналитически). Кроме того, Mathematica не только дает окончательный ответ, но может описать промежуточные вычисления (например, разложение правильной рациональной функции в сумму элементарных дробей, что требуется при интегрировании рациональных функций) [13].
Mathematica имеет мощный графический пакет. С ее помощью можно строить графики очень сложных функций одного и двух переменных.
Сверх всего этого Mathematica решает задачи, известные только специалистам. Например, задачу Вороного. В этой задаче дано N точек на плоскости
P1, P2, ..., Pn и требуется разбить плоскость на многоугольники
S1, S2, ..., Sn так, чтобы
Sk=( X | r (X, Sk)< r (X, Sl), l≠k ).
По-прежнему задача решается одним нажатием клавиши.
Упомянем еще о некоторых преимуществах системы Mathematica.
Наберем на дисплее 1000! и нажмем клавишу Enter. Сразу же на экране появятся цифры. Их будет много, они займут весь экран. Придется прокрутить экран, прежде чем достигнем конца этой последовательности цифр. Таков результат вычисления тысяча факториал. Очень впечатляет. Можно взять и 10000!. Mathematica может работать с числами сколь угодно большими. (Заметим, что во многих компьютерных языках для действия с большими числами нужно предпринять дополнительные меры) [13].
Рассмотрим подробнее некоторые возможности пакета Matematica.
1.3.2. Основные возможности.
1.3.2.1. Арифметика.
Знакомство с работой Математики начнем с выполнения простейших арифме-тических вычислений. Вот какую команду следует ввести с клавиатуры, чтобы сложить 35 и 21:
35 + 21
А вот какую команду, чтобы вычесть 21 из 35:
35 - 21
Для того, чтобы умножить 35 на 21, можно ввести выражение 35*21 или выражение 35 21, в котором числа 35 и 21 разделены пробелом
35*21
Для того, чтобы разделить 35 на 21, следует ввести выражение 35/21
Здесь уместно заметить, что Математика поддерживает формат рациональных чисел, сколь бы велики ни были числитель и знаменатель несократимой дроби, т. е. рациональное число не переводится в десятичную дробь. Чтобы найти (приближенное) выражение рационального числа в виде десятичной дроби, следует выполнить команду
N[35/21]
По умолчанию, команда N выводит на экран 6 значащих цифр результата. Если требуется больше цифр, то нужно изменить предыдущую команду, указав, сколько значащих цифр надо вывести на экран:
N[35/21, 17]
Возведение в степень выполняется с помощью команды 35^21:
35^21
Все цифры результата верные, сколь бы ни были велики основание и показатель степени, если они целые числа. Рассмотренные арифметические операции можно производить и с рациональными числами
5/7 + 3/5
Арифметические вычисления в формате вещественных чисел, в отличие от вычислений в формате целых и рациональных чисел, приближенные, как в обычном калькуляторе, но с той существенной разницей, что пользователь может задавать любое количество значащих цифр вещественного числа. Вещественные числа представляются в виде a. b, где a - целая часть, а b - дробная часть числа, разделенные точкой, а не запятой:
22.6457543/32.2360755
Если производятся арифметические операции над числами, одно из которых вещественное, то результат вычисляется приближенно и представляется как вещественное число

Для того, чтобы ввести более сложные арифметические выражения, можно воспользоваться круглыми (и только круглыми) скобками:
((5/7)^5 + 7)^3
Извлечь квадратный корень из числа k можно, либо вычислив выражение Sqrt[k]. Cледует помнить, что если k целое или рациональное число, то вычисление произойдет только в случае, когда k точный квадрат целого или рационального числа:
Sqrt[529]
Если попытаться вычислить, например, ![]()
Sqrt[2]
то вычисления не произойдет, так как "Математика" сохраняет формат чисел в процессе вычислений. Это позволяет проводить в "Математике" символьные вычисления:
![]()
Для того, чтобы вычислить
приближенно, следует снабдить число 2 точкой, т. е. перейти к вещественным числам
Sqrt[2.]
или прибегнуть к помощи команды N:
N[Sqrt[2]]
Для некоторых часто встречающихся в математических преобразованиях иррациональных чисел в "Математике" закреплены специальные обозначения. Так, число p обозначено через Pi. Естественно, что можно узнать любое число знаков у p
N[Pi, 100]
1.3.2.2. Алгебра.
Одной из самых важных задач, рассматриваемых в алгебре, является нахождение корней многочленов. Пусть, например, требуется найти корни уравнения третьей степени
+ a x + b = 0, где a и b параметры. Как известно, имеются общие формулы для корней многочленов степени не выше четвертой, содержащие арифметические операции и радикалы [13]. Воспользуемся командой Solve (Решить) для того, чтобы получить корни рассматриваемого уравнения. Команда Solve имеет два аргумента: первый - уравнение, в котором знак равенства записывается с помощью удвоенного символа =, второй - неизвестная, относительно которой решается уравнение.
Solve[x^3 + a x + b == 0, x]
Ответ записан в виде заключенных в фигурные скобки трех выражений. Каждое выражение имеет вид { x -> корень }. Его не следует понимать в том смысле, что x стремится к пределу. Символ -> используется в Математике как знак подстановки! В ответе содержится символ I - мнимая единица. Можно попытаться найти в явном виде корни некоторых полиномиальных уравнений степени выше четвертой.
Solve[x^5 + x - 1 == 0, x]
В данном случае удалось получить корни явно. Обратимся однако к следующему примеру. Пусть требуется вычислить корни многочлена пятой степени
:
rts = Solve[x^5 + 2x - 1 == 0, x]
Подобный ответ означает, что формул для корней рассматриваемого уравнения не существует. Тем не менее, можно узнать численное значение всех пяти корней, вычислив выражение N[rts].
N[rts]
Судя по полученному ответу, рассматриваемый многочлен имеет один действительный корень, приближенно равный 0.486389, и четыре комплексных. Если желательна большая точность, ее легко можно получить, указав в качестве второго аргумента функции N число цифр в представлении результата
N[rts, 25]
Можно убедиться в правильности вычисления хотя бы одного, вещественного корня, нарисовав график многочлена
с помощью графической функции Plot
Plot[x^5+2x-1, {x, -1, 1}, AxesLabel-> {"x","y"}, AxesStyle->Thickness[0.01], PlotStyle->{Thickness[0.01],Hue[0]}, Background->GrayLevel[0.95]];
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Основные порталы (построено редакторами)
