Как в маткаде задать интервал с шагом

Все итеративные процессы в Mathcad основаны на дискретных аргументах. Если не обращать внимание на способ определения, то дискретный аргумент выглядит как обычная переменная. Различие в том, что обычная переменная принимает только одно значение, в то время как дискретный аргумент принимает ряд значений, отделяемых одинаковыми шагами. Например, можно определить дискретный аргумент, чтобы пройти от −4 до 4 с шагом 2. Если теперь использовать этот дискретный аргумент в выражении, Mathcad вычислит это выражение пять раз, один раз для каждого значения, принимаемого дискретным аргументом.

Без дискретных аргументов было бы невозможным полное использование возможностей Mathcad. Этот раздел показывает, как определять и использовать дискретные аргументы, чтобы выполнять многократные вычисления.

Определение и использование дискретного аргумента

Чтобы определять дискретный аргумент, напечатайте имя переменной, сопровождаемое двоеточием и диапазоном значений. Например, вот как определить переменную j, принимающую значения от 0 до 15:

  • Напечатайте j и затем нажмите клавишу двоеточия (:). Пустое поле указывает, что Mathcad ожидает определение для j. В этот момент Mathcad не знает, будет ли j обычной переменной или дискретным аргументом.

  • Напечатайте 0.Затем нажмите клавишу точки с запятой (;). Это сообщает Mathcad, что определяется дискретный аргумент. Mathcad показывает точку с запятой как две точки . что означает диапазон. Завершите определение дискретного аргумента, печатая 15 в оставшемся поле.

Это определение указывает, что j принимает значения 0,1,2. 15. Чтобы определять дискретный аргумент, который изменяется с шагом, отличным от 1, см. подраздел «Типы диапазонов» ниже в этой главе.

Если только дискретный аргумент определён, он принимает полный диапазон значений каждый раз, когда он используется. Если дискретный аргумент используется, например, в выражении, Mathcad должен вычислить это выражение для каждого значения дискретного аргумента.

Следует определять дискретный аргумент в точности, как показано выше. Должны быть:

  • имя переменной слева,
  • или := или в середине, и
  • допустимый диапазон справа.

Обратите внимание, что нельзя определять простую переменную через дискретный аргумент. Например, если, определив j, как показано, теперь записать , то Mathcad истолкует это как попытку приравнять скалярную переменную дискретному аргументу, и отметит уравнение сообщением «нескалярная величина».

Дискретный аргумент может применяться для присвоения значений элементам вектора или матрицы. Можно определять элементы вектора, используя дискретный аргумент как нижний индекс. Например, чтобы определить для каждого значения j:

  • наберите x[j:j^2[Space]+1

Рисунок 1 показывает вектор значений, вычисленных по этой формуле. Поскольку j — дискретный аргумент, вычисления по формуле делаются для каждого значения j. Это определяет для каждого значения j от 0 до 15. Результат точно такой же, как если бы напечатать

x := 0 2 + 1
x1 := 1 2 + 1
.
.
.
x15 :=15 2 + 1

Чтобы понимать, как Mathcad вычисляет при помощи переменных диапазона, имейте в виду основной принцип:

Если дискретный аргумент используется в выражении, Mathcad вычисляет выражение один раз для каждого значения дискретного аргумента.

Этот принцип выражает различие между выражениями с дискретным аргументом и без него. Выражения, которые не содержат дискретный аргумент, имеют только одно значение. Выражения, содержащие дискретные аргументы, принимают много значений, которые соответствуют каждому значению каждого дискретного аргумента.

Рисунок 1: Использование дискретного аргумента для определения элементов вектора x.

Если в формуле используются два или более дискретных аргумента, Mathcad вычисляет формулу один раз для каждого значения каждого дискретного аргумента. Это обсуждается подробнее в разделе «Итерационные вычисления» ниже в этой главе.

Mathcad требует больше времени для вычисления формул, содержащих дискретный аргумент, поскольку приходится выполнять многократные вычисления. Форма курсора изменяется во время вычислений. Чтобы прервать вычисления, нажмите [Esc]. Чтобы возобновить вычисления, щёлкните мышью на формуле и нажмите [F9].

Определение j в предыдущем разделе является самым простым типом определения диапазона. Mathcad допускает дискретные аргументы со значениями, расположенными от любого значения до любого другого значения и меняющимися с произвольным шагом.

Вот как выглядит определение произвольного дискретного аргумента. Напечатайте:

Это будет выглядеть как:

В этом определении диапазона:

  • Переменная k — имя дискретного аргумента. Это должно быть простое имя. Никакие нижние индексы или функциональные определения не допустимы.
  • Число 1 — первое значение, принимаемое аргументом k.
  • Число 1.1 — второе значение в диапазоне. Обратите внимание, что это не размер шага. Размер шага в этом примере 0.1, разница между 1.1 и 1. Если опустить запятую и 1.1, Mathcad примет размер шага равным 1 в подходящем направлении.
  • Число 2 — последнее значение в диапазоне. В этом примере значения аргумента постоянно увеличиваются. Если бы записать , то k проходил бы значения от 10 до 1. Если третье число в определении диапазона не равно целому числу приращений начального значения, аргумент всё равно не выйдет за его пределы. Например, пусть определили k := 10, 20 ...60, тогда k будет принимать значения 10, 20, 30. 60.
Читайте также:  Зайти в гмайл аккаунт

Можно использовать произвольные скалярные выражения вместо 1, 1.1 и 2. Однако эти значения должны всегда быть вещественными числами. Комплексные числа не имеют смысла в определениях дискретного аргумента, потому что имеется бесконечное число путей, соединяющих два данных комплексных числа. Рисунок 2 показывает результаты различных определений дискретного аргумента.

Рисунок 2: Некоторые допустимые определения дискретного аргумента.

Обратите внимание, что, если для дискретного аргумента используется дробное приращение, нельзя использовать этот дискретный аргумент как нижний индекс, поскольку нижние индексы должны быть целыми числами.

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter

Итак, в прошлый раз мы с вами узнали, что MathCAD умеет давать пользователю результаты решения уравнений в двух принципиально разных формах: аналитической и численной. И посмотрев на то, что аналитическое решение уравнений третьей и четвертой степеней не просто громоздкое, а очень громоздкое, пришли к выводу, что проще и полезнее (для собственного душевного равновесия) будет решать такие уравнения не в общем виде, а численно. В этот раз мы с вами поговорим еще немного об уравнениях.

Одним из удобных и наглядных способов решения уравнений является графический. Графическим он называется потому, что при использовании такого способа решение уравнения f(x) = 0 представляется в виде графика функции f(x), пересечения которого с осью абсцисс (X) и будут решениями начального уравнения. Конечно, особенно точным такой способ решения назвать сложно, но он может пригодиться для задания начального приближения, необходимого для полноценной работы функции root, которая поможет найти корни более точно. Для начала рассмотрим простенькое квадратное уравнение 2×2 — 7x — 17 = 0. Левую часть уравнения нужно записать в виде функции, т.е. нужно сделать запись f(x) := 2×2 — 7x — 17. Напомню, что оператор присваивания (:=) записывается с клавиатуры при помощи простого двоеточия, т.е. для латинской раскладки клавиатуры это будет Shift+;, а для русской — Shift+6. Далее нужно задать диапазон построения графика. Для этого для переменной x записываем x := −10...10. Здесь нужно использовать специальный разделитель, применяемый в MathCAD'е для записи интервалов — обычное написание двух символов «.» подряд не поможет. Это разделитель можно найти на панели матричных вычислений (кнопка «m...n») или записать с помощью нажатия на клавиатуре точки с запятой. Итак, все нужное для построения графика мы с вами подготовили. Теперь дело за малым — добавить на рабочее поле собственно график. Для этого на панели «Graph» выберите «X-Y Plot» (самая первая из всех кнопок на панели), и тогда у вас на экране появится область построения графика. Для того, чтобы график в ней построился, нужно в центре под осью абсцисс написать имя нашей переменной (в данном случае им будет, конечно же, x), а по центру рядом с осью ординат — имя нашей функции (то есть f(x)).

Что ж, график у нас теперь есть. Как же определить, какая именно точка соответствует решению нашего уравнения? С этим поможет трассировка. Щелкните по получившемуся графику правой кнопкой мыши и выберите Trace. У вас на графике появится этакий «прицел», который можно будет передвигать мышкой, и окно, в котором будут отображаться координаты точки, находящейся в середине прицела (см. скриншоты). Прицел этот можно, кстати, двигать и при помощи клавиатурных стрелочек, но все равно в любом случае передвигаться он будет исключительно и только вдоль кривой, отображающей ход нашей функции, нули которой мы и ищем. Думаю, основную идею вы уже уловили: передвигая крестик-"прицел" вдоль кривой, можно в окне трассировки увидеть точку, Y-координата которой будет равна нулю.

Здесь, правда, может возникнуть небольшая проблема. В нашем уравнении, например, корень получился не целым, а трассировать функцию по X мы можем только с шагом, равным единице. Конечно, для того, чтобы локализовать корень для последующего применения функции root, в нашем случае достаточно и такой точности: достаточно найти интервал, на котором функция будет менять свой знак (то есть ее значение будет меняться с положительного на отрицательное или, напротив, с отрицательного на положительное). Но для других уравнений может случиться такое, что на единичном интервале может лежать и несколько решений — действительно, почему бы и нет, ведь даже для квадратных уравнений несложно придумать случай, когда такое может случиться. Какой из этого может быть выход? Самый простой и очевидный — уменьшить шаг трассировки по оси X, чтобы можно было более точно искать нулевые точки по оси Y. Сделать это в MathCAD очень просто. Помните, как мы задавали диапазон для нашей переменной x? Давайте кое-что поменяем и запишем его следующим образом: x := −10, −9.9...10. Теперь уже шаг трассировки у нас будет не единица, а одна десятая (0,1). Для того, чтобы уменьшить его еще в десять раз, нужно записать x := −10, −9.99...10. Общий принцип здесь вполне очевиден: мы записываем следующую точку диапазона следом за первой и, таким образом, указываем шаг, с которым MathCAD будет строить (а в итоге — и трассировать) наш график. Для более наглядного отображения данных имеет смысл добавить на график координатную сетку. Сделать это можно, если кликнуть по графику дважды, а затем в появившемся окне (см. скриншот) установить флажки напротив пунктов Grid Lines в категориях X Axis и Y Axis. Первый флажок устанавливает координатные линии для оси X, а второй, соответственно, для оси Y. Единственное, что также рекомендую — так это сразу поменять и цвет линий координатной сетки, кликнув по квадратикам рядом с этими пунктами — по умолчанию он задан кислотно-зеленым, что не очень удобно для глаз. Хотя это уже, конечно, дело вкуса.

Читайте также:  Видеокамера гоу про цена

Мы с вами еще вернемся к графикам, и, я так думаю, даже и не раз, но на сегодня о них, пожалуй, уже достаточно. Давайте обсудим лучше еще некоторые особенности использования функции root.

Контроль точности решения уравнений с помощью функции root

Практически любой численный метод решения уравнений и систем уравнений является приближенным. Счастливым исключением из этого правила являются, пожалуй, только некоторые матричные методы решения систем линейных уравнений. Ну и решения простых линейных, квадратных и кубических уравнений тоже являются точными — правда, их редко относят к численным, потому что здесь фактически для расчета численных значений корней используются аналитические формулы. С функцией root все несколько иначе: она умеет решать любые (ну, или практически любые) по своему виду уравнения, но зато выдает приближенные значения их решений. Поскольку нередко нужно знать решение уравнения с какой-то четко заданной точностью, будет весьма полезным узнать, как эту точность в MathCAD'е можно контролировать. Оказывается, это совсем не сложно, и даже, более того, я бы сказал, совсем просто. В системе MathCAD существует специальная переменная, служащая как раз таки для контроля точности численных решений. Называется эта переменная TOL, и такое название происходит от английского слова tolerance, которое «Мультилекс» перевел как «допустимое отклонение от стандартного размера». В нашем случае это как раз и означает точность. Для того, чтобы пояснить суть этого параметра, следует немного углубиться во «внутреннюю кухню» MathCAD'а. Не бойтесь, я не буду рассказывать подробно об алгоритмах и писать какие-то формулы. Но если вам это неинтересно, можно просто пропустить следующий абзац.

Дело в том, что методы, применяемые MathCAD'ом при численном решении уравнений, являются итерационными. Что это значит? Это значит, что все эти методы используют для получения значения x цикл, в котором каждое следующее значение решения вычисляется по предыдущему, но с большей точностью. Циклы бывают разными, как и начальные значения переменной x, и в теории численных методов выводятся формулы, показывающие, при каких условиях возможно получение приближенного решения — а ведь даже это возможно далеко не всегда. Когда цикл имеет нормальный ход, то есть с каждой последующей итерацией (выполнением вычислений в рамках одного шага цикла) значение приближенного решения получается более точным, то есть более близким к реальному решению, чем на предыдущей итерации, говорят, что итерации сходятся (иногда добавляют, что они сходятся к точному значению решения). Для того, чтобы определять, когда же значение, получаемое в результате итерационных вычислений, нас наконец-то устроит, и используется переменная TOL. Для простоты восприятия можно сказать, что, когда разница между текущим и предыдущим значением переменной в рамках цикла становится меньше, чем TOL, то ее дальнейшее вычисление (то есть и сам цикл) прекращаются. Таким вот нехитрым образом TOL и служит для контроля точности вычислений. Впрочем, это совсем не гарантирует, что точка, вычисленная таким образом, будет лежать близко к реальному корню — вполне может оказаться и так, что указанная разность вычисленных значений будет меньше, чем TOL, и довольно далеко от точки, являющейся реальным решением заданного уравнения. Но с этим, к сожалению, ничего поделать нельзя — алгоритм, вложенный создателями MathCAD'а в свой продукт, на самом деле не так уж и плох, если правильно подбирать начальное приближение и TOL. Для этого рекомендуется перед началом непосредственных вычислений значений корня уравнения f(x) = 0 строить график его левой части (так, как мы это делали выше), а после получения собственно значения — проверять его с помощью подстановки в исходное уравнение.

Читайте также:  Как в биосе выставить загрузку с usb

Изменять переменную TOL можно выбрав в главном меню MathCAD'а пункт Tools, далее выбрав Worksheet Options, а потом — вкладку Built-in Variables (см. соответствующий скриншот). Там вы без труда найдете надпись «Convergence Tolerance (TOL)» и соответствующее значение, равное по умолчанию 0,001, или 10−3. Поменять значение TOL можно прямо в документе, записав, например: TOL := 0,0001. Нужно только помнить, что тогда менять TOL нужно до вызова функции root. Ну и, конечно, не стоит сильно увлекаться уменьшением TOL, потому что в ряде случаев это может затруднить процесс поиска решения и привести к тому, что оно вообще не будет найдено. Кроме того, надо отметить, что чем меньше TOL, тем больше времени потребуется MathCAD'у на вычисление решения. Делать TOL в случае использования root меньше, чем 10−13, обычно и вовсе не имеет смысла, потому что погрешности расчета функций exp, sin, log и других (это все трансцендентные функции) находятся примерно на этом уровне, и более точное значение получить будет попросту технически невозможно. Вообще же теоретически предельным для TOL является значение 10−16, но добиться такой точности, как правило, реально невозможно. Да и редко когда нужно, к счастью.

Категории

  • 3ds Max (10)
  • AutoCAD (9)
  • Mathcad (7)
  • Microsoft Excel (10)
  • Microsoft Word (18)
  • Mudbox (3)
  • PHP (4)
  • Windows (24)
  • Главная (1)
  • Железо (13)
  • Компас 3D (3)
  • Программы (19)
  • Прочее (17)

MathCAD задать интервал с шагом

В этой статье мы подробно разберем, как в MathCAD задать интервал с определенным шагом.

MathCAD интервал значений

Для начала вспомним: чтобы задать диапазон значений с шагом 1 по умолчанию вводим переменную, которой мы задаем значение (у меня это будет х), затем ставим знак присвоение

Затем вводим начальное значение интервала (пусть у нас это будет 2) и нажимаем кнопку «точку с запятой» « ; » (помним что на латинской раскладке клавиатуры «точка с запятой» это русская буква «ж»), MathCAD показывает «точку с запятой» как «две точки» « ... ». Далее ставим конечное значение интервала (пусть будет 12)

Теперь, если мы поставим « х= » мы получим таблицу со значениями заданного диапазона.

Однако, использовать эти значения в выражениях не получится, т.к. MathCAD определяет их как не скалярную величину

В то же время, простое вычисление вполне можно произвести

Чтобы можно было использовать диапазон в выражении, определим значения вектора, для этого введем новую переменную, « у », нажимаем на клавишу « [ » на клавиатуре (это клавиша « х » на русской раскладке), далее вводим нашу переменную диапазона, знак присвоения и снова переменную диапазона (на клавиатуре это будет выглядеть следующим образом: y[x:x ).

Теперь если в каком-либо выражении будет встречаться переменная «у», MathCAD будет вычислять значения для каждого значения данного диапазона, правда с одним «но», вычисления будут происходить с нулевого значения, а так как наш диапазон начинается с двойки от вычисления нулевого и первого значения будут равняться нулю

Конечно, это несколько, не удобно, особенно, если брать большие интервалы, или интервалы далеко от нуля. Можно вызывать значение отдельного значения интервала, задав необходимый индекс (на клавиатуре наберем z[2= ).

MathCAD интервал с заданным шагом

По умолчанию шаг интервала в MathCAD принят за единицу, чтобы его сделать другим необходимо задать интервал следующим образом: а:=0.2,0.4...2 (этим выражением мы задаем интервал от 0,2 до 2 с шагом 0,2)