mathcad, дельта-функция (Дирака) — & i can’t stop
В Mathcad нет δ-функции, как нет её в чистом виде ни в одном математическом пакете. Очевидно, что заставить комп работать с функциями, подобными этой, можно только с помощью подпрограмм или скриптов, которые только чисто логически смогут реализовать то, что дано из теории.
Например у одной из таких нереализуемых напрямую функций, а получаемых на компе только с помощью «костылей» или «логической обработки», δ-функции есть три определяющих её свойства: функция имеет отличное от нуля значение в одной точке, в этой точке функция бесконечна, площадь под δ-функцией существует и задается как её вес.
Отсюда очевидно, что следующие записи (и более извращенные попытки, типа отжига dΦ(x)/dx) никак не могут быть численными реализациями поставленных условий (первый вариант еще более-менее справедлив для некоторых частных случаев):
более того, эта запись говорит о том, что автор претендует на оценку «-1», т. к. обнаруживает абсолютное непонимание примитивнейшей теории (а задающие вопросы по этому поводу смело могут идти и перечитывать всю ВМ с нуля).
Но попытки бездумно использовать это дело в численных методах все-таки встречаются. Звучит вопрос «А че эта ска не работает? А??» (да-да, mathcad самое глючное создание).
И что же можно обнаружить? А вот тут лежит «работа» некоего чела, которую рецензировал, между прочим, к. т. н. Ну я не знаю, может это в Таганроге можно такую чушь писать под столом, но зачем в сеть то её кидать?
Сначала этот чувачек (гений сыска Кавчук С.В.) задает вторым вариантом δ-функцию, и делает вид, что все нормально и такое быть может, потом использует её в записях итогов вычислений в уме (но нах тогда спрашивается она нужна, если сама среда использовать её не может, и его кривые руки это показывают). И в этих записях, блин, нет, это надо видеть, он умножает числа на Dirac(t) и даже не икает!
p01arbear.livejournal.com
Урок 5. Переменные и функции в Mathcad
Возможности Mathcad можно в полной мере оценить только при использовании переменных и функций.
Два знака равенства
В выражениях Вам необходимо использовать числа (константы), переменные, операторы и знаки равенства. В повседневной жизни мы используем знак равенства = для различных операций. Mathcad, однако, различает эти операции. Наиболее важные из них:
- определение (присвоить значение) – вводится через двоеточие [:]
- вычисление – вводится через знак равенства [=]
Оператор определения не менее важен, чем оператор вычисления. Значение выражения y можно отобразить только после присвоения ему какого-либо значения. x и y здесь являются переменными.
Введите следующие выражения:
Эти два знака равенства принципиально различны, поэтому их не следует путать.
Поместите курсор перед числом 4 в первом выражении:
Удалите число 4 с помощью клавиши [Delete] и введите 5. Щелкните по пустой области и убедитесь, что результат третьего выражения изменился на 25:
Попробуйте удалить число 25. Вы увидите, что при первом нажатии число станет красным, а при повторном нажатии удалится 25 и знак равенства:
Использование переменных
Введите следующие выражения:
Попробуйте изменить значение x на 100, 0.5, -4 и 0:
Первые два случая дадут в результате число. При -4 получится мнимое число. Да, Mathcadможет работать и с такими числами. При нуле программа выдаст ошибку, а результат будет обведен красным. Если Вы щелкните по неправильному выражению, то получите описание, что может быть не так:
Теперь о том, какие имена можно и нельзя использовать для переменных. Есть несколько правил: имя переменной не может начинаться с цифры и в имени переменной нельзя использовать пробелы и знаки операторов. Имена переменных могут начинаться:
- с любой строчной или прописной буквы
- другие символы, если они не являются операторами
- символы с вкладки Математика –> Операторы и символы –> Символы
- символы из Таблицы символов Windows
Вот несколько примеров:
Переменные можно использовать, только если они были определены ранее. «Ранее» означает, что объявление переменной должно располагать выше или левее выражения, где она используется. Если переменная не объявлена, появится сообщение об ошибке:
Подстрочные индексы
В Mathcad есть два различных вида подстрочных индекса для переменных:
- Описательный подстрочный индекс.
- Индекс массива (матрицы).
Чтобы набрать описательный подстрочный индекс, введите имя переменной, нажмите [Ctrl+-] и наберите подстрочный индекс:
Переменная с описательным подстрочным индексом – это обычная переменная, со своим именем. Индекс массива существенно отличается от него. Этот индекс можно ввести, нажав открывающую квадратную скобку [ после имени переменной. У переменной может быть один или два индекса массива:
Индекс массива должен быть числом. При этом не следует путать виды подстрочных индексов, т.к. они выглядят практически идентично:
Разница видна при щелчке мышью по выражению:
У переменной может быть сразу описательный индекс и индекс массива. Сначала всегда идет описательный индекс:
Функции
Переменные можно использовать, только если они были определены ранее. Однако есть одно важное исключение – определение функции. Можно определить собственную функцию, как на примере ниже:
Переменная a является локальной для функции. Она не определена за пределами функции:
Если Вы определили a до определения функции, значение a не будет изменено в процессе вычисления значения функции.
Внимание: если Вы дали переменной такое же имя, как и функции, Вы больше не сможете использовать эту функцию. У переменной и функции должны быть разные имена:
Этой проблемы можно избежать, задав для переменной и функции разные обозначения. Об этом мы поговорим в уроке 10 «Обозначения и единицы измерения».
Функции могут содержать две и более переменной:
Здесь значения переменных xи yтакже не изменяются при вычислении функции.
Встроенные функции
В Mathcad есть большое число встроенных функций. Зайдите на вкладку Функции:
Список всех функций можно увидеть, щелкнув по кнопке Все функции.
Заметьте, что тригонометрические функции принимаю в качестве аргумента угол в радианах, а не в градусах. Для использования градусов используйте символ с вкладки Математика –> Операторы и символы –> Символы:
Математика в тексте
В текст можно вставить математическую область. Таким образом, можно использовать над- и подстрочные символы в тексте. Для этого при редактировании текстовой области нажмите кнопку Математика с вкладки Математика –> Области:
Пример:
Резюме
- В Mathcadесть два различных знака равенства: определить := и вычислить =.
- Имя переменной обычно начинается с буквы; цифры нельзя использовать в начале переменной. Также можно использовать символы с клавиатуры, с панели Математика –> Операторы и символы –> Символы, с Таблицы символов Windows.
- Чтобы определить переменную и задать ей значение:
- щелкните мышью на пустую область;
- введите имя переменной;
- нажмите [:] для ввода оператора определения;
- введите значение, которое Вы хотите присвоить.
- Чтобы дать переменной описательный подстрочный индекс:
- щелкните мышью в конце имени переменной;
- нажмите [Ctrl+-];
- введите подстрочный индекс.
- Чтобы дать переменной индекс массива:
- щелкните мышью в конце имени переменной;
- нажмите открывающую квадратную скобку [;
- введите число – подстрочный индекс.
- Переменную можно использовать ниже или правее места, где она определена.
- Имя функции следует набирать по тем же правилам, что и имя переменной, но ввод имени функции заканчивается вводом [(]. В скобках содержатся аргументы функции.
- Переменные в функциях – локальные, т.е. они определены только при использовании функции.
- Математическую область можно встроить в текст. Эту возможность следует использовать, если необходимо вставить над- и подстрочные символы в текст.
Другие интересные материалы
Иллюстрированный самоучитель по MathCAD 12 › Алгебраические вычисления › Вспомогательные функции [страница — 41] | Самоучители по математическим пакетам
Вспомогательные функции
Кроме перечисленных, Mathcad включает целый ряд вспомогательных функций, во множестве ситуаций облегчающих вычисления.
- Discontinuous functions (Разрывные функции).
- Round-off and truncation (Сокращения и округления) (листинг 2.7).
- Sorting (Сортировки).
- Strings (Строковые).
- Finance functions (Финансовые).
- Coordinate transform (Преобразования координат) (листинг 2.8).
- Conditional (Условия) (листинг 2.9).
- Expression type (Типа выражения).
Листинг 2.7. Функции сокращения и округления:
Примечание
В прежних версиях Mathcad (вплоть до 11-й включительно) функции округления и сокращения могли выдавать результат, отличный от аналитического (что было связано с принципом представления чисел). В Mathcad 12 эти функции работают более правильно, выводя точный результат округления, совпадающий с символьным
Листинг 2.8. Функции преобразования координат на плоскости:
Листинг 2.9. Функции знака и условия:
Примечание
Разработчики Mathcad 12 восстановили встроенную функцию until, которая вплоть до 2000-й версии служила для включения в документы циклов без помощи программирования. Функция until (x, у) служит для «непрограммной» имитации цикла: если х<0, происходит вычисление очередного у, затем опять вычисляется новое х (так или иначе зависящего от у), снова проверяется условие х<0 и т. д. Финальное значение у, при котором х становится неотрицательным, выдается в качестве результата функции
Рис. 2.9. Функции Хевисайда и устаревшая функция Кронекера
Внимание!
Начиная с Mathcad 12 функция (символ) Кронекера 5 (рис. 2.9) изъята из списка встроенных функций.
samoychiteli.ru
Урок 11. Программирование в Mathcad
Mathcad содержит встроенную среду программирования, что значительно расширяет возможности вычислительного пакета. Операторы программирования находятся в меню Математика –> Операторы и символы –> Программирование:
Этих операторов не очень много, но и они позволяют построить достаточно сложные алгоритмы. К тому же, уже ознакомившись с базовыми понятиями (операторы, переменные, константы, функции и т.д.), можно использовать Mathcad, если Вы хотите лишь начать изучать программирование.
Команды, которые мы изучим в этом уроке:- «Программирование» – для создания программной структуры.
- «Локальное назначение» – знак «равно» для программ.
- «Оператор if»– оператор условия.
- «Оператор else»– альтернативный выбор.
- «Оператор return» – выход из программы.
- «Try / On Error» – применяется, если при выполнении программы может возникнуть ошибка.
Эти команды можно сочетать с операторами, переменными и функциями Mathcad. Например, Вы можете использовать структуру функции для ввода входных значений:
«Программирование» и «Локальное определение»
Создадим программу, которая вычисляет разницу между двумя переменными a и b.
На рисунке ниже представлена структурная диаграмма программы:
Здесь всего три элемента: вход, действие и выход. Вместо структурной диаграммы можно использовать другие способы, помогающие созданию программы, например, блок-схемы или псевдокод.
Определите ввод переменных a
Нажмите оператор «Программирование» на панели Математика –> Программирование:
Нажмите [Enter] для создания второй строки:
Переместите курсор в верхний местозаполнитель, затем вставьте оператор «Локальное назначение»:
Заполните местозаполнители слева и справа от оператора:
Переместите курсор в нижний местозаполнитель и вставьте оператор «return»:
Важно! Операторы программирования return, else, if, while и т.д. следует вставлять из меню программирования. Ввод этих команд с клавиатуры не приведет к желаемому результату.
Введите переменную в местозаполнитель:
Всегда тестируйте программы, потому что при некоторых значениях могут получиться бессмысленные результаты. В некоторых случаях это могут быть отрицательные числа, ноль или бесконечность.
У операторов программирования есть свои горячие клавиши. Попробуйте запомнить их:
- «Программирование» – правая квадратная скобка ]
- «Локальное назначение» – левая фигурная скобка {
- «return»– [Ctrl+\]
Создайте предыдущую программу снова, используя горячие клавиши. Теперь это должно занять меньше минуты!
Программе не обязательно задавать входные переменные:
Оператор «return» также не обязателен – программа примет за выходное значение последнее вычисление:
В нашей второй программе (которая более полезна, чем предыдущая) мы вычислим площадь поверхности цилиндра диаметром D и высотой H. Структурная диаграмма этой программы:
Программа и некоторые выходные результаты показаны ниже. Возможно, нужно запретить отрицательные входные значения…
Заметьте, что переменные внутри программы являются локальными. Локальная переменная не определяется вне программы:
Входным значениям можно дать числа с единицами измерения:
Однако если задать единицу измерения только одной переменной, Mathcad скажет, что единицы не совместимы:
Поэтому единицы измерения следует использовать единообразно.
Булева алгебра
В программах часто используются равенства и неравенства. Операторы сравнения находятся в меню Математика –> Операторы и символы –> Операторы –> Сравнение:
Операторы сравнения дают результат 1 при истинном выражении и 0 при ложном:
Операторы сравнения можно сочетать. Пример таких сочетаний с оператором логического И:
Операторы
if и
else
Необходимо создать программу функции, которая принимает следующие значения:
Структурная диаграмма программы представлена ниже. Треугольник означает выбор между двумя или более альтернативными вариантами. Напишем программу, используя операторы if и else.
Введите имя функции и местозаполнитель для первой строки:
Нажмите if в меню программирования или с помощью горячей клавиши }. Появится вторая строка, которая относится к оператору if:
Введите критерий выбора и желаемое значение функции. Обратите внимание на серые линии справа:
Нажмите на внутреннюю серую линию (станет мигающей синей), затем вставьте оператор else. Появится еще одна строка, относящаяся к else:
Введите необходимую функцию под else. Внутренняя серая линия удлинится, что указывает на то, что операторы ifи else связаны между собой. Нажмите на нее, нажмите [Enter], затем вставьте оператор return:
Проверьте программу, построив график функции:
При работе с программой можно добавлять новые строки нажатием клавиши [Enter]. Где появится местозаполнитель, зависит от положения курсора. Выбрана внутренняя серая линия:
Курсор стоит за x2:
Усложним функцию:
На структурной диаграмме показаны различные варианты выбора. Наиболее простой способ создать программу для этой задачи – использовать три различных операторов выбора (в Mathcad нет аналога оператора case).
Здесь важно правильно задать границы независимой переменной. Если Вы введете:
,
то точки 0 и 1 будут исключены, а Mathcad выдаст некорректный результат для этих значений.
Проверим программу для некоторых входных значений:
Для значений, не имеющих смысла, Mathcad выдаст сообщение об ошибке.
Функции в программах
В Mathcad встроено множество функций, которые могут быть полезными в том числе и в программах. Рассмотрим некоторые из них.
Векторы и матрицы
Откройте Функции –> Все функции и откройте раздел Векторы и матрицы. Найдите функции last() и length(). Это функции для определения некоторых свойств вектора:
Функция length() определяет длину вектора, т.е. количество элементов в нем, а функция last() выводит индекс последнего элемента. По умолчанию в Mathcadнумерация элементов вектора начинается с нуля, поэтому у четвертого элемента массива индекс 3.
Теория чисел/комбинаторика
Наибольший общий делитель:
Наименьшее общее кратное:
Остаток от деления x на y:
Кусочно-непрерывные функции
Ступенчатая функция:
Разное
«Разное» содержит функцию time(), которая возвращает системное время момента активации функции.
Строковые функции
Строки в Mathcad заключаются в двойные кавычки:
Строки можно задавать в качестве переменных, но их нельзя использовать в вычислениях. (Строку, содержащую только числа, можно преобразовать в константу.)
Конкатенация строк:
Длина строки (включая пробелы):
Строки могут быть полезны для задания в программах сообщений об ошибках.
Усечение и округление
Наименьшее целое число, большее x:
Наибольшее целое число, меньшее x:
Округление:
Усечение:
Список функций Mathcad огромен. Два совета по ознакомлению с новыми функциями:
- Подведя указатель мыши к имени функции в списке, Вы увидите ее полное название и краткое описание.
- Если Вы вставите функцию в рабочую область, а затем нажмете [F1], Вы получите расширенное описание функции.
Try / On Error
Последняя команда, которую мы изучим в этом уроке, используется для указания, что должно быть сделано, если при выполнении программы возникает ошибка (например, деление на ноль). Если при выполнении программы в блоке tryвозникает ошибка, программа выполняет действия в блоке on error:
Ниже представлена программа с тремя операторами if внутри блока try:
При неверном вводе появится сообщение об ошибке. Таким образом, можно отследить большую часть ошибок, но не все:
Поскольку переменная abc не определена, функция не вычисляется.
Резюме
Мы изучили следующие элементы программирования:
- Входные данные – обычно вводятся как параметры функции.
- Первая строка программы – вводится с помощью ]. Больше линий – с помощью [Enter].
- Оператор локального определения – вводится с помощью {.
- В конструкциях выбора с помощью оператора ifприменяются операторы сравнения.
- If вводится с помощью }. За ifвводится логическое выражение, например x<0. Под оператором записывается алгоритм, который должен быть выполнен, если выражение после if верно.
- После if может следовать оператор else или другой оператор if.
- [Enter] добавляет новую строку в программу. Место появления новой строки зависит от позиции курсора до нажатия на [Enter].
- Вывод переменной осуществляется с помощью оператора return. Переменной может быть одиночная переменная, вектор или матрица, которые могут содержать как числовые значения, так и текст.
- Mathcadсодержит большое число встроенных функций, которые могут быть полезны при написании программ. Список функций с подсказками можно открыть по команде Функции –> Все функции.
- Используйте try / onerror, чтобы указывать на ошибки.
Другие интересные материалы
sapr-journal.ru