Как определить индексированную переменную в mathcad

Foodband

Основные средства программы MathCAD

Конструирование выражений в MathCAD осуществляется с помощью математических панелей. Ввод заканчивается клавишей Enter или щелчком мыши вне определения. Синий уголок показывает текущий операнд выражения, он может быть расширен клавишей " Пробел ". В качестве разделителя целой и дробной части числа используется точка.

Арифметические операции , простейшие функции, знаки присваивания переменным (символ :=) можно вводить, используя панель Calculator (Калькулятор). Численные ответы выражений определяются нажатием клавиши [=] на клавиатуре. В качестве элементов выражения могут использоваться функции определенных интегралов, сумм и произведений с панели Calculus.

Для ввода математической функции различной категории используется команда Insert /Function (Вставить функцию).

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

1.4.1. Переменные и функции.

Переменная в MathCAD – это идентификатор, который используется в выражениях и которому можно присвоить числовое значение. Идентификатор – набор букв и цифр, первым из которых должна быть буква; буквы могут быть латинскими или греческими с соответствующей панели; малые и большие буквы различаются; в качестве цифры может использоваться символ подчеркивания. При выполнении цепочки выражений последовательность вычислений в документе определяется слева — направо и сверху — вниз. Чтобы цепочка выражений была вычислена, надо всем переменным присвоить числовые значения. Присваивания бывают двух видов: локальные и глобальные. Локальное присваивание осуществляется нажатием символа := на панели Калькулятор. Присвоенное значение в документе начинает действовать с момента его записи (слева-напрво и сверху-вниз).

Глобальное присваивание действует в пределах всего документа независимо от места его определения. Глобальное присваивание определяется символом === с панели Evaluation. Ниже (Рис.1.10) приведен пример цепочки выражений с использованием локального (для х) и глобального (для а) присваивания:

a\equiv3

x:=1, y:=x+3-\cos<(x^2)>, z:=x+y+a

x:=2, \mu:=y\frac<z>+e^x

y:=3.46, z:=7.46, \mu:=15.992

Встроенные константы

Символьный процессор распознает и способен выдавать математические константы в качестве результата.

Вычислительный процессор воспринимает как числа

\infty-бесконечность ( клавиши <Ctrl>+<Shift>+<z>);

е— основание натурального логарифма (клавиша <е>);

\pi; — число "пи" (вводится клавишами <Ctrl>+<Shift>+<p>);

j— мнимая единица (вводится клавишами <1>, <i> или <1>, <j>);

\% — символ процента, <%>, эквивалентный 0,01.

Основные типы переменных
Действительные числа

Любое выражение, начинающееся с цифры, MathCAD интерпретирует как число. Числа набираются на клавиатуры в нужном формате (Рис.1.11). Форматы представлены в окне Format/Result (Рис.1.7.).

a\equiv1000

b:=1.3474

c:=3124.1

d:=45.21\cdot10^<-5>

Комплексные числа

Комплексное число является суммой действительного и мнимого числа, получающегося путем умножения любого действительного числа на мнимую единицу (imaginary unit) i. По определению полагается, i2=-1. Для ввода мнимой единицы надо нажать клавиши <1>, <i.> (Рис.1.12). Если просто ввести символ "i", то MathCAD интерпретирует его как переменную i.

t:=1i+1

t^2\equiv2i

2t=2+2i

Размерные значения

В MathCAD числовые переменные и функции могут обладать размерностью. Используется команда Insert / Unit (Вставка / Единицы). "Горячая" клавиша <Ctrl>+<U>. В программе встроено большое количество единиц измерения, с помощью которых и создаются размерные переменные. Для ввода размерного значения — сразу после ввода переменной ввести символ умножения, в окне Insert / Unit списке Unit (Единицы) выбрать нужную единицу измерения

Pедактирование формул

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

  1. Набираемая формула всегда заключена в рамку. Не выходите из рамки, пока не закончили набор формулы!
  2. Для набора формул пользуйтесь "Калькулятором" из "Математической палитры"

При наборе формул возможно появление ошибок набора. Кнопка на стандартной панели инструментов позволяет отменить последнее действие, выполненное при редактировании, т.е. вернуться к тексту, набранному ранее.

Встроенные функции MathCAD

Стандартные математические функции и численные методы, запрограммированные в MathCAD, реализованы в виде встроенных функций. Для вставки функции команда меню Insert /Function (Вставить функцию)(Рис.1.17).

 Окно стандартных функций

Собственные функции пользователя

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

где имя_функции – любой идентификатор; аргументы – список аргументов функции через запятую; выражение – любое выражение с использованием стандартных функций и функций пользователя, определенных в документе перед этим. Выражение должно содержать идентификаторы аргументов. Пример цепочки выражений с использованием функций пользователя приведен ниже:

y:=x+\cos<x>

f(x,y):=x^2+y^2

s(x,y):=x+y+f(x,y)

z(x,y):=s(x,y)+x

x:=2

z(x,y):=12.092

1.4.2. Массивы

Массивами (arrays) называют упорядоченные последовательности чисел или элементов. Доступ к любому элементу массива возможен по его индексу, т. е. номеру в последовательности чисел В MathCAD условно выделяются два типа массивов: векторы (одноиндексные массивы), матрицы (двухиндексные массивы), и тензоры (многоиндексные массивы); ранжированные переменные (range variables) — векторы, элементы которых определенным образом зависят от их индекса.

Векторы и матрицы

Матрицей размером mxn называется совокупность m•n чисел, расположенных в виде прямоугольной таблицы из m строк и n столбцов. Эту таблицу обычно заключают в круглые скобки. Для краткости матрицу можно обозначать одной заглавной буквой, например, А или В.

В общем виде матрицу размером m x n записывают так

\mathbf= \left( \begin<array> <cccc>a_ <11>& a_ <12>& \ldots & a_ <1n>\\ a_ <21>& a_ <22>& \ldots & a_<2n>\\ \ldots & \ldots & \ldots & \ldots \\ a_ <m1>& a_ <m2>& \ldots & a_<mn>\\ \end <array>\right)

Числа, составляющие матрицу, называются элементами матрицы. Элементы матрицы имеют два индекса aij: первый указывает номер строки, а второй – номер столбца. Например, a23 – элемент стоит во 2-ой строке, 3-м столбце. Если в матрице число строк равно числу столбцов, то матрица называется квадратной, причём число ее строк или столбцов называется порядком матрицы. Матрица, в которой число строк не равно числу столбцов, называется прямоугольной. Матрицу с одним столбцом называют вектор-столбец, с одной строкой — вектор-строка.

Сложение матриц производится поэлементно, но размеры матриц должны совпадать Умножение матриц. осуществляется по своеобразному закону. Прежде всего, размеры матриц–сомножителей должны быть согласованы. Перемножать можно только те матрицы, у которых число столбцов первой матрицы совпадает с числом строк второй матрицы (т.е. длина строки первой равна высоте столбца второй). Произведением матрицы A не матрицу B называется новая матрица C=AB, элементы которой составляются следующим образом:

 \left( \begin<array> <cc>a_ <11>& a_ <12>\\ a_ <21>& a_ <22>\\ \end <array>\right) \left( \begin<array> <ccc>b_ <11>& b_ <12>& b_ <13>\\ b_ <21>& b_ <22>& b_ <23>\\ \end <array>\right) = \left( \begin<array> <ccc>a_<11>b_<11>+a_<12>b_ <21>& a_<11>b_<12>+a_<12>b_ <22>& a_<11>b_<13>+a_<12>b_ <23>\\ a_<21>b_<11>+a_<21>b_ <21>& a_<21>b_<12>+a_<22>b_ <22>& a_<21>b_<13>+a_<22>b_ <23>\\ \end <array>\right)

Например, в произведении — матрице C, элемент стоящий в 1-ой строке и 1-м столбце c11, равен сумме произведений элементов 1-ой строки матрицы A и 1 столбца матрицы B,

Создаются матрицы при помощи кнопки палитры инструментов Matrix или команды Insert/Matrix (Рис.1.18, Рис.1.19, Рис.1.20). Появляется окно Insert matrix, где указывается количество строк, столбцов Rows и Columns.

Индексированная переменная

Индексированная таблица в памяти js
Добрый день, подскажите плиииз. Есть ли в js некий механизм подобный &quot;индексированной таблицы&quot;.

Переменная=Документ.имя. Сделать выборку всех документов с именем Переменная
Привет всем. У меня есть проблема и варианты решения, но они не работают. Проблема вот такая.

Проблема с Adodc: ‘Переменная объекта или переменная блока With не задана’
В свойствах самого контрола (MS ADO Data Control) проверка подключения к атблице (подключаюсь через.

Модульная переменная или блочная статическая переменная: что лучше
Переменная (тип String) нужна на всем протяжении работы программы. Нужен совет опытных — что.

MathCAD

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

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

Name := N нач .. N кон ,

где Name — имя переменной, N нач — ее начальное значение, N кон — конечное значение, .. — символ, указывающий на изменение переменной в заданных пределах (он вводится знаком точки с запятой ; ). Если N нач < N кон , то шаг изменения переменной будет равен +1, в противном случае -1.

Для создания ранжированной переменной общего вида используется выражение:

Name := N нач , , N след .. N кон

Здесь N след — значение переменной, следующее за N нач и задающее шаг изменения переменной.

Знак равенства после любого выражения с ранжированными переменными инициирует таблицу вывода. Несколько таких таблиц показано на рис.2.1. Числа в таблицах можно задавать в требуемом формате с помощью операций задания формата чисел – Precision – число знаков после точки, которое регулируется через меню Math-Options.

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

Системные переменные в MathCAD имеют заранее определенные начальные значения, установленные в меню Math-Options (см. Приложение 4). Они могут быт в дальнейшем изменены присваиванием им новых значений. Однако рекомендуется этого не делать во избежание ошибок двойного истолкования таких переменных. Например, переменная TOL задает погрешность вычислений при реализации численных методов. Если задать ее равной 0.001, то гарантии в правильности цифр, начиная с четвертого знака после десятичной точки нет.

Логические переменные и выражения могут принимать значение 0 (ложь) или 1 (истина), которые совпадают со значениями числовых констант

0 и 1. Логические операции вводятся при помощи наборной панели «Boolean Toolbar».

2.2. Работа с массивами, векторам и матрицами

Самые распространенные одномерные и двумерные массивы называются векторами и матрицами . Массивы могут содержать как числовые, так и символьные данные.

В MathCAD массив задается именем, как и любая переменная. Однако он имеет ряд элементов с определенным порядком расположения. Порядковый номер элемента задается индексом. Нижняя граница индексации определяется значением системной переменной ORIGIN , которая, по умолчанию, рана 0.

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

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

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

Вектор или матрица могут быть созданы присваиванием их элементам (индексированным переменным) тех или иных значений. В отношении индексированных переменных действуют те же правила присваивания и ввода, что и для обычных переменных. Если пропустить ввод каких-либо элементов матрицы, то им будут присвоены нулевые значения. Например, если написать f 3 := 5 при ORIGIN=0, то мы получим вектор-столбец

На рис.2.1 посредине показано задание размерного вектора f и матриц M1 , M2 путем поэлементного их формирования с помощью ранжированных переменных. Такой способ напоминает присваивания в двух вложенных циклах с управляющими переменными i и j . Обычно удобнее для задания матриц и векторов пользоваться вводом пиктограммы с изображением шаблона матрицы. Это вызывает появление диалогового окна, в котором нужно указать размер матрицы — рис.2.1 справа внизу.

Для облегчения работы с векторами и матрицами в системе MathCAD имеется ряд специальных операторов (Приложение 1).

Рис. 2.1. Демонстрация ранжированных переменных, векторов и матриц

2.3. Использование функций с условиями сравнения

Существует ряд встроенных функций, у которых возвращаемый результат зависит от знака или значения аргумента. При их вычислении производится сравнение аргумента с некоторыми числовыми константами. К

числовым функциям с условиями сравнения относятся:

— наименьшее целое, большее или равное х ;

— наибольшее целое, меньшее или равное х ,

— остаток от деления х / у со знаком х ;

Foodband

— положительный угол между осью х и радиус-вектором точки с

координатами ( х , у );

функция Хевисайда— единичного скачка (дает 0 при х < 0 и 1

в противном случае) Например, прямоугольный импульс

шириной w можно задать как Φ( x ) − Φ( x − w ) ;

символ Кронекера, равен 1 при т=п и 0 в противном случае.

Для создания условных выражений используют функцию условных выражений:

if( Условие, Выражение 1, Выражение 2 )

Если в этой функции условие выполняется, то будет вычисляться выражение 1, в противном случае — выражение 2. На рис.2.2 приведены примеры применения функции if для моделирования процессов однополупериодного выпрямления синусоидального тока.

Рис. 2.2. Примеры использования функций if, until и функций пользователя

2.4. Работа с функциями пользователя

Функции пользователя вводятся с применением следующего выражения:

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

Примеры задания функций одной и двух переменных:

fun(x):= 10 • (1 — ехр(х)),

module(х, у) := x 2 + y 2 .

Переменные, указанные в списке аргументов функций пользователя, являются локальными, поэтому они могут не определяться до задания функций Их имена могут совпадать с именами глобальных переменных, введенных ранее. Пример функции пользователя и работа с ней содержатся на рис.2.2.

2.5. Решение обыкновенных дифференциальных уравнений

Система MathCAD содержит огромное количество встроенных функций для решения стандартных математических задач. Перечень всех

функций приводится в Приложении 2. Рассмотрим функцию rkfixed , которая позволяет решать обыкновенные дифференциальные уравнения численным методом Рунге-Кутта.

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

Рассмотрим следующее дифференциальное уравнение второго порядка:

Избавимся от второй производной, сделав замену:

Теперь дифференциальное уравнение будет содержать две функции и, по существу, оно превращается в систему двух дифференциальных уравнений:

Следующий шаг — это фиксирование правой части полученной системы в векторе D для использования в вычислительных методах функции rkfixed :

Решение системы дифференциальных уравнений записывается в виде матрицы:

M:=rkfixed( y , x 1 , x 2 , points, D ),

где y — вектор начальных условий для y 0 и y 1 , x 1 , x 2 — начальная и конечная

точки интервала решения уравнения, points — количество точек (исключая начальную) конечно-разностной сетки, на которой решаются уравнения. Функция rkfixed возвращает матрицу M, первый столбец которой — это точки x i , где рассчитывается решение, второй столбец — решение исходного

дифференциального уравнения y (в новых переменных — это y 0 ), третий — его первая производная (в новых переменных — это y 1 ).

3 ПРОГРАММИРОВАНИЕ В СРЕДЕ

3.1 Ввод программных операторов

Программные операторы находятся в наборной панели Programming , показанной на рис. 3.1. Как видно из рисунка, программный блок имеет вид самостоятельного модуля, выделяемого в тексте документа жирной вертикальной чертой. Модуль может вести себя как функция без имени и параметров, но возвращающая результат — первый пример на вычисление квадратного корня из числа 12. Программный модуль может выполнять и роль тела функции пользователя с именем и параметрами — второй пример.

Рис. 3.1 Пример программных модулей

3.2 Обзор программных операторов

Набор программных элементов для создания программных модулей весьма ограничен и содержит следующие элементы:

— создает и при необходимости расширяет жирную вер-

тикальную линию, справа от которой в шаблонах задается

запись программного блока;

— символ локального присваивания (в теле модуля);

оператор условного выражения;

оператор задания цикла с фиксированным числом

— оператор задания цикла типа «пока» (цикл выполняется, пока

выполняется некоторое условие);

— оператор иного выбора (обычно применяется с if );

оператор обработки ошибок.

3.3 Оператор Add Line

Оператор Add Line выполняет функции расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Благодаря этому, в принципе, можно создавать сколь угодно большие программы.

3.4 Оператор внутреннего присваивания

Оператор ← выполняет функции внутреннего локального присваивания. Например, выражение x ← 123 присваивает переменной x значение 123. Локальный характер присваивания означает, что такое значение x сохраняет только в теле программы. За пределами тела программы значение переменной x может быть не определенным, либо равно значению, которое задается операторами локального := и глобального ≡ присваивания вне программного блока.

3.5 Оператор создания условных выражений if

Оператор if является оператором для создания условных выражений. Он задается в виде:

Выражение if Условие

Если Условие выполняется, то возвращается значение Выражения. Совместно с этим оператором часто используются операторы прерывания break и оператор иного выбора otherwise .

3.6 Оператор for

Оператор for служит для организации циклов с заданным числом повторений. Он записывается в виде:

for V AR R ANGE

Эта запись означает, что тело цикла – выражение, помещенное в шаблон под словом for , будет выполняться при изменении переменной Var в диапазоне Range. Range может быть непосредственно диапазоном N нач .. N кон , может быть ранжированной величиной ( N нач , , N след .. N кон ) или вектором.

3.7 Оператор while

Оператор while служит для организации циклов, действующих до тех пор, пока выполняется некоторое логическое условие. Этот оператор записывается в виде:

Выполняемое выражение записывается на место шаблона под словом while .

3.8 Оператор otherwise

Оператор otherwise ("иначе") обычно используется совместно с оператором if . Его использование поясняет следующая программная конструкция:

f(x):= 1 if x > о возвращает 1 если x>0

-1 otherwise возвращает -1 во всех иных случаях

3.9 Оператор break

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

3.10 Оператор continue

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

3.11 Оператор-функция возврата return

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

будет возвращаться значение 0 при любом x <0.

3.12 Оператор on error и функция error

Оператор обработки ошибок позволяет создавать конструкции обработчиков ошибок. Этот оператор задается в виде:

Выражение_1 o n error Выражение 2

Здесь, если при выполнении Выражения_2 возникает ошибка, то выполняется Выражения_1 . Для обработки ошибок полезна также функция error (S), которая, будучи в программном модуле возвращает окошко с надписью, хранящейся в символьной переменной S или в символьной константе (любой фразе в кавычках).

3.13 Практические примеры программирования

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

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

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

Обычно модулю присваивается имя со списком переменных, после которого идет знак присваивания. Переменные в списке являются локальными и им можно присваивать значения при вызове функции, заданной модулем. Локальный характер таких переменных позволяет использовать для их имен (идентификаторов) те же имена, что и у глобальных переменных документа. Однако лучше этого не делать и использовать разные имена для локальных переменных программных модулей и переменных документа.

На рис. 3.3 показано применение операторов on error и return , а также действие функции error , задающей вывод надписи в желтом прямоугольнике при активизации мышкой выражения, содержащего ошибку.

Foodband

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *