Brian_-_Matlab_R2007_s_nulya_33 (771739), страница 15
Текст из файла (страница 15)
Смотрите также раздел «Дополнительно об М-файлах» ниже. Некоторые команды, например, команда ойе45 (команда вычисления обыкновенных числовых дифференциальных уравнений (ОРЕ), который мы будем использовать позже, в главе 10) требуют, чтобы их первый аргумент был функцией, а если точнее, либо встроенной функцией (например, ос)е45(й, (О 2], 1)), либо дескриптором функции, который представляет собой название встроенной функции или М-файл-функцию, предваряемую специальным символом Ф (например, оае45(6кипо, ]О 2], 1)).
Синтаксис с использованием символа 6 был введен в программу МАТ(АВ версии 6; в более ранних версиях программы заменой служило заключение имени функции в одинарные кавычки, чтобы представить ее в виде строки. Но с кавычками или без них введение символьного выражения при первом вводе команды ойе45 приведет к отображению сообщения об ошибке. С другой стороны, большинство символьных команд требует в качестве первого аргумента либо строку, либо символьное выражение, но не функцию. Важным отличием строк от символьных выражений является то, что программа МАТ(АВ автоматически заменяет заданные пользователем функции и переменные на символьные выражения, но не на строки.
(Это еще одна причина, по которой одинарные кавычки, в которые вы заключаете строку, запрещают вычисление.) Например, если вы введете » )з э(Ф) в" Зз хпк( ')з(в) ', 'в') Иагпйпд: Ехр11с1С 1пеедга1 соц1с) поп Ье йоипс]. Хп сЬаг.1пс ас 9 1пс(Ь(с), с) то интеграл невозможно будет вычислить, потому что строка )г будет выглядеть, как неизвестная функция. Но если вы введете » вузвв в, Япв()з(в), в) МАТ(.АВ 1/4*С"4 тогда предыдущее определение Ь заменится на символьное выражение Ь(В) пе- ред выполнением интегрирования. Полстановка В главе 2 мы рассмотрели процесс создания анонимной или «1п1аие» функции из выражения.
Вы можете включать числа в такую функцию, например, для создания графика или таблицы значений. Но вы можете также напрямую заменять числовые значения на выражения, используя команду виьв. Подробности изложены в подразделе «Подстановка в символьных выражениях» в главе 2. дополнительно об М-файлах Файлы, содержащие выражения программы МАТЮКАВ, называются М-файлами. Существует два типа М-файлов: М-файлы-функции, которые принимают аргументы и производят вывод результата, и М-файлы-сценарии, которые выполняют серии выражений программы МАТ(.АВ.
В главе 3 мы создавали и использовали оба типа. Этот раздел содержит дополнительную информацию по М-файлам. Переменные в М-файлах~менарнях При выполнении М-файла-сценария используются переменные, которые принадлежат вашей рабочей области (отображаются в окне МЧогкэрасв (Рабочая область)); то есть они содержат значения, заданные вами ранее в сессии программы МАТ(.АВ, и сохраняются после того, как выполнение сценария закончится. Рассмотрим показанный ниже однострочный М-файл — сценарий с именем всйр1вх1.пк и = (1 2 3 4)) При введении команды всгХрвех1 данный вектор присваивается переменной и, но вывод результата при этом не отображается.
А теперь рассмотрим другой М-файл — сценарий с именем всг(р1ек2. и: л = 1еияГЬ(и) Если вы заранее не задали и, то после введения команды всгарсех2 будет выведено сообщение об ошибке. Однако если вы введете всгаргех2 после запуска всгвркех1, тогда значение и из первого сценария будет использовано во втором сценарии и результат и = 4 будет отображен на экране. Если вы не хотите, чтобы результирующий вывод зависел от более ранних вычислений в сессии МАТОВ, вставьте строку с1еаг а11 в начало М-файла, как мы предлагали это сделать в главе 3 при рассмотрении структуры М-файлов- сценариев.
77 Глава 4. Выход зв пределы основ Переменные в М-файлах-функииях Переменные, которые используются в М-файле-функции, являются локальными, то есть, не оказывают влияния на переменные в вашей рабочей области и не подвергаются никакому влиянию со стороны этих переменных. Рассмотрим показанный ниже однострочный М-файл-функцию с именем вс(зп: Еппскзоп г = вц(к) ч вц(х) гекпгпв кЬе всгпаге оЕ х. г = х."2 Ввод команды вя(3) даст ответ 9, независимо от того, заданы или нет х и в в вашей рабочей области. Запуск М-файла не задает эти переменные в рабочей области и не изменяет их параметры, если эти переменные в рабочей области были заданы ранее. Структура М-файлов-функций Первая строка в М-файле-функции называется строкой определения функции; эта строка задает имя функции, а также количество и порядок аргументов ввода и вывода.
За строкой определения функции может следовать несколько строк-комментариев, начинающихся со знака процента %. Эти строки называются текстом справки и отображаются при вводе команды Ье1р. В показанном выше М-файле вг)лп присутствует только одна строка текста справки; она отображается при введении команды Ье1р вс. Остальные строки составляют тело функции; они содержат выражения программы МАТ(.АВ, которые производят вычисление значений функции. Кроме того, строки комментариев (строки, начинающиеся со знака процента %) могут быть в любой области М-файла. Все выражения в Мфайле — функции, которые обычно производят вывод результатов, должны оканчиваться точкой с запятой с целью прерывания дальнейшего вывода.
М-файлы — функции могут иметь множество аргументов ввода и вывода. Ниже показан пример файла с именем ро(вгсоогсйпа(евлп с двумя аргументами ввода и с двумя аргументами вывода: Еопскзсп [г, СЬека] = ро1агссогсзпакев (х, у) зз ро1агсоогсвпакев (к, у) гегпгпв СЬе ро1аг соога[пасев зз оЕ сЬе рохас мЕЬЬ гессапяп1аг соогствпасев (к, у) к ваго(х"2 + у"2)) СЬека = агап2 (х, у)) Если вы введете ро1агсоогсвпакев (3, 4), то только первый аргумент вывода будет возвращен и сохранен под именем апв; в данном случае ответ равен 5. Чтобы увидеть оба результата вывода, вы должны присвоить эти результаты переменным, заключенным в квадратные скобки: ув МАТ(.АВ » (г, ВЬека] = ро1агсоог((1пакев (3, 4) сЬеса = 0.9273 Введя г = ро1агсоогс31аавев (3, 4), вы можете присвоить первый аргумент вывода переменной г, но вы не сможете получить второй аргумент вывода; в действительности, при вводе кЬева = ро1агсоогйапакев (3, 4), переменной вЬеса будет присвоен первый результат вывода: 5.
Комплексная арифметика Программа МАТ1 АВ выполняет большую часть своих вычислений, используя комплексные числа;то есть числа в форме а + Ь1, где а = 1-1, а аиЬявляются вещественными числами. Комплексное число а в программе МАТ1.АВ представлено как 1. Вы, возможно, никогда не столкнетесь с вводом комплексного числа во время сессии, но программа МАТ(АВ часто воспроизводит ответ, включающий комплексные числа. Например, многие полиномы (многочлены) с вещественными коэффициентами имеют комплексные корни: » во1зге('х"2+2*х+2=0') апв = -1+1 -1-1 Оба корня этого квадратного уравнения являются комплексными числами, выраженными в терминах числа 1. Некоторые простые функции также возвращают комплексные значения для определенных значений аргумента. » 1ос(-1) апя 0 + 3.14161 Вы можете использовать программу МАТ(.АВ для вычислений, включающих ком- плексные числа, с помощью ввода чисел в форме а + Ь*а. » (2 + Зьй)ь(4 — а) апв 11.0000 + 10.00001 Комплексная арифметика является мощным и полезным инструментом.
Даже если вы не собираетесь использовать комплексные числа, вы должны знать о возможности ответов с комплексными значениями при вычислении выражений МАТ(АВ. Глава 4. Выход за пределы основ Ьополнительно о матрицах 79 В дополнение к обычным алгебраическим методам комбинирования матриц (матричное умножение) мы можем также комбинировать матрицы поэлементно. В частности, если А и В имеют одинаковый размер, тогда выражение А. *В представляет собой поэлементное произведение А и В, то есть матрицу, элемент 1, 3 которой является произведением элементов Е и 3 значений А и В.
Аналогично выражение А./В является поэлементным частным А и В, а А."о представляет собой матрицу, сформированную возведением каждого элемента А в степень о. Как правило, если Е является одной из встроенных математических функций программы МАТ(АВ или является заданной пользователем векторизованной функцией, тогда выражение Е (А) представляет собой матрицу, полученную по- элементным вычислением Е для А. Посмотрите, что получится, когда вы введете команду вцкк(А), где А — это матрица, заданная в начале раздела «Матрицы» в главе 2. Программа МАТ(.АВ располагает несколькими командами для создания специаль- ных матриц. Команды веков(п, 1в) и оцеа(п, т) создают матрицы размером пхж из нулей и единиц соответственно, а команда еуе(ц) воспроизводит тожде- ственную матрицу размера лхх.
Решение линейных систем Предположим, что А является невырожденной матрицей размером пхп и Ь есть столбцовый вектор длины ц. Тогда ввод выражения х МЬ в числовой форме вычисляет уникальное решение для Аэх Ь. Для получения более полных сведений введите Ье1р х1евххИе. Если А и Ь являются символьными, а не числовыми, тогда выражение х ~ А~Ь вычисляет решение для А*х = Ь в символьной форме. Чтобы найти решение в символьной форме, когда оба ввода числовые, введите х = в)дв(А) ХЬ. Вычисление значений собственных и векторов собственных Значения собственные квадратной матрицы А вычисляются с помощью еЕВ(А). Команда [(), В] = ехВ(А) вычисляет как вектора, так и значения собственные.