Главная страница
Навигация по странице:

  • Листинг Прямое и обратное преобразование Лапласа \ 2 2 х + 4 l a p l a c e , х + —3 s s

  • Листинг Прямое и обратное преобразование ; (-7 • z + 5 + 4 - х + 4 ztrans , х —* z(-7 • z + 5 + 4 • z 2 )

  • Evaluate / Floating Point

  • Листинг Вычисление выражения с плавающей точкой

  • 5.5.3. Последовательности символьных команд

  • Листинг 5.23. Фурье-преобразование, разложение вряд с заданной е f o u r i e r , х - i) 1 . х 2 2 4 + •s e r i e s , 5 4 32fourier . х 4.

  • Программирование

  • Кирьянов. Самоучитель MathCad 11. Кирьянов д в


    Скачать 10.75 Mb.
    НазваниеКирьянов д в
    АнкорКирьянов. Самоучитель MathCad 11.pdf
    Дата28.04.2017
    Размер10.75 Mb.
    Формат файлаpdf
    Имя файлаКирьянов. Самоучитель MathCad 11.pdf
    ТипРеферат
    #6148
    КатегорияИнформатика. Вычислительная техника
    страница12 из 36
    1   ...   8   9   10   11   12   13   14   15   ...   36
    Листинг 5.15.
    преобразование Фурье \
    c o s ( x ) f o u r i e r , x х +4 f o u r i e r , х ,
    Глава 5. Символьные вычисления Листинг 5.16. Обратное преобразование- 2 ЯД О) )
    5.4.2. Преобразование Лапласа (Преобразованием Лапласа называют интеграл от f (х) следующего вида = f(x) •
    о
    Рассчитывается преобразование Лапласа совершенно аналогично Фурье- преобразованию (см. предыдущий раздел Примеры преобразования Лапласа приведены в листинге 5.17.
    | Листинг Прямое и обратное преобразование Лапласа \
    2 2 х + 4 l a p l a c e , х + —
    3 s
    s
    2 4
    — invlaplace , s
    t +4 3 s s
    5.4.3. преобразование (преобразование функции f(x) определяется через бесконечную сумму следующего вида) = Пример преобразования приведен в листинге 5.18.
    Листинг Прямое и обратное преобразование ;
    (-7 • z + 5 + 4 - х + 4 ztrans , х —* z
    (-7
    • z + 5 + 4 • z
    2
    )
    2
    invztrans , z
    4 + n
    ( z - l )

    Часть II. Точные вычисления. Дополнительные возможности символьного процессора
    Выше в этой главе были разобраны основные приемы символьных вычислений в Mathcad. Они, как правило, были показаны на простых примерах,
    которые иллюстрировали ту или иную символьную операцию. Тем не менее, при проведении разнообразных (и численных тоже) расчетов в Mathcad возможности символьного процессора можно использовать более эффективно. Отметим некоторые из них. Применение функций пользователя
    При проведении символьных вычислений с оператором символьного вывода функции пользователя и переменные, определенные ранее в документе, воспринимаются символьным процессором корректно. Таким образом, имеется мощный аппарат включения символьных расчетов в программы пользователя. Примеры применения функции пользователя приведены в листингах 5.19 и 5.20. Сравните последние строчки этих листингов.
    Несмотря на их идентичность слева от знака символьного вывода, полученные результаты потличаются. Это связано стем, что в листинге 5.20 предварительно переменной х присвоено значение 4. Поскольку переменных влияют на символьные вычисления, то результат учитывает подстановку вместо х числа Листинг Функция пользователя в символьных вычислениях ( к , х ) := c o s { к х ( k , x )
    ух к , х ) s e r i e s , к 2
    +Листинг Значения переменных влияют на результат

    символьных вычислений ( k , x х : = 4
    f ( к , х ) s e r i e s , к , Напротив, при осуществлении символьных операций через меню Символика, символьный процессор "не видит" ничего, кроме выражения
    Глава 5. Символьные вычисления
    147
    в пределах которого находятся линии ввода. Поэтому ни функции пользователя, ни предварительно определенные значения каких-либо переменных никак не влияют на вычисления.
    Совет
    Используйте меню Symbolics (Символика, если требуется "сиюминутно" провести некоторые аналитические действия с выражением и получить ответ в общем виде, не учитывающем текущие значения переменных, входящих в выражение. Получение численного значения выражения
    С помощью символьного процессора можно рассчитать численное значение выражения (действительное или комплексное. Иногда такой путь представляется более удобным, чем применение численного процессора те. знака обычного равенства. Чтобы рассчитать значение некоторого выражения
    (рис. 5.21), выберите команду Symbolics/ Evaluate/ Symbolically
    Символика Вычислить / Символьно), либо пункт Symbolics
    / Evaluate / Floating
    Point (Символика Вычислить С плавающей точкой. В последнем случае
    Вам будет предложено с помощью диалога Floating Point Evaluation (Вычисления с плавающей точкой) задать точность вывода. В итоге применения данных команд Mathcad заменяет символьные результаты, где это возможно, значениями в виде чисел с плавающей точкой Mathcad
    Edit View Insert
    +— 1.3
    II
    .787962 43 92 9
    Tools
    Evaluate
    Factor
    Coefficients
    Variable •
    Matrix >
    Transform
    Style
    = 0 . 7 8 8
    Symbolically
    Complex
    5 . 2 1 . Вычисление выражения с плавающей точкой
    Еще один пункт меню Symbolics / Evaluate / Complex (Символика / Вычислить Комплексно) позволяет представить выражение в виде а+ь i.

    Часть II. Точные вычисления
    Аналогичные по действию ключевые слова и complex можно использовать в документах, вводя их с панели Symbolic (Символика. Ключевое слово применяется вместе со значением точности вывода результата с плавающей точкой (листинг 5.21). С помощью слова complex можно преобразовывать выражения как в символьном виде, таки с учетом численных значений, если они были ранее присвоены переменным (несколько примеров приведено в листинге 5.22).
    Листинг Вычисление выражения с плавающей точкой
    х := 3 к := 2 . 4
    cos х) +
    3.19
    cos
    + 4 - float ,10 3.185927374
    cos х) +4
    float ,20 3
    Листинг 5.22. Комплексные преобразования
    е complex
    +
    1
    c o m p l e x
    1 1 9 3 . 4 5 2 3 9 7 0 9 3 0 8 4 6 1 8 3 + 1 1 0 7 . 3 4 7 7 7 3 0 5 0 9 3
    x := i c o m p l e x
    4 - х c o m p l e x
    6 2 5 7 3 7 8 6 0 1 6 0 9 2 3 4 7 6 0 4
    • i
    5.5.3. Последовательности
    символьных команд
    Символьные вычисления допускается проводить с применением цепочек из ключевых слов. Для этого ключевые слова, соответствующие последовательным символьным операциям, должны быть введены по очереди с панели (Символика. Принцип организации цепочек символьных вычислений очень похож на применение встроенного языка программирования (см. следующую главу Несколько примеров использования последовательности символьных операторов приводится в листингах и Примечание Последовательности символьных команд допускают введение дополнительных условий в расчеты, например таких, как ограничение на действительную или комплексную форму результата. Это делается с помощью ключевого слова as- sume. Более подробную информацию читатель найдет в справочной системе
    Глава 5. Символьные вычисления
    149
    Листинг 5.23. Фурье-преобразование, разложение вряд с заданной
    е f o u r i e r , х - i)
    1
    . х 2
    2 4
    +

    s e r i e s ,
    5 4 32
    fourier . х 4.
    series,
    ' +
    . Листинг 5.24. Z-лреобразование и разложение на простые дроби
    х + 4
    trans , х z
    ,
    -7 • z + 5 + 4 •
    z - 1 .
    x + 4
    convert , parfrac , z
    4 +
    3 ?
    z - 1 ) (z - 1 )
    ГЛАВА 6
    Программирование
    Создатели Mathcad изначально поставили перед собой такую задачу, чтобы дать возможность профессионалам-математикам, физиками инженерам самостоятельно проводить сложные расчеты, не обращаясь за помощью к программистам. Несмотря на блестящее воплощение этих замыслов, выяснилось, что вовсе без программирования Mathcad серьезно теряет в своей силе, в основном, из-за недовольства пользователей, знакомых с техникой создания программ и желающих осуществить свои расчеты в привычном для себя программистском стиле. Вместо знакомых принципов программирования, пользователям старых версий Mathcad предлагалось комбинировать несколько специфичных встроенных функций и ранжированные переменные (см. разд. Последние версии Mathcad имеют не очень мошный, но весьма элегантный собственный язык (см. разд. 6.2).
    С одной стороны, он дает возможность программисту эффективно применять программный код в документах. С другой, простота и интуитивность языка программирования позволяет быстро ему обучиться. Наконец, программные модули внутри документа сочетают в себе и обособленность (поэтому их легко отличить от остальных формул, и простоту смыслового восприятия.
    Несмотря на небольшое число операторов, язык программирования Mathcad позволяет решать самые различные, в том числе и довольно сложные, задачи и является серьезным подспорьем для расчетов (см. разд. 6.3).
    6.1. Программирование без программирования
    В ранних версиях Mathcad встроенного языка программирования не было.
    Чтобы применять привычные операции проверки условий и организовывать циклы, приходилось изобретать причудливую смесь из встроенных функций
    Часть II. Точные вычисления
    условия if листинги и комбинаций ранжированных переменных (листинг Примечание В связи с устоявшимися традициями применения языка программирования функцию u n t i l настоятельно не рекомендуется использовать в дальнейшей работе (тем не менее, она действует в но отнесена к устаревшим функциям Листинг 6.1. Функция условия |
    f[x)
    if
    < 0 , "negative" ,
    )
    = "positive"
    "negative"
    Листинг 6.2. Организация цикла при помощи ранжированной переменной : = 0 . . 10
    . 2
    X ; := Фактически, использование ранжированных переменных — мощный аппарат, похожий на применение циклов в программировании. В подавляющем большинстве случаев намного удобнее организовать циклы
    (в том числе вложенные) с помощью ранжированных переменных, чем заниматься для этого программированием. Полезнее освоить технику, связанную с ранжированными переменными, векторами и матрицами, поскольку на ней основаны главные принципы расчетов в Mathcad, в частности подготовка графиков (Более подробную информацию о ранжированных переменных и
    связанными сними возможностями можно получить в гл. 4.)
    Programming for break return otherwise continue on error
    6 . 1 . Панель инструментов Programming
    6.2. Язык программирования Для вставки программного кода в документы в Mathcad имеется специальная панель инструментов Programming
    (Программирование, которую можно вызвать на экран нажатием кнопки Programming Toolbar на панели Математика, как показано на рис. 6.1. Большинство кнопок этой панели
    Глава 6. Программирование выполнено в виде текстового представления операторов программирования,
    поэтому их смысл легко понятен.
    Изложим последовательно основные составные элементы языка программирования и рассмотрим примеры его использования. Что такое программа?
    Основными инструментами работы в Mathcad являются математические выражения, переменные и Нередко записать формулу, использующую ту или иную внутреннюю логику (например возвращение различных значений в зависимости от условий, в одну строку не удается. Назначение программных модулей как рази заключается в определении выражений,
    переменных и функций в несколько строк, часто с применением специфических программных операторов.
    Сравните определение функции f (х) из листинга 6.1 с определением f (х) с помощью программного модуля (листинг Листинг 6.3, Функция условия, определенная с помощью программы" if x < О" if x > 0
    "zero" otherwise
    - "positive"
    f(-l)
    = "Несмотря на принципиальную эквивалентность определения функций и переменных через встроенные функции Mathcad или программные модули,
    программирование имеет ряд существенных преимуществ, которые в ряде случаев делают документ более простыми читаемым возможность применения циклов и условных операторов простота создания функций и требующих нескольких простых шагов (как в примере листинга 6.3);
    возможность создания функций, содержащих закрытый для остального документа код, включая преимущества использования локальных переменных и обработку исключительных ситуаций (ошибок).
    Как видно из листинга 6.3, программный модуль обозначается в Mathcad вертикальной чертой, справа от которой последовательно записываются операторы языка программирования
    Часть II. Точные вычисления. Создание программы (Add Чтобы создать программный модуль, например, представленный в предыдущем разделе (см. листинг 6.3):
    1. Введите часть выражения, которая будет находиться слева от знака присваивания и сам знак присваивания. В нашем примере это имя функции f (x).
    2. При необходимости вызовите на экран (Программирование) (см. рис. панель инструментов. Нажмите на этой панели кнопку Add Line (Добавить линию. Если приблизительно известно, сколько строк кода будет содержать программа, можно создать нужное количество линий повторным нажатием кнопки Add Line (Добавить линию) соответствующее число раз (на рис. 6.2 показан результат трехкратного нажатия. В появившиеся введите желаемый программный код,
    используя программные операторы. В рассматриваемом примере в каждый местозаполнитель вводится строка, например, "positive" (рис. 6.3), затем нажимается кнопка If (Если) на панели Programming (Программирование)
    и в возникший местозаполнитель вводится выражение (рис. После того как программный модуль полностью определен и ни один ме- стозаполнитель не остался пустым, функция может использоваться обычным образом, как в численных, таки в символьных расчетах.
    Внимание!
    Не вводите с клавиатуры имена программных операторов. Для их вставки можно применять лишь сочетания клавиш, которые приведены в тексте всплывающей подсказки (рис. 6.2 и 6.3).


    Programming
    Una otherwise
    .. break on error if
    Line
    6.2. Начало создания программного модуля .—
    "negative" if
    О Une break on continue
    Statement
    З. Вставка программного оператора
    Глава 6. Программирование US
    "negative"
    "positive"
    "zero"
    i t i f x> 0 6 . 4 . Вставка условия в программу. Разработка программы
    Вставить строку программного кода в уже созданную программу можно в любой момент с помощью той же самой кнопки Add Line (Добавить линию. Для этого следует предварительно поместить на нужное место внутри программного модуля линии ввода. Например, расположение линии ввода на строке, показанной на рис. 6.5, приведет к появлению новой линии с местозаполнителем перед этой строкой. Если передвинуть вертикальную линию ввода изначала строки (как на рис. 6.5) в ее тоновая линия появится после строки. Если выделить строку не целиком, а лишь некоторую ее часть 6.6), то это повлияет на положение в программе новой строки кода (результат нажатия кнопки Add Line показан на рис. Не забывайте, что для желаемого размещения линий ввода внутри формулы можно использовать не только мышь и клавиши со стрелками, но и пробел. С
    помощью последовательных нажатий пробела линии ввода "захватывают" разные части формулы (х" if x > О" if x < О
    Рис. 6.5. Вставка новой строки в существующую программу f (к) :=
    "negative" if
    "positive"] if
    > Рис 6 . 6 . Положение линий ввода влияет на положение новой линии (x) :=
    "negative" if
    < 0
    i f x > 0 6 . 7 . Результат вставки новой линии в программу
    (из положения рис. 6.6)

    Часть II. Точные вычисления
    Зачем может потребоваться вставка новой линии в положение, показанное на рис. 6.7? Новая вертикальная черта с двумя линиями выделяет фрагмент программы, который относится к условию х, находящемуся в его заголовке. Пример возможного дальнейшего программирования показан в листинге Листинг Пример усовершенствования программы (х" if x < Ох О positive" if
    1000
    "zero" otherwise f (
    = "positive"
    "big В режиме выполнения программы, а это происходит при любой попытке вычислить f (x), выполняется последовательно каждая строка кода. Например, в предпоследней строке листинга 6.4 вычисляется Рассмотрим работу каждой строки кода этого листинга. Поскольку х, то условие хо не выполнено, ив первой строке ничего не происходит. Условие второй строки хо выполнено, поэтому выполняются обе следующие строки, объединенные короткой вертикальной чертой в общий фрагмент. Функции f (х) присваивается значение ="positive".
    4. Условие х>юоо не выполнено, поэтому значение "big positive" не присваивается f она таки остается равной строке "positive".
    5. Последняя строка не выполняется, т. к. одно из условий (хо) оказалось истинными оператор otherwise (те. "иначе) не понадобился.
    Таким образом, основной принцип создания программных модулей заключается в правильном расположении строк кода. Ориентироваться в их действии довольно легко, т. к. фрагменты кода одного уровня сгруппированы в программе с помощью вертикальных черт. Локальное присваивание
    Язык программирования Mathcad не был бы эффективным, если бы не позволял создавать внутри программных модулей локальные переменные, которые "невидны" извне, из других частей документа. Присваивание в пределах программ, в отличие от документов Mathcad, производится с
    Глава 6. Программирование
    помощью оператора Local Definition (Локальное присваивание, который вставляется нажатием кнопки с изображением стрелки на панели (Программирование).
    Внимание!
    Ни оператор присваивания :=, ни оператор вывода = в пределах программ не применяются.
    Локальное присваивание иллюстрируется листингом 6.5. Переменная z существует только внутри программы, выделенной вертикальной чертой. Из других мест документа получить ее значение невозможно Листинг 6.5. Локальное присваивание в программе (
    :=
    Z +
    X
    f (1) = 5 6.2.5. Условные операторы (if, Действие условного оператора if состоит из двух частей. Сначала проверяется логическое выражение (условие) справа от него. Если оно истинно,
    выполняется выражение слева от оператора if. Если ложно — ничего не происходит, а выполнение программы продолжается переходом к ее следующей строке. Вставить условный оператор в программу можно следующим образом (см. рис. 6.8):
    1. Если необходимо, введите левую часть выражения и оператор присваивания. Создайте новую строку программного кода, нажав на панели (Программирование) кнопку Add Line (Добавить строку. Нажмите кнопку условного оператора if.
    4. Справа от оператора if введите условие. Пользуйтесь логическими операторами, вводя их с панели Boolean (Булевы операторы. Выражение, которое должно выполняться, если условие истинно, введите слева от оператора if.
    6. Если в программе предусматриваются дополнительные условия, добавьте в программу еще одну строку нажатием кнопки Add Line и введите их таким же образом, используя оператор if или Оператор otherwise используется совместно с одним или несколькими условными операторами if и указывает на выражение, которое будет выполняться, если ни одно из условий не оказалось истинным. Примеры исполь-
    Часть II. Точные вычисления
    зования операторов if и otherwise приведены в предыдущих разделах
    (см. листинги 6.3 и 6.4).
    ( к )
    0 i f
    = 0

    ; otherwise
    Statement }\
    Break return on
    6 . 8 . Вставка условного. Операторы цикла (for, while, break, В языке программирования имеются два оператора цикла for и while. Первый из них дает возможность организовать цикл по некоторой переменной, заставляя ее пробегать некоторый диапазон значений. Второй создает цикл с выходом из него по некоторому логическому условию. Чтобы вставить в программный модуль оператор цикла. Создайте в программном модуле новую линию. Вставьте один из операторов цикла for или while нажатием одноименной кнопки на панели Programming (Программирование. Если выбран оператор for (рис то вставьте в соответствующие ме- стозаполнители имя переменной и диапазон ее значений (листинги 6.6 и, а если while — то логическое выражение, при нарушении которого должен осуществляться выход из цикла (листинг 6.8).
    :=
    0
    • •
    Line - otherwise for while
    ]For Loop C t r l + "
    6 . 9 . Вставка оператора цикла. В нижний введите тело цикла, те. выражения, которые должны выполняться циклически.
    При необходимости дополните программу другими строками и введите в них нужный
    Глава 6. Программирование 159
    ( Примечание
    Диапазон значений переменной в условии цикла можно задать как с помощью диапазона ранжированной переменной (листинг 6.6), таки с помощью вектора Листинг 6.6. Оператор цикла с ранжированной переменной j
    2
    Ох Листинг 6.7. Оператор цикла с вектором Ох Листинг Оператор циклах Иногда необходимо досрочно завершить цикл, те. не по условию в его заголовке, а в некоторой строке в теле цикла. Для этого предназначен оператор break. Модификации листингов 6.6 и 6.8 с прерыванием цикла оператором break приведены в листингах 6.9 и 6.10, соответственно. Например в листинге, как только значение переменной цикла i достигает 2, цикл, благодаря оператору break в последней строке программного модуля, прерывается. Соответственно, значение переменной х остается равным 0+1+2=3.
    1   ...   8   9   10   11   12   13   14   15   ...   36


    написать администратору сайта