Разное

Как в маткаде индекс поставить: «Маткад нижний индекс?» — Яндекс Кью

Буквенные индексы

Переменные и константы

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

 

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

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

 

Дискретные аргументы

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

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

 

Операторы

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

Эта глава содержит список операторов Mathcad и описывает, как вводить и использовать специальные операторы.

 

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

В этой главе перечислены и описаны многие из встроенных функций Mathcad. Статистические функции Mathcad описаны в Главе “Статистические функции”. Функции, используемые для работы с векторами и матрицами, описаны в Главе “Векторы и матрицы”.

 

Статистические функции

В данной главе приводится перечень, и дается описание встроенных функций пакета Mathcad. Эти функции выполняют широкий спектр вычислительных заданий, включая статистический анализ, интерполяцию и регрессионный анализ.

 

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

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

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

 

Решение уравнений

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

 

Решение дифференциальных уравнений

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

 

Символьные вычисления

Эта глава описывает символьные преобразования  в Mathcad.

 

Файлы данных

Mathcad читает и записывает файлы данных — файлы ASCII, содержащие числовые данные. Читая файлы данных, можно брать данные из различных источников и анализировать их в Mathcad. Записывая файлы данных, можно экспортировать результаты Mathcad в текстовые процессоры, электронные таблицы и другие прикладные программы.

Mathcad включает два набора функций для чтения и записи данных. READ, WRITE и APPEND читают или записывают одно числовое значение за раз. READPRN, WRITEPRN и APPENDPRN считывают целую матрицу из файла со строками и столбцами данных или записывают в виде такого файла матрицу из Mathcad.

 

Графики

Графики в Mathcad являются и универсальными, и легкими в использовании. Чтобы создать график, щёлкните в месте, где нужно вставить график, выберите

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

 

Полярные графики

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

 

Графики поверхностей

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

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

 

Карты линий уровня

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

 

Трехмерные гистограммы

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

 

Точечные графики

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

 

Графики векторных полей

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

Разделы

  • Имена

Допустимые имена переменных и функций; как напечатать греческие буквы

Список переменных, значения которых определены при запуске Mathcad

  • Числа

Вещественные, мнимые, шестнадцатиричные, восьмеричные числа; размерные значения

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

Использование комплексных чисел в Mathcad

Имена в Mathcad могут содержать любые из следующих символов:

  • Прописные и строчные латинские буквы.

  • Цифры 0 до 9.

  • Знак подчёркивания ( _ ).

  • Штрих ( ` ). Обратите внимание, что это не то же самое, что апостроф. Этот символ находится на одной клавише с тильдой (~).

  • Символ процента (%).

  • Греческие буквы. Чтобы вставить греческую букву, напечатайте соответствующую римскую букву и нажмите [Ctrl]G. Greek letters;in equations

  • Символ бесконечности , производимый нажатием [Ctrl]Z.

Имена функций и переменных не могут включать пробелы или любые иные символы, не перечисленные выше.

К именам переменных относятся следующие ограничения:

  • Имя не может начинаться с цифры, знака подчеркивания( _

    ), штриха  ( ` ), или символа процента (%).

  • Символ бесконечности может быть только первым символом в имени.

  • Любые символы, напечатанные после нажатия клавиши точки (. ), будут записаны как нижний индекс. Это обсуждается в подразделе “Буквенные индексы” ниже в этой главе.

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

  • Mathcad не делает различий между именами переменных и именами функций. Таким образом, если определить вначале f(x), а затем переменную f, окажется невозможным использовать f(x) где-либо ниже определения  f.

  • Некоторые имена уже используются Mathcad для встроенных констант, единиц измерения и функций. Хотя эти имена можно переопределить, имейте в виду, что это уничтожит их встроенные значения. Например, если определить переменную

    mean,  встроенная функция Mathcad mean(v) не сможет больше использоваться.

Mathcad различает в именах символы верхнего и нижнего регистра. Например, diam — переменная, отличная от DIAM. Mathcad также различает в именах различные шрифты. Поэтому DIAM — также отличная от DIAM. Ниже приведены примеры допустимых имен:

alpha

b

xyz700

A1_B2_C3_D4%%%

F1’

a%%

Как напечатать греческие буквы

Есть три способа напечатать в математической области Mathcad греческую букву:

  • Напечатать римский эквивалент. Затем нажать [Ctrl]G.

  • Напечатать римский эквивалент, затем выбрать Греческий шрифт из меню Математика.

  • Щёлкнуть по соответствующему символу на палитре греческих символов. Чтобы открыть эту палитру, нажмите на кнопку, помеченную  на полосе кнопок под меню.

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

Обратите внимание: Поскольку символ p часто используется, его можно также напечатать, нажимая [Ctrl]P.

В Приложении А приведены таблицы, в которых перечисляются все греческие символы и их римские эквиваленты. Они устанавливают то же соответствие между греческими и римскими символами, что и шрифт Symbol. Заглавные римские буквы соответствуют заглавным греческим, а строчные — строчным.

Если поместить точку в имени переменной, Mathcad отобразит всё следующее за ней как нижний индекс. Можно использовать эти буквенные нижние индексы для создания переменных с именами подобными velinit и uair .

Чтобы создать буквенный нижний индекс, выполните следующее:

Не путайте буквенные нижние индексы с нижними индексами массива. Хотя они выглядят одинаково, они совершенно различны. Буквенный нижний индекс, созданный печатанием точки, является на самом деле только частью имени переменной. Нижний индекс массива осуществляет ссылку на элемент массива. Нижние индексы массива создаются клавишей левой скобки ( [ ).

Mathcad содержит восемь переменных, значения которых определены сразу после запуска программы. Эти переменные называются предопределенными или встроенными переменными. Предопределенные переменные или имеют общепринятое значение, подобно  и e, или используются как внутренние переменные, управляющие работой Mathcad, подобно ORIGIN и TOL.

Хотя эти переменные уже имеют значения при запуске Mathcad, их можно переопределять. Например, если нужно использовать переменную, называемую e, со значением иным, чем используемое Mathcad, введите новое определение, например e:=2 . Переменная e примет в рабочем документе новое значение всюду ниже этого определения.

Предопределенные переменные Mathcad определены для шрифтов всех гарнитур, размеров и начертаний. Это означает, что, если переопределить e как показано выше, можно все еще использовать e, или e как основание натуральных логарифмов. Сказанное не относится к греческим буквам, то есть , хотя она печатается как “e” в шрифте Symbol, не одно и то же, что e.

Можно управлять значениями TOL, ORIGIN, PRNPRECISION и PRNCOLWIDTH без необходимости явно определять их в рабочем документе. Выберите Встроенные переменные из меню Математика — появится диалоговое окно, показанное ниже.

Чтобы установить новое значение любой из этих переменных, введите его в соответствующее поле и нажмите “OK”. Затем выберите Пересчитать всё из меню Математика, чтобы новое значение встроенной переменной было учтено при обсчете существующих формул.

Числа в скобках справа от имён переменных представляют значения по умолчанию этих переменных. Справа от полей указаны допустимые диапазоны значений переменных.

Переменная = значение по умолчанию

Определение и использование

p = 3.14159 …

Пи. В численных расчетах Mathcad использует значение  с учётом 15 значащих цифр. В символьных вычислениях  сохраняет своё точное значение. Чтобы напечатать , нажмите [Ctrl]P.

e = 2. 71828 …

Основание натуральных логарифмов. В численных расчетах Mathcad использует значение e с учётом 15 значащих цифр. В символьных вычислениях e  сохраняет своё точное значение.

A  = 10307

Бесконечность. В численных расчетах это заданное большое число. В символьных вычислениях — бесконечность. Чтобы напечатать , нажмите  [Ctrl]Z.

% = 0.01

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

TOL = 103

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

ORIGIN = 0

Начало массива. Определяет индекс первого элемента массива.

PRNCOLWIDTH = 8

Ширина столбца, используемая при записи файлов функцией WRITEPRN.

PRNPRECISION = 4

Число значащих цифр, используемых при записи файлов функцией WRITEPRN.

FRAME = 0

Используется для создания и просмотра анимаций. Когда анимации не используются, равна нулю.

Этот раздел описывает различные типы чисел, используемых Mathcad, и способы их записи в формулы.

Функции и переменные в MathСad

 

Mathcad раскрывается в полной мере при использовании переменных и функций.

 

Два знака равенства

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

  • определение (присвоение значения) — используется двоеточие;
  • вычисление — используется знак равенства.

 

Важность оператора определения не меньше, чем важность оператора вычисления. В приведенном ниже примере значение y можно вычислить лишь после присвоения ему определенного значения. х и у здесь являются переменными.

 

Два знака равенства, которые изображены выше, имеют совершенно разные значения, поэтому нужно очень внимательно относится к ним.

Поставьте курсор перед числом 4 в примере выше.

 

Удалите число 4 клавишей [Delete], и введите 5. Нажмите на пустой области, чтобы выйти из области вычисления и увидите, что результат вычислений поменялся на 25:

 

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

 

Использование переменных

Введите такие выражения в область вычисления

 

Проведите операции замены значения х на такие: 100, 0.5, -4 и 0.

 

В первых двух случаях вы получите число в качестве результата. В третьем случае у вас будет мнимое число. При значении х ноль программа выведет ошибку и обведет результат красным. Если вы нажмете на красное выделение, то увидите описание проблемы:

 

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

  • с любой буквы как большой, так и маленькой;
  • с других символов, которые не являются операторами;
  • с символов из вкладки Математика -> Операторы и символы -> Символы;
  • с символов из таблицы символов ОС Windows.

Вот примеры:

 

Использование переменных доступно, только если вы определите их заранее. Термин «заранее» обозначает, что присвоение значения переменной должно производиться выше или левее выражения, где эта переменная используется. Если вы не объявили переменную заранее, то появится сообщение об ошибке:

 

Подстрочные индексы

Mathcad существует два типа подстрочных индексов:

  1. Описательный подстрочный индекс.
  2. Индекс массива (матрицы).

Для ввода описательного индекса сначала введите желаемое имя переменной, а потом нажмите комбинацию [Ctrl+-], далее вводите подстрочный индекс.

 

Переменная, которая имеет описательный индекс — это простая переменная, которой присвоено имя. Индекс массива сильно отличается от него. Такой индекс можно присвоить, если ввести квадратную скобку [ после имени переменной. Переменная может иметь один или два индекса массива:

 

Индекс массива может иметь только числовое значение. При этом не путайте разные типы индексов, так как они довольно схожи визуально.

 

Более четко разницу видно, если нажать мышкой на выражение

 

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

 

Функции

Использование переменных возможно только при определении их заранее. Но есть исключение из этого правила — определение функции. Можно произвести определение своей функции. Пример ниже.

 

Переменная а имеет для функции локальное значение. Она не несет определения за пределами этой функции.

 

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

 

Вы не будете сталкиваться с такой проблемой, если будете задавать переменной и функции различные имена. Об обозначениях мы поговорим в уроке 10.

Функции могут иметь более одной переменной.

 

Значения переменных х и у не изменяются и в этой функции.

 

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

Mathcad имеет очень много встроенных функций. Перейдите во вкладку Функции.

 

Все функции вы можете увидеть, если нажмете на кнопку Все функции.

Обратите внимание, что все тригонометрические функции в качестве аргумента получают угол не в градусах, а в радианах. Чтобы использовать градусы нужно выбрать их во вкладке Математика -> Операторы и символы -> Символы.

 

Математика в тексте

В текстовую область можно поместить область вычислений. Так вы сможете использовать в тексте подстрочные и надстрочные символы. Чтобы сделать это, при редактировании текстовой области нужно нажать на кнопку Математика во вкладке Математика -> Области.

 

Например:

 

Резюме

1. Mathcad использует два знака равенства отдельно для определения := и для вычисления =.

2. Имя переменной нельзя начинать с цифры. Можно использовать для этого только буквы или символы, отличные от символов операторов. Символы можно вводить с панели Математика -> Операторы и символы -> Символы, а также брать из панели символов Windows.

3. Для определения значения переменной нужно:

  • щелкнуть на пустую область;
  • ввести имя переменной;
  • ввести оператор определения [:=];
  • ввести значение переменной.

4. Для присвоения переменной подстрочного описательного индекса нужно:

  • нажать мышкой в конце имени переменной;
  • нажать [Ctrl+-];
  • ввести подстрочный индекс.

5. Для присвоения переменной индекса массива:

  • нажмите мышкой в конце имени переменной;
  • нажмите на клавиатуре на открывающуюся квадратную скобку [;
  • ввести нужный подстрочный индекс.

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

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

8. Переменные в функциях имеют определение только в рамках этой функции.

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

Переменные индексации и диапазона — сообщество PTC

ХОРОШО . . . Я прочитал эту интересную тему сверху донизу. . . некоторые сегменты более одного раза. . . и я собираюсь бросить свою собственную шляпу на ринг. . .

Но, во-первых, чтобы люди знали, откуда я. . . мой опыт и рабочая среда. У меня есть BSEE и майнор в CS; а во время учебы в колледже я работал и техником/ассистентом по ЭЭ, и разработчиком программного обеспечения. Итак, мой 4-летний опыт работы в колледже и 25 лет опыта работы после колледжа был пинг-понгом «проектирования / анализа / моделирования схемы» и «разработки / кодирования программного обеспечения». Я разработал код для управления приспособлениями для тестирования/диагностики плат электроники, я разработал программу 3D CAD для рисования каркасных моделей, я разработал код для дисплеев кабины летного симулятора и «видов из окна», я Я разработал макросы и мини-инструменты для использования в нашем симуляторе цепей, а также разработал множество небольших домашних приложений. Я программировал на APL, BASIC, FORTRAN, Visual Basic, TCL/TK, PERL, AWK, c-shell, а теперь самообучаюсь Visual C#; и я также программирую на проприетарном языке моделирования, известном как MAST (предшественник VHDL-AMS). Я также работал системным инженером (был архитектором первого комбинированного контроллера двигателя и трансмиссии GM, который дебютировал еще в 1991), продвинутый архитектор разработки интегральных схем для элементов управления PowerTrain, и в течение последних 12 лет работал на различных центральных/основных должностях «моделирование, моделирование, анализ»; на этой последней должности я спроектировал множество аналоговых схем, помог в анализе многочисленных аналоговых схем, создал множество моделей дискретных устройств для симулятора и заработал 4 патента. Я начал использовать Mathcad для своих аналитических работ и полюбил его так сильно, что стал корпоративным гуру, и мне было поручено управлять нашими корпоративными лицензиями и создавать/представлять учебные классы, чтобы помочь другим инженерам использовать этот замечательный инструмент в своих проектах. /аналитическая деятельность. В этой роли я создал основанный на Mathcad инструмент для выполнения статистического анализа наихудшего случая в духе учений «Проектирование для шести сигм»; это МНОГО разработки программных блоков в сочетании с МНОГО знаний о мыслительном процессе проектирования электрических схем. Так вот откуда я родом. . . любые вопросы? 🙂

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

Итак, мои мысли на эту тему. . .

1) Я много раз видел, как мои конечные пользователи (и студенты) попадали в беду из-за того, что путали переменные диапазона с векторами; это, конечно, не помогает, когда они «распечатывают содержимое» переменной диапазона (используя знак =), что значение отображается в псевдо-сетке, похожей на то, как вектор отображается в формате «таблицы». С переменными диапазона было совершено множество «плохих вещей», некоторые из которых уже упоминались в треде. Да, можно было бы возразить, что документация в Mathcad могла бы быть лучше, но я нашел ее вполне достаточной в отношении этой темы. Я думаю, что после того, как я вбил им в голову, что переменные диапазона — это то же самое, что циклы For..Next в языке программирования (практически все EE и ME в какой-то момент проходили какие-то занятия по программированию). своей карьере в колледже, по крайней мере, те, кому меньше 50 лет, когда компьютеры уже существовали, когда они поступали в колледж), они перестают думать о переменных диапазона как о векторах (массивы на языке программистов). Очень жаль, что создатели Mathcad решили отображать список значений способом, очень похожим на то, как они отображают векторы; Я бы предпочел отобразить список горизонтально, чтобы он по крайней мере имел другую ориентацию, чем векторная таблица.

2) Я согласен с Тедом, что переменные диапазона лучше всего подходят для использования в качестве способа создания циклической конструкции; для создания переменной, которая принимает список значений, обычно целых чисел и обычно с единичным интервалом, для итерации по векторам/матрицам. Как и все языки программирования (если честно, Mathcad — это своего рода язык программирования, потому что, как и в любом языке программирования, существует четко определенный поток процессов, в котором выполняются вычисления, значения хранятся в переменных и т. д.) , Mathcad нуждается в способе «зацикливания» или «итерации» через вычисление (или набор вычислений), и переменные диапазона отлично с этим справляются (при условии, что значения разделены единичным интервалом). Могу ли я использовать для этого небольшой кусок блока программирования (в основном, одну строку с циклом FOR)? Конечно. Но метод переменных диапазона работает хорошо, компактен и легко пишется/понимается, и существует уже давно. Единственное, с точки зрения «программиста», это неудобное расположение аргументов. Практически ВСЕ языки программирования настраивают синтаксис для циклов как: Первый, Последний, Шаг (или Приращение). Синтаксис переменной диапазона Mathcad: First, Next, Last. . . он вычисляет Шаг из разницы между Первым и Следующим. Большинство программистов, желающих создать цикл, и я бы также рискнул сказать, что большинство математиков, желающих создать список значений, различают начальное значение, конечное значение и расстояние между значениями; Я бы сказал, что можно с уверенностью сказать, что мы все ненавидим вручную вычислять значение Next в последовательности. Но я понимаю, что синтаксис Mathcad соответствует тому, что использовалось в учебниках по математике на протяжении веков, так что это соглашение, которое было установлено задолго до того, как появились языки программирования 🙂 Да будет так.

3) Я согласен с Томом в том, что должен быть лучший способ заполнения вектора диапазоном значений, не равным единице, поскольку именно так думают математики и многие из моих новые пользователи/учащиеся пытаются сначала использовать переменные диапазона. Я тоже устал от необходимости заполнять вектор списком значений с нечетным интервалом (например, PI/20), используя переменную диапазона NN от 0 до N, а затем вычисляя NN-й элемент вектора как NN * PI /20 . . . Я бы предпочел просто сказать NN := 0,PI/20..N и иметь вектор, заполненный тем количеством элементов, которое требуется для получения запрошенного диапазона. Тогда мои конечные пользователи получат то, что, по их мнению, они создают на первом месте (вектор), и они смогут выполнять любые/все обычные манипуляции с векторами, потому что это действительно будет вектор (а не просто переменная со списком значений, которые отображаются только как вектор). Но для этого потребуется новый синтаксис, чтобы старые переменные диапазона могли работать так, как они работают (т. е. я полностью за «обратную совместимость» и «не нарушать существующие рабочие листы»). Всегда будучи человеком, ищущим проблему в поисках ответа, я решил написать код некоторых функций (которые я добавлю в нашу корпоративную библиотеку многократно используемых функций, чтобы все мои конечные пользователи могли получить пользу) для выполнения этой работы; см. прилагаемый рабочий лист; один из них (векторный заполнитель с логарифмическими интервалами) уже существовал в нашей библиотеке, так как он делает построение графиков Боде намного более привлекательным (поскольку виджет 2D-графика Mathcad v11 слишком глуп, чтобы автоматически генерировать значения X с логарифмическими интервалами, когда X установлен в режим «журнала»; что-то исправлено в v14). Я вижу, что хотят сделать Том и Фил, и я знаю, что лучший способ сделать это — использовать векторы (не переменные диапазона), но, к сожалению, текущий синтаксис не позволяет легко создавать векторы на основе аргумента математика. -список (Первый, Следующий..Последний) . . . поэтому, чтобы они выглядели читаемыми/понятными для них (и их сверстников), они используют переменные диапазона таким образом. Я не виню их, я виню язык Mathcad (см. ниже).

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

Итог . . . мое «взгляд» на ситуацию состоит в том, что первоначальные создатели Mathcad (жаль, что Аллена больше нет здесь, чтобы ответить на это; я действительно уважал его идеи) упс, когда они придумали идею переменной диапазона . Они использовали математический синтаксис/номенклатуру, которая представляет собой список значений, для создания переменной итерации, а не фактического списка значений (то есть вектора). Mathcad — это такая управляемая векторами платформа (как, насколько я понимаю, Maple и Mathematica), обладающая такими большими возможностями для манипулирования одномерными и двумерными блоками чисел, что кажется довольно странным, что переменные диапазона не реализованы в виде векторов. Я полностью согласен с тем, что должна существовать какая-то конструкция переменной цикла, но жаль, что она была реализована с использованием математических обозначений и поведения компьютерного программиста. Это случай слияния двух крайне необходимых конструкций в одну конструкцию, которая не справляется ни с одной из задач идеально. Я бы предпочел (и, возможно, это возможно в будущей версии, если мы сможем найти способ сделать новый Mathcads обратно совместимым со старыми рабочими листами) что-то вроде:

Автозаполнение векторов:
V := First, Next .. Last

Циклические переменные:
N := FOR First TO Last STEP Incrmt
Or N := LOOP First TO Last STEP Incrmt

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

8 марта 2007 г., 6:14:46, Тед Дил написал:
>Том,
>
>Прежде чем я отвечу,

Нижние и верхние индексы » MathCadHelp.com » Номер 1 в назначениях MathCad

Вы можете ссылаться на отдельные элементы массива, используя нижние индексы. Вы также можете сослаться на весь столбец массива, используя верхний индекс. Чтобы ввести индекс, используйте клавишу левой квадратной скобки «[ » и поместите целое число или пару целых чисел в заполнитель. Чтобы вставить надстрочный оператор, нажмите [Ctrl]6 и поместите целое число в местозаполнитель.

Векторные и матричные элементы обычно нумеруются, начиная с нулевой строки и нулевого столбца. Чтобы изменить это, измените значение встроенной переменной ORIGIN. См. «Изменение начала массива» на странице 188.

Индексы и элементы вектора

Верхнее уравнение на рис. 10-1 определяет вектор v. Чтобы увидеть нулевой (верхний) элемент вектора v:

• Введите v[0=

 

. Вы также можете определить отдельные элементы вектора, используя нижний индекс в левой части определения. Чтобы изменить «z на 6:

• Введите v[2: 6

Рисунок 10-2

При определении элементов вектора в векторе можно оставлять пробелы. Например, если v не определено, а вы определяете v3 как 10, «o-vI» и v2 не определены. Mathcad заполняет эти промежутки нулями до тех пор, пока вы не введете для них определенные значения, как показано на рис. 10-3. При этом будьте осторожны, чтобы случайно не создать очень большие векторы и матрицы.

Рисунок 10-2:

Рисунок 10-3:

Индексы и матричные элементы

Чтобы просмотреть или определить элемент матрицы, используйте два нижних индекса, разделенных запятой. В общем, чтобы обратиться к элементу в i-й строке, j-м столбце матрицы M, введите

M [i, j

. Обратите внимание, что нижние индексы, такие как деление и возведение в степень, являются «липкими». Все, что вы вводите после [ остается в нижнем индексе, пока вы не нажмете [Пробел], чтобы выйти.

Если вы хотите добавить больше к уравнению, нажмите [Пробел], чтобы поместить все имя элемента матрицы, Mi,} между строками редактирования.

На рис. 10-4 показано несколько примеров того, как определять отдельные элементы матрицы и как их просматривать. Обратите внимание, что, как и в случае с векторами, Mathcad заполняет неуказанные элементы матрицы нулями. См. главу 11, «Переменные диапазона».

Верхние индексы со столбцами матрицы

Чтобы обратиться ко всему столбцу массива, нажмите [Ctrl]6 и поместите номер столбца в полученный заполнитель. На рис. 10-5 показано, как разместить третий столбец матрицы M в векторе v.

Рисунок 10-5:

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

Изменение начала массива

По умолчанию массивы Mathcad начинаются с нулевого элемента. Чтобы изменить это, измените значение встроенной переменной ORIGIN. Когда вы используете индексы для ссылки на элементы массива, Mathcad предполагает, что массивы начинаются с текущего значения ORIGIN

Например, предположим, что вы хотите, чтобы все ваши массивы начинались с первого элемента. Есть два способа изменить значение ORIGIN для всего листа: 9. 0003

• Выберите команду «Параметры» в меню «Математика», перейдите на вкладку «Встроенные переменные» и измените значение ORIGIN.

• Введите глобальное определение для ORIGIN в любом месте рабочего листа. Например, чтобы изменить ORIGIN на единицу, введите: ORIGIN-1.

Если вы измените ORIGIN на единицу, Mathcad больше не будет поддерживать нулевой элемент для векторов или нулевые строку и столбец для матриц. На рис. 10-6 показан рабочий лист с ORIGIN, установленным на 1. Обратите внимание, что при попытке сослаться на V Mathcad отображает соответствующее сообщение об ошибке.

Рисунок 10-6:

При переопределении НАЧАЛА на листе помните о следующих предложениях:

• Если вы определяете НАЧАЛО с помощью определения на листе, а не с помощью команды Параметры в меню Математика, используйте единственное глобальное определение. Хотя вы можете переопределить ORIGIN с помощью «: =», это неизменно приведет к путанице. Изменение ORIGIN в середине листа может привести к путанице. Кажется, что элементы массива сместились на n позиций, где n — разница между старым ORIGIN и новым ORIGIN.

• Не забудьте ввести ПРОИСХОЖДЕНИЕ заглавными буквами. Имена переменных Mathcad чувствительны к регистру. Поскольку ORIGIN является встроенной переменной, ее имя не зависит от шрифта. Однако он по-прежнему чувствителен к регистру.

• Когда вы определяете массив, Mathcad присваивает нуль любому неопределенному элементу. См. пример на рис. 10-3.

• Если вы непреднамеренно определите массив, начинающийся с элемента 1, когда для параметра ORIGIN задано значение по умолчанию, равное нулю, вы получите неожиданные ответы с такими функциями массива, как среднее и fft. Это связано с тем, что Mathcad автоматически определяет Xo = 0 для всех этих массивов. Этот дополнительный элемент искажает значения, возвращаемые функциями массива. Чтобы избежать этой проблемы, выберите «Параметры» в меню «Математика», перейдите на вкладку «Встроенные переменные» и установите для параметра ORIGIN значение 1.

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

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