Маткад все расчеты привели к ошибке или к комплексному результату

0 / 0 / 0

Регистрация: 23.01.2013

Сообщений: 34

1

Все расчёты привели либо к ошибке, либо к комплексному результату

06.04.2014, 18:36. Показов 21700. Ответов 7


Студворк — интернет-сервис помощи студентам

Добрый день!
В Mathcad выполнял расчёты для РГР по ТОЭ. Требуется построить график. Выдает «Все расчёты привели либо к ошибке, либо к комплексному результату». Пробовал решать в 15 и 13 версиях, итог одинаковый.
Расчёт типовой, и поэтому комплексных решений в этой части быть не может.
Помогите разобраться. Спасибо



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

06.04.2014, 18:36

Ответы с готовыми решениями:

Все расчёты привели либо к ошибке, либо к комплексному результату — MathCAD
Доброго времени суток! Я — начинающий пользователь маткада, столкнулся с проблемой. Нужно построить…

График (все расчеты привели либо к ошибке, либо к комплексному результату)
Есть 5 промежутков. 1-3,4-6,7-9,10-12,13-15. График зависимости Мв от омеги.

Как рациональнее…

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

Все расчёты привели либо к ошибке, либо к комплексному результату
Хотел построить пилообразную функцию в маткаде. Выдумал кое-что, что хочу проверить, но маткад…

7

6660 / 4758 / 1984

Регистрация: 02.02.2014

Сообщений: 12,746

06.04.2014, 18:49

2

а архив-то пустой



0



0 / 0 / 0

Регистрация: 23.01.2013

Сообщений: 34

06.04.2014, 19:02

 [ТС]

3

Прошу прощения



0



Модератор

Эксперт по математике/физике

5127 / 3928 / 1359

Регистрация: 30.07.2012

Сообщений: 11,769

06.04.2014, 19:20

4

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

Миниатюры

Все расчёты привели либо к ошибке, либо к комплексному результату
 



0



0 / 0 / 0

Регистрация: 23.01.2013

Сообщений: 34

06.04.2014, 19:40

 [ТС]

5

Не помогло



0



Модератор

Эксперт по математике/физике

5127 / 3928 / 1359

Регистрация: 30.07.2012

Сообщений: 11,769

06.04.2014, 20:30

6

Лучший ответ Сообщение было отмечено GoodWinPro как решение

Решение

Прошу прощения. Забыл присвоить отсортированную матрицу переменной! Теперь графики строятся!

Миниатюры

Все расчёты привели либо к ошибке, либо к комплексному результату
 



1



0 / 0 / 0

Регистрация: 23.01.2013

Сообщений: 34

06.04.2014, 20:57

 [ТС]

7

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

Миниатюры

Все расчёты привели либо к ошибке, либо к комплексному результату
 



0



0 / 0 / 0

Регистрация: 23.01.2013

Сообщений: 34

06.04.2014, 21:12

 [ТС]

8

Три графика должны пересечься в точке (одной), чтобы потом определить значение IL.



0



Приложение 4. Сообщения об ошибках

71

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

Сообщения об ошибках в численных вычислениях

A «Find» or «Minerr» must be preceded by a matching «Given» (Функциям find или minerr должно предшествовать ключевое слово given). Эта ошибка выделяет функцию find или minerr при их несогласованности с given. Каждый вычислительный блок, который заканчивается функцией find или minerr, должен начинаться с ключевого слова given.

All evaluations resulted in either an error or a complex result (Вычисления приводят к ошибке или к комплексному результату). Mathcad не может начертить некоторые точки, потому что не существует действительных значений для их нанесения на график. Это сообщение может появиться, если имеется ошибка или все значения — комплексные.

Arguments in function definitions must be names (Аргументы в определениях функции должны быть именами). Выделенное определение функции содержит неправильный перечень аргументов. В списке аргументов должны быть правильно поименованы переменные или список имен необходимо отделить запятыми.

All the elements in the vector cannot be the same (Все элементы вектора не могут быть одинаковыми). Если используется встроенная функция, возможно, неправильно указаны ее имя или параметры. Проверьте правильность ввода встроенной функции, установив курсор на имени функции и нажав клавишу F1.

At least one limit must be infinity (По крайней мере один предел должен быть бесконечным). Если для интегрирования выбран алгоритм бесконечного предела, то по крайней мере один из пределов интеграла должен быть бесконечным.

Символ бесконечности вводится нажатием комбинации клавиш Ctrl+Shift+z. Для изменения алгоритма, использующего бесконечный предел, или для вычисления какого-либо другого интеграла щелкните на интеграле правой кнопкой мыши и измените алгоритм с помощью контекстного меню.

Can only evaluate an nth order derivative when n=0, 1..5 (Можно вычислить n

порядок производной, только когда n = 0, 1, 2, , 5). Порядок производной должен быть целым числом от 0 до 5. Если нужно посчитать производную более высокого порядка, сделайте это с помощью символьного дифференцирования.

Can only plot positive values when log axes are used (Только положительные величины могут быть на графике, если используются логарифмические координаты). Двухмерный график в декартовых или полярных координатах строится в логарифмических координатах, в которых не может быть величин отрицательных или равных нулю.

Can’t converge to a solution. Encountered too many integrator steps (Невозможно найти решение. Сделано слишком много шагов интегрирования). Алгоритм решения дифференциального уравнения не позволяет найти решение этого уравнения. Попробуйте изменить начальные или граничные условия. Возможно, решения просто не существует.

Can’t converge to a solution. The integrand may have a singularity or the integral may not be finite (Невозможно найти решение. Подынтегральное выражение может иметь точку сингулярности или интеграл может быть бесконечным). Вычисление интегралов, производных, функций root, find, minerr осуществляется итерационными методами. Вы увидите это сообщение, если после большого числа итераций не получен ответ с требуемой точностью.

Попробуйте изменить значение постоянной TOL. При работе с функциями root, find, minerr попробуйте задавать различные значения начальных приближений.

Can’t define the same variable more than once in the same expression (Невозможно определить ту же самую переменную более одного раза в одном и том же выражении). Вы пытаетесь вычислить одну и ту же переменную дважды в одном выражении. Пример подобной ошибки: если вы создаете вектор с именем a:= и используете это же имя справа, то получите это сообщение.

Can’t determine what units the result of this operation should have (Невозможно определить, в каких единицах должен быть представлен результат операции). Вы возвели выражение, содержащее единицы измерения, в степень, являющуюся переменной или вектором. В итоге невозможно определить размерность результата. Если выражение имеет размерность, то его можно возводить только в действительную фиксированную степень.

Can’t evaluate this expression. It may have resulted in an overflow or an infinite loop

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

Проверьте несколько итераций цикла.

Can’t evaluate this expression because it’s either too complicated or it’s defined in terms of itself (Невозможно вычислить это выражение, потому что оно или слишком сложное,

или определяет само себя). Эта ошибка возникает, если функция определена в 72 терминах самой себя, что ведет к появлению рекурсивной функции, где условие

окончания процесса не определено. Например, f(x) := f(x)+5 ведет к переполнению стека. Необходимо изменить имя функции.

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

Can’t evaluate this function when its argument is zero (Невозможно вычислить эту функцию, если ее аргумент равен нулю). Функция неопределенна, если аргумент равен нулю. Такое сообщение появляется при вычислении логарифма от нуля. Can’t divide by zero (Деление на ноль невозможно). Где-либо в программе или внутри численного метода возникло деление на ноль. Найдите место деления на ноль и устраните его. Попробуйте поменять параметры численного метода, константы точности или сам численный алгоритм.

Can’t find a solution. Encountered too many iterations (Невозможно найти решение.

Слишком много итераций). Это сообщение появляется при использовании функции polyroot, если степень полинома слишком велика. Попробуйте найти корни полинома символьным методом.

Can’t find a solution to this system of equations (Невозможно найти решение системы уравнений). Попробуйте изменить начальные приближения.

Что делать, если функция find не может найти решение, описано в главе 3.

Can’t find the data file you’re trying to use (Невозможно найти файл, который вы пытаетесь использовать). Удостоверьтесь, что такой файл существует в указанном месте.

Can’t have anything with units or dimensions here (Здесь не должно быть единиц измерений или размерностей). Это выражение использует единицы измерений гделибо, где они не разрешены.

Единицы измерений не разрешены:

варгументах большинства функций;

вэкспонентах;

вверхних и нижних индексах.

Для того чтобы использовать выражения с единицами измерений, вначале переведите это выражение в UnitsOf(выражение).

Can’t have more than one array in a contour plot (Не может быть более одного массива в контурном графике). Вы вводите более одного массива в место ввода контурного или поверхностного графика. Разрешается иметь только один массив в данном месте ввода, так как на контурном графике может быть изображена только одна поверхность.

Can’t plot this many points (Невозможно начертить график с таким большим количеством точек). Попытка построения графика с числом точек, превосходящим возможное. Попробуйте сделать число точек меньшим, чем 150 000.

Can’t perform this operation on the entire array at once. Try using «vectorize» to perform it element by element (Невозможно выполнить эту операцию во всем массиве сразу. Попытайтесь использовать векторизацию, чтобы преобразовать элемент за элементом). Это сообщение можно увидеть, например, при попытке разделить один вектор на другой.

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

Can’t raise an expression having units to a complex power (Нельзя возводить в комплексную степень выражение, имеющее единицы измерения). Выражение с единицами измерения можно возводить только в действительную степень. Для того, чтобы возвести в комплексную степень выражение с единицами измерения, вначале переведите это выражение в UnitsOf(выражение) — единицы измерения будут отменены.

Can’t solve a system having this many equations (Невозможно решить систему,

имеющую так много уравнений). Mathcad может решать системы уравнений, содержащие не больше 200 нелинейных уравнений и не больше 500 линейных.

Can’t understand something in this data file. If this file came from a spreadsheet, make sure you saved it as ASCII text only (Невозможно что-либо понять в этом файле данных. Если этот файл взят из откуда-либо из готовых материалов, убедитесь, что он сохранен в формате ASCII). При считывании файла функцией READPRN файл должен быть записан в формате ASCII.

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

Can’t understand the name of this function. If you’re trying to multiply, use «*»

(Невозможно понять имя этой функции. Если вам нужно умножить, используйте знак умножения). Такое сообщение появляется, если выражение, не являющееся функцией, используется как функция или имя функции записано неверно.

Can’t understand the way this range variable is defined (Невозможно понять определение дискретной (ранжированной) переменной). Неверное определение дискретной переменной.

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

var := n1

..n2 ;

var := n1

, n2 ..n3 .

73

Can’t understand this number (Невозможно понять это число). Это выражение содержит символ или десятичную точку там, где это непозволительно. Например, вы увидите этой сообщение об ошибке, если случайно запишете число как .452.

Can’t use a range variable in a solve block (Невозможно использовать дискретную переменную в вычислительном блоке). Эта сообщение об ошибке появляется, если использовать дискретную переменную в неподходящем месте, например, в вычислительном блоке.

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

Cannot evaluate this accurately at one or more of the values you specified (Невозможно точно вычислить выражение в одной или нескольких точках). Эта ошибка указывает, что вы пытаетесь вычислить функцию для аргумента, находящегося за пределами области определения функции.

Cannot perform this operation on a string (Нельзя выполнить эту операцию над строкой). Нельзя выполнить математические операции со строковой переменной. Could not find a solution (Невозможно найти решение). Численный метод расходится (не может найти решения). Возможно, решения не существует. Подробнее об этом написано в главе 3.

Could not find a solution because the root finder failed (Невозможно найти решение.

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

Cross product is defined only for vectors having exactly three elements (Векторное произведение определяется только для векторов, имеющих ровно три элемента).

Degree of the polynomial must be between 1 and 99 (Степень полинома должна быть от

1 до 99). Вектор коэффициентов полинома, используемый функцией polyroot, должен содержать от 2 до 99 элементов.

Encountered a floating point error (В заданной точке функция не может иметь такого значения).

End of File (Конец файла). Вы пытаетесь функцией READ прочитать больше данных, чем есть в файле.

End points cannot be the same (Конечная и начальная точки не могут быть одинаковыми). При решении дифференциальных уравнений конечные точки интервала интегрирования должны быть разными.

Found a number with a magnitude greater than 10^307 while trying to evaluate this expression (Найдено число, превышающее 10307). Попробуйте поменять параметры численного алгоритма или сам алгоритм.

Found a singularity while evaluating this expression. You may be dividing by zero

(Обнаружена сингулярность при вычислении этого выражения. Возможно деление на ноль). Проверьте численные значения величин в этом выражении.

Illegal context. Press F1 for Help (Недопустимый контекст. Нажмите клавишу F1, чтобы получить помощь). Трудно диагностируемая ошибка. Часто вызывается синтаксическими ошибками при наборе выражений.

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

Illegal dimensions (Недопустимые размеры массива). Массив не имеет столько строк и столбцов, сколько требуется.

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

Invalid expansion point (Невозможно разложить выражение в ряд в окрестности указанной точки). Проверьте правильность использования ключевого слова series при символьном вычислении выражения.

Invalid matrix dimension. The number of rows is less than the number of columns

(Неправильный размер матрицы. Число строк меньше, чем число столбцов). Функция svd требует, чтобы число строк было больше числа столбцов или равно ему.

Live symbolics not available (Символьные вычисления невыполнимы). Это сообщение появляется при использовании символьного знака равенства, если в данной версии Mathcad символьные вычисления отсутствуют.

Loess cannot extrapolate (Функция loess не может экстраполировать выражение). Точки для интерполяции выражения должны лежать между минимальным и максимальным значениями заданных точек.

Matrix is singular. Cannot compute its inverse (Матрица сингулярная. Невозможно вычислить обратную матрицу). Матрица вырожденная или почти вырожденная. Ее определитель равен нулю или число обусловленности очень велико.

Matrix must be positive definite (Матрица должна быть положительно определенной). Это сообщение появляется, когда матричный аргумент функции не является

положительно определенным. Матрица является положительно определенной, если

ее собственные числа действительные и положительные.

Must be 1 complex matrix or 2 real matrices (Должна быть одна матрица комплексных

74

чисел или две матрицы действительных чисел). Это условие необходимо при

построении графика векторного поля.

Must be a vector with real elements (Должен быть вектор действительных чисел).

Вектор не должен иметь мнимых чисел и должен быть столбцом, а не строкой.

Must be between two lock regions (Курсор должен быть между границами запираемой

зоны). При создании закрытой области — команда Format

Area

Lock

(Формат

Зона

Запереть) — необходимо вначале щелкнуть мышью между

границами запираемой зоны.

Must be less than the number of data points (Аргумент должен быть меньше, чем число

точек в массиве данных). Для дополнительной информации установите курсор на

названии встроенной функции и нажмите клавишу F1.

Must be a real scalar (Должно быть действительным числом).

Must have more than four rows (Матрица должна иметь больше четырех рядов).

Must have 1 or 2 columns (Матрица должна иметь один или два столбца). Первый

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

один столбец для одномерной сплайн-интерполяции и два столбца — для

двухмерной.

Must have three vectors or one matrix (Должно быть три вектора или одна матрица).

При построении графика поверхности в поле ввода надо вписать или три вектора,

разделенных запятыми, или одну матрицу.

No bitmaps were found in the worksheet (В документе нет графических объектов). Это

сообщение появляется при выполнении команды Format

Color

Optimize Palette.

(Формат

Цвет

Оптимизировать палитру).

Not enough memory for this operation (Для этой операции недостаточно памяти).

Only positive values are allowed here (Здесь можно использовать только положительные величины).

ORIGIN should be an integer whose magnitude is less than 16 million (ORIGIN должно быть целым числом, меньшим 16 млн).

(Rows – 1) must be power of 2 (Матрица должна иметь 2n рядов).

Something is wrong with the solve block used to define this function. It may need a guess value (Что-то неверно в блоке решения. Возможно, необходимо начальное приближение). Такое сообщение появляется при использовании блока решения внутри функции пользователя. Попробуйте оценить непосредственно сам блок решения вне функции пользователя. Вы получите другое более подробное сообщение об ошибке.

String contains the wrong number of characters or the wrong kind of characters (Строка содержит неверное число символов или неверный вид символов). При использовании смешанных программ необходим ввод символов в строке аргументов: I — для целых чисел, B — для бинарных чисел, С — для любого вещественного числа.

The elements in this vector must be in increasing order (Элементы этого вектора должны быть расположены в порядке возрастания). Такое требование предъявляется к вектору аргументов при работе с массивами данных, например, при интерполяции или построении гистограмм.

The expression to the left of the equal sign cannot be defined (Выражение слева от знака равенства не может быть определено). Возможна синтаксическая ошибка. Слева от оператора присваивания могут находиться имена переменных, векторов, матриц и функций (с аргументами в скобках).

The format of this vector is invalid. Press F1 for help (Неверный размер вектора.

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

The function values on the two bracket end points must be of opposite signs (Величины функции в двух крайних точках интервала должны быть разного знака). При задании интервала поиска корней функцией root величины функции в двух крайних точках интервала должны быть разного знака. Выбирайте границы интервала поиска корней после построения графика функции.

The number of rows must be a power of 2 (Число элементов вектора должно быть равно 2n). Ошибка возникает при неверном числе данных для волнового преобразования функцией wave.

The number of rows or columns do not match (Число строк и столбцов в этих матрицах не согласовано). Подобное сообщение об ошибке часто появляется при неправильном перемножении матриц. Нажмите клавиши Shift+F1 и щелкните мышью на имени функции, чтобы узнать необходимые размеры матриц.

The unit placeholder can only have real, non-zero scalars put into it (В место ввода размерности при выводе результатов вычислений можно вводить, кроме размерностей, только действительные, не равные нулю скалярные величины).

The units in this expression do not match (Размерности в этом выражении не согласованы). Несогласованные вычисления с размерными и безразмерными величинами. При вычислениях без учета размерностей, видимо, осталась не заданной

какая-либо величина, обозначенная буквами m, s, N и т. д., которые по умолчанию встроены в Mathcad как стандартные размерности длины, времени и силы.

There is an extra comma in this expression (В этом выражении есть лишняя запятая). 75

Проверьте синтаксис. Видимо, запятая использована вместо точки.

There must be more data points than parameters (В массиве данных должно быть больше точек, чем параметров функции). Такое требование предъявляют, например,

функции regress и genfit.

There must be more than three data points (Эта функция требует вектор, содержащий по крайней мере четыре элемента).

This array must have more than one row or column (Этот массив должен иметь больше,

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

This expression has a «(» without a matching «)». (В выражении не хватает скобок).

Проверьте выражение.

This expression is incomplete. You must fill in the placeholders (Выражение неполное.

Вы должны заполнить места ввода).

This expression is incomplete. You must provide an operator (Выражение неполное. Вы должны ввести оператор).

This expression is too complicated. Try defining it in smaller pieces (Выражение слишком сложное. Постарайтесь определить его по частям).

This file could not be opened. Make sure it exists (Этот файл не может быть открыт.

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

This function has too many arguments (Функция имеет слишком много аргументов). Для встроенных функций щелкните мышью на имени функции и нажмите клавишу F1. Проверьте правильность использования функции. Для функции пользователя проверьте определение функции.

This function is undefined at one or more of the points you specified (Функция не определена в одной или нескольких точках). Вы используете оператор или функцию для неприемлемых значений аргумента, например, lg(0) или –3! (факториал отрицательного числа не определен).

This image format is not supported (Этот формат изображения не поддерживается

Mathcad).

This integer is too large (Величина слишком большая для работы с ней). This integer is too small (Величина слишком мала для работы с ней).

This is invalid. If you are using conditional statements in a Mathcad program, make sure all cases are accounted for (Это неверно. Если вы используете условие в Mathcadпрограмме, убедитесь, что все возможные случаи учтены). В условный оператор программирования добавьте еще одно место ввода и впишите еще одно значение с ключевым словом Otherwise (иначе).

This is not a valid interval (Неправильно указан интервал). Начальное значение интервала должно быть меньше конечного.

This is not allowed inside a solve block. For example, definitions are not allowed in a solve block (Это не разрешено внутри вычислительного блока. Например, определения не могут находиться внутри вычислительного блока). Внутри вычислительного блока могут находиться только решаемые уравнения и ограничения к ним.

This list contains too many items (Список содержит слишком много имен). Вы ввели в список слишком много имен, разделенных запятыми. Чаще всего это случается с графиками.

This matrix must be square. It should have the same number of rows as columns (Матрица должна быть квадратной. Число строк должно быть равно числу столбцов).

This must be an integer. The expression you used appears to have a fractional part (Здесь должно быть целое число. Похоже, что выражение содержит дробную часть). Проверьте верхние и нижние индексы. Они должны быть целыми числами. Некоторые функции, такие как identity и submatrix, требуют целочисленных аргументов.

This must be the name of a function or variable (Здесь должно быть имя функции или переменной).

This must be the name of a mapping function (Здесь должно быть имя функции преобразования координат). Такой аргумент требуется функциям CreateMech и CreateSpace.

This operation can only be performed on a function (Эту операцию можно производить только над функцией). Аргумент функции сам должен быть функцией.

This operation can only be performed on an array. It can’t be performed on a number (Эту операцию можно выполнить только над массивом, но не над числом). Например, если вы пишете имя с верхним индексом, то это должен быть вектор.

This operation can only be performed on a number or an array (Эту операцию можно выполнить только над числом или массивом).

This operation can only be performed on a string (Эту операцию можно выполнить только над строкой). Например, строковые функции требуют хотя бы один строковый аргумент.

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже.

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

Приложение 4. Сообщения об ошибках

71

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

Сообщения об ошибках в численных вычислениях

A «Find» or «Minerr» must be preceded by a matching «Given» (Функциям find или minerr должно предшествовать ключевое слово given). Эта ошибка выделяет функцию find или minerr при их несогласованности с given. Каждый вычислительный блок, который заканчивается функцией find или minerr, должен начинаться с ключевого слова given.

All evaluations resulted in either an error or a complex result (Вычисления приводят к ошибке или к комплексному результату). Mathcad не может начертить некоторые точки, потому что не существует действительных значений для их нанесения на график. Это сообщение может появиться, если имеется ошибка или все значения — комплексные.

Arguments in function definitions must be names (Аргументы в определениях функции должны быть именами). Выделенное определение функции содержит неправильный перечень аргументов. В списке аргументов должны быть правильно поименованы переменные или список имен необходимо отделить запятыми.

All the elements in the vector cannot be the same (Все элементы вектора не могут быть одинаковыми). Если используется встроенная функция, возможно, неправильно указаны ее имя или параметры. Проверьте правильность ввода встроенной функции, установив курсор на имени функции и нажав клавишу F1.

At least one limit must be infinity (По крайней мере один предел должен быть бесконечным). Если для интегрирования выбран алгоритм бесконечного предела, то по крайней мере один из пределов интеграла должен быть бесконечным.

Символ бесконечности вводится нажатием комбинации клавиш Ctrl+Shift+z. Для изменения алгоритма, использующего бесконечный предел, или для вычисления какого-либо другого интеграла щелкните на интеграле правой кнопкой мыши и измените алгоритм с помощью контекстного меню.

Can only evaluate an nth order derivative when n=0, 1..5 (Можно вычислить n

порядок производной, только когда n = 0, 1, 2, , 5). Порядок производной должен быть целым числом от 0 до 5. Если нужно посчитать производную более высокого порядка, сделайте это с помощью символьного дифференцирования.

Can only plot positive values when log axes are used (Только положительные величины могут быть на графике, если используются логарифмические координаты). Двухмерный график в декартовых или полярных координатах строится в логарифмических координатах, в которых не может быть величин отрицательных или равных нулю.

Can’t converge to a solution. Encountered too many integrator steps (Невозможно найти решение. Сделано слишком много шагов интегрирования). Алгоритм решения дифференциального уравнения не позволяет найти решение этого уравнения. Попробуйте изменить начальные или граничные условия. Возможно, решения просто не существует.

Can’t converge to a solution. The integrand may have a singularity or the integral may not be finite (Невозможно найти решение. Подынтегральное выражение может иметь точку сингулярности или интеграл может быть бесконечным). Вычисление интегралов, производных, функций root, find, minerr осуществляется итерационными методами. Вы увидите это сообщение, если после большого числа итераций не получен ответ с требуемой точностью.

Попробуйте изменить значение постоянной TOL. При работе с функциями root, find, minerr попробуйте задавать различные значения начальных приближений.

Can’t define the same variable more than once in the same expression (Невозможно определить ту же самую переменную более одного раза в одном и том же выражении). Вы пытаетесь вычислить одну и ту же переменную дважды в одном выражении. Пример подобной ошибки: если вы создаете вектор с именем a:= и используете это же имя справа, то получите это сообщение.

Can’t determine what units the result of this operation should have (Невозможно определить, в каких единицах должен быть представлен результат операции). Вы возвели выражение, содержащее единицы измерения, в степень, являющуюся переменной или вектором. В итоге невозможно определить размерность результата. Если выражение имеет размерность, то его можно возводить только в действительную фиксированную степень.

Can’t evaluate this expression. It may have resulted in an overflow or an infinite loop

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

Проверьте несколько итераций цикла.

Can’t evaluate this expression because it’s either too complicated or it’s defined in terms of itself (Невозможно вычислить это выражение, потому что оно или слишком сложное,

или определяет само себя). Эта ошибка возникает, если функция определена в 72 терминах самой себя, что ведет к появлению рекурсивной функции, где условие

окончания процесса не определено. Например, f(x) := f(x)+5 ведет к переполнению стека. Необходимо изменить имя функции.

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

Can’t evaluate this function when its argument is zero (Невозможно вычислить эту функцию, если ее аргумент равен нулю). Функция неопределенна, если аргумент равен нулю. Такое сообщение появляется при вычислении логарифма от нуля. Can’t divide by zero (Деление на ноль невозможно). Где-либо в программе или внутри численного метода возникло деление на ноль. Найдите место деления на ноль и устраните его. Попробуйте поменять параметры численного метода, константы точности или сам численный алгоритм.

Can’t find a solution. Encountered too many iterations (Невозможно найти решение.

Слишком много итераций). Это сообщение появляется при использовании функции polyroot, если степень полинома слишком велика. Попробуйте найти корни полинома символьным методом.

Can’t find a solution to this system of equations (Невозможно найти решение системы уравнений). Попробуйте изменить начальные приближения.

Что делать, если функция find не может найти решение, описано в главе 3.

Can’t find the data file you’re trying to use (Невозможно найти файл, который вы пытаетесь использовать). Удостоверьтесь, что такой файл существует в указанном месте.

Can’t have anything with units or dimensions here (Здесь не должно быть единиц измерений или размерностей). Это выражение использует единицы измерений гделибо, где они не разрешены.

Единицы измерений не разрешены:

варгументах большинства функций;

вэкспонентах;

вверхних и нижних индексах.

Для того чтобы использовать выражения с единицами измерений, вначале переведите это выражение в UnitsOf(выражение).

Can’t have more than one array in a contour plot (Не может быть более одного массива в контурном графике). Вы вводите более одного массива в место ввода контурного или поверхностного графика. Разрешается иметь только один массив в данном месте ввода, так как на контурном графике может быть изображена только одна поверхность.

Can’t plot this many points (Невозможно начертить график с таким большим количеством точек). Попытка построения графика с числом точек, превосходящим возможное. Попробуйте сделать число точек меньшим, чем 150 000.

Can’t perform this operation on the entire array at once. Try using «vectorize» to perform it element by element (Невозможно выполнить эту операцию во всем массиве сразу. Попытайтесь использовать векторизацию, чтобы преобразовать элемент за элементом). Это сообщение можно увидеть, например, при попытке разделить один вектор на другой.

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

Can’t raise an expression having units to a complex power (Нельзя возводить в комплексную степень выражение, имеющее единицы измерения). Выражение с единицами измерения можно возводить только в действительную степень. Для того, чтобы возвести в комплексную степень выражение с единицами измерения, вначале переведите это выражение в UnitsOf(выражение) — единицы измерения будут отменены.

Can’t solve a system having this many equations (Невозможно решить систему,

имеющую так много уравнений). Mathcad может решать системы уравнений, содержащие не больше 200 нелинейных уравнений и не больше 500 линейных.

Can’t understand something in this data file. If this file came from a spreadsheet, make sure you saved it as ASCII text only (Невозможно что-либо понять в этом файле данных. Если этот файл взят из откуда-либо из готовых материалов, убедитесь, что он сохранен в формате ASCII). При считывании файла функцией READPRN файл должен быть записан в формате ASCII.

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

Can’t understand the name of this function. If you’re trying to multiply, use «*»

(Невозможно понять имя этой функции. Если вам нужно умножить, используйте знак умножения). Такое сообщение появляется, если выражение, не являющееся функцией, используется как функция или имя функции записано неверно.

Can’t understand the way this range variable is defined (Невозможно понять определение дискретной (ранжированной) переменной). Неверное определение дискретной переменной.

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

var := n1

..n2 ;

var := n1

, n2 ..n3 .

73

Can’t understand this number (Невозможно понять это число). Это выражение содержит символ или десятичную точку там, где это непозволительно. Например, вы увидите этой сообщение об ошибке, если случайно запишете число как .452.

Can’t use a range variable in a solve block (Невозможно использовать дискретную переменную в вычислительном блоке). Эта сообщение об ошибке появляется, если использовать дискретную переменную в неподходящем месте, например, в вычислительном блоке.

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

Cannot evaluate this accurately at one or more of the values you specified (Невозможно точно вычислить выражение в одной или нескольких точках). Эта ошибка указывает, что вы пытаетесь вычислить функцию для аргумента, находящегося за пределами области определения функции.

Cannot perform this operation on a string (Нельзя выполнить эту операцию над строкой). Нельзя выполнить математические операции со строковой переменной. Could not find a solution (Невозможно найти решение). Численный метод расходится (не может найти решения). Возможно, решения не существует. Подробнее об этом написано в главе 3.

Could not find a solution because the root finder failed (Невозможно найти решение.

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

Cross product is defined only for vectors having exactly three elements (Векторное произведение определяется только для векторов, имеющих ровно три элемента).

Degree of the polynomial must be between 1 and 99 (Степень полинома должна быть от

1 до 99). Вектор коэффициентов полинома, используемый функцией polyroot, должен содержать от 2 до 99 элементов.

Encountered a floating point error (В заданной точке функция не может иметь такого значения).

End of File (Конец файла). Вы пытаетесь функцией READ прочитать больше данных, чем есть в файле.

End points cannot be the same (Конечная и начальная точки не могут быть одинаковыми). При решении дифференциальных уравнений конечные точки интервала интегрирования должны быть разными.

Found a number with a magnitude greater than 10^307 while trying to evaluate this expression (Найдено число, превышающее 10307). Попробуйте поменять параметры численного алгоритма или сам алгоритм.

Found a singularity while evaluating this expression. You may be dividing by zero

(Обнаружена сингулярность при вычислении этого выражения. Возможно деление на ноль). Проверьте численные значения величин в этом выражении.

Illegal context. Press F1 for Help (Недопустимый контекст. Нажмите клавишу F1, чтобы получить помощь). Трудно диагностируемая ошибка. Часто вызывается синтаксическими ошибками при наборе выражений.

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

Illegal dimensions (Недопустимые размеры массива). Массив не имеет столько строк и столбцов, сколько требуется.

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

Invalid expansion point (Невозможно разложить выражение в ряд в окрестности указанной точки). Проверьте правильность использования ключевого слова series при символьном вычислении выражения.

Invalid matrix dimension. The number of rows is less than the number of columns

(Неправильный размер матрицы. Число строк меньше, чем число столбцов). Функция svd требует, чтобы число строк было больше числа столбцов или равно ему.

Live symbolics not available (Символьные вычисления невыполнимы). Это сообщение появляется при использовании символьного знака равенства, если в данной версии Mathcad символьные вычисления отсутствуют.

Loess cannot extrapolate (Функция loess не может экстраполировать выражение). Точки для интерполяции выражения должны лежать между минимальным и максимальным значениями заданных точек.

Matrix is singular. Cannot compute its inverse (Матрица сингулярная. Невозможно вычислить обратную матрицу). Матрица вырожденная или почти вырожденная. Ее определитель равен нулю или число обусловленности очень велико.

Matrix must be positive definite (Матрица должна быть положительно определенной). Это сообщение появляется, когда матричный аргумент функции не является

положительно определенным. Матрица является положительно определенной, если

ее собственные числа действительные и положительные.

Must be 1 complex matrix or 2 real matrices (Должна быть одна матрица комплексных

74

чисел или две матрицы действительных чисел). Это условие необходимо при

построении графика векторного поля.

Must be a vector with real elements (Должен быть вектор действительных чисел).

Вектор не должен иметь мнимых чисел и должен быть столбцом, а не строкой.

Must be between two lock regions (Курсор должен быть между границами запираемой

зоны). При создании закрытой области — команда Format

Area

Lock

(Формат

Зона

Запереть) — необходимо вначале щелкнуть мышью между

границами запираемой зоны.

Must be less than the number of data points (Аргумент должен быть меньше, чем число

точек в массиве данных). Для дополнительной информации установите курсор на

названии встроенной функции и нажмите клавишу F1.

Must be a real scalar (Должно быть действительным числом).

Must have more than four rows (Матрица должна иметь больше четырех рядов).

Must have 1 or 2 columns (Матрица должна иметь один или два столбца). Первый

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

один столбец для одномерной сплайн-интерполяции и два столбца — для

двухмерной.

Must have three vectors or one matrix (Должно быть три вектора или одна матрица).

При построении графика поверхности в поле ввода надо вписать или три вектора,

разделенных запятыми, или одну матрицу.

No bitmaps were found in the worksheet (В документе нет графических объектов). Это

сообщение появляется при выполнении команды Format

Color

Optimize Palette.

(Формат

Цвет

Оптимизировать палитру).

Not enough memory for this operation (Для этой операции недостаточно памяти).

Only positive values are allowed here (Здесь можно использовать только положительные величины).

ORIGIN should be an integer whose magnitude is less than 16 million (ORIGIN должно быть целым числом, меньшим 16 млн).

(Rows – 1) must be power of 2 (Матрица должна иметь 2n рядов).

Something is wrong with the solve block used to define this function. It may need a guess value (Что-то неверно в блоке решения. Возможно, необходимо начальное приближение). Такое сообщение появляется при использовании блока решения внутри функции пользователя. Попробуйте оценить непосредственно сам блок решения вне функции пользователя. Вы получите другое более подробное сообщение об ошибке.

String contains the wrong number of characters or the wrong kind of characters (Строка содержит неверное число символов или неверный вид символов). При использовании смешанных программ необходим ввод символов в строке аргументов: I — для целых чисел, B — для бинарных чисел, С — для любого вещественного числа.

The elements in this vector must be in increasing order (Элементы этого вектора должны быть расположены в порядке возрастания). Такое требование предъявляется к вектору аргументов при работе с массивами данных, например, при интерполяции или построении гистограмм.

The expression to the left of the equal sign cannot be defined (Выражение слева от знака равенства не может быть определено). Возможна синтаксическая ошибка. Слева от оператора присваивания могут находиться имена переменных, векторов, матриц и функций (с аргументами в скобках).

The format of this vector is invalid. Press F1 for help (Неверный размер вектора.

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

The function values on the two bracket end points must be of opposite signs (Величины функции в двух крайних точках интервала должны быть разного знака). При задании интервала поиска корней функцией root величины функции в двух крайних точках интервала должны быть разного знака. Выбирайте границы интервала поиска корней после построения графика функции.

The number of rows must be a power of 2 (Число элементов вектора должно быть равно 2n). Ошибка возникает при неверном числе данных для волнового преобразования функцией wave.

The number of rows or columns do not match (Число строк и столбцов в этих матрицах не согласовано). Подобное сообщение об ошибке часто появляется при неправильном перемножении матриц. Нажмите клавиши Shift+F1 и щелкните мышью на имени функции, чтобы узнать необходимые размеры матриц.

The unit placeholder can only have real, non-zero scalars put into it (В место ввода размерности при выводе результатов вычислений можно вводить, кроме размерностей, только действительные, не равные нулю скалярные величины).

The units in this expression do not match (Размерности в этом выражении не согласованы). Несогласованные вычисления с размерными и безразмерными величинами. При вычислениях без учета размерностей, видимо, осталась не заданной

какая-либо величина, обозначенная буквами m, s, N и т. д., которые по умолчанию встроены в Mathcad как стандартные размерности длины, времени и силы.

There is an extra comma in this expression (В этом выражении есть лишняя запятая). 75

Проверьте синтаксис. Видимо, запятая использована вместо точки.

There must be more data points than parameters (В массиве данных должно быть больше точек, чем параметров функции). Такое требование предъявляют, например,

функции regress и genfit.

There must be more than three data points (Эта функция требует вектор, содержащий по крайней мере четыре элемента).

This array must have more than one row or column (Этот массив должен иметь больше,

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

This expression has a «(» without a matching «)». (В выражении не хватает скобок).

Проверьте выражение.

This expression is incomplete. You must fill in the placeholders (Выражение неполное.

Вы должны заполнить места ввода).

This expression is incomplete. You must provide an operator (Выражение неполное. Вы должны ввести оператор).

This expression is too complicated. Try defining it in smaller pieces (Выражение слишком сложное. Постарайтесь определить его по частям).

This file could not be opened. Make sure it exists (Этот файл не может быть открыт.

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

This function has too many arguments (Функция имеет слишком много аргументов). Для встроенных функций щелкните мышью на имени функции и нажмите клавишу F1. Проверьте правильность использования функции. Для функции пользователя проверьте определение функции.

This function is undefined at one or more of the points you specified (Функция не определена в одной или нескольких точках). Вы используете оператор или функцию для неприемлемых значений аргумента, например, lg(0) или –3! (факториал отрицательного числа не определен).

This image format is not supported (Этот формат изображения не поддерживается

Mathcad).

This integer is too large (Величина слишком большая для работы с ней). This integer is too small (Величина слишком мала для работы с ней).

This is invalid. If you are using conditional statements in a Mathcad program, make sure all cases are accounted for (Это неверно. Если вы используете условие в Mathcadпрограмме, убедитесь, что все возможные случаи учтены). В условный оператор программирования добавьте еще одно место ввода и впишите еще одно значение с ключевым словом Otherwise (иначе).

This is not a valid interval (Неправильно указан интервал). Начальное значение интервала должно быть меньше конечного.

This is not allowed inside a solve block. For example, definitions are not allowed in a solve block (Это не разрешено внутри вычислительного блока. Например, определения не могут находиться внутри вычислительного блока). Внутри вычислительного блока могут находиться только решаемые уравнения и ограничения к ним.

This list contains too many items (Список содержит слишком много имен). Вы ввели в список слишком много имен, разделенных запятыми. Чаще всего это случается с графиками.

This matrix must be square. It should have the same number of rows as columns (Матрица должна быть квадратной. Число строк должно быть равно числу столбцов).

This must be an integer. The expression you used appears to have a fractional part (Здесь должно быть целое число. Похоже, что выражение содержит дробную часть). Проверьте верхние и нижние индексы. Они должны быть целыми числами. Некоторые функции, такие как identity и submatrix, требуют целочисленных аргументов.

This must be the name of a function or variable (Здесь должно быть имя функции или переменной).

This must be the name of a mapping function (Здесь должно быть имя функции преобразования координат). Такой аргумент требуется функциям CreateMech и CreateSpace.

This operation can only be performed on a function (Эту операцию можно производить только над функцией). Аргумент функции сам должен быть функцией.

This operation can only be performed on an array. It can’t be performed on a number (Эту операцию можно выполнить только над массивом, но не над числом). Например, если вы пишете имя с верхним индексом, то это должен быть вектор.

This operation can only be performed on a number or an array (Эту операцию можно выполнить только над числом или массивом).

This operation can only be performed on a string (Эту операцию можно выполнить только над строкой). Например, строковые функции требуют хотя бы один строковый аргумент.

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

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

Таблица описывает векторные и матричные операторы Mathcad. Многие из этих операторов доступны из палитры символов. Обратите внимание, что операторы, которые ожидают в качестве аргумента вектор, всегда ожидают вектор-столбец, а не вектор-строку.

Чтобы заменить вектор-строку на вектор-столбец, используйте оператор транспонирования [Ctrl]1.

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

Рисунок 9: Векторные и матричные операции.

В следующей таблице


  • A и B представляют массивы (векторы или матрицы).
  • u и v представляют векторы.
  • M представляет квадратную матрицу.
  • и представляют отдельные элементы векторов u и v.
  • z представляет скаляр.
  • m и n представляют целые числа.
Операция Обозначение Клавиши Описание
Умножение матрицы на скаляр * Умножает каждый элемент A на скаляр z.
Скалярное произведение * Возвращает скаляр: . Векторы должны иметь одинаковое число элементов.
Матричное умножение * Возвращает произведение матриц A и B, число столбцов в A должно соответствовать числу строк в B.
Умножение матрицы на вектор * Возвращает произведение матриц A и v, число столбцов в A должно соответствовать числу строк в v.
Деление / Делит каждый элемент массива на скаляр z.
Сложение векторов и матриц A + B + Складывает соответствующие элементы A и B, массивы A и B должны иметь одинаковое число строк и столбцов.
Скалярная сумма A + z + Добавляет z к каждому элементу A.
Векторное и матричное вычитание A — B Вычитает соответствующие элементы массива A из элементов массива B, массивы A и B должны иметь одинаковые размеры.
Скалярное вычитание A — z Вычитает z из каждого элемента A.
Изменение знака — A Умножает все элементы A на -1.
Степени матрицы, обращение матриц M n ^ n-ная степень квадратной матрицы M (использует умножение матриц). n должен быть целым числом. M -1 представляет матрицу, обратную к M, другие отрицательные степени — степени обратной матрицы. Возвращает матрицу.
Длина вектора |v| | Возвращает , где — вектор, комплексно сопряженный к v.
Детерминант |M| | Возвращает детерминант квадратной матрицы M, результат — скаляр.
Транспонирование A T [Ctrl]1 Возвращает матрицу, чьи строки — столбцы А, и чьи столбцы — строки A. А может быть вектором или матрицей.
Векторное произведение u x v [Ctrl]8 Возвращает векторное произведение для векторов с тремя элементами u и v.
Комплексное сопряжение « Меняет знак мнимой части каждого элемента A.
Суммирование элементов [Ctrl]4 Суммирует элементы вектора v; возвращает скаляр.
Векторизация [Ctrl] — Предписывает в выражении с A производить операции поэлементно. Полное описание дано в разделе “Выполнение параллельных вычислений”
Верхний индекс A [Ctrl]6 Извлекает n-ный столбец массива A. Возвращает вектор.
Нижний индекс (вектора) vn [ n-ный элемент вектора.
Нижние индексы матрицы Am,n [ Элемент матрицы, находящийся в m-ном ряду и n-ной строке.

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

Значение должно быть скаляром, MathCad.

В примере, как работать с Маткадом, всё работает (изображение 1):

Когда я делаю тоже самое, появляется ошибка, что значения не является скаляром:

Как исправить? Помогите, пожалуйста.

Оно может быть скаляром, только если размеры матриц A и B совпадают.

Решение системы линейных уравнений — это ВСЕГДА вектор. Скаляром оно быть не может по определению.

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

Маткад ошибка значение должно быть скалярным

Маткад ошибка значение должно быть скалярным

БАЗОВЫЕ ОПЕРАЦИИ.
РАНЖИРОВАННЫЕ ПЕРЕМЕННЫЕ. ФУНКЦИИ. ГРАФИКИ
МАССИВЫ

1 Запуск. Формульные и текстовые области

Запуск Mathcad: Start / All Programs / Mathsoft Apps / Mathcad (Пуск / Все программы / Mathsoft Apps / Mathcad).

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

Для ввода математических символов: View / Toolbars / Math (Вид / Панели инструментов / Математическая).

Каждое математическое выражение набирается в отдельной формульной области. Одна формула – одна область!

Перемещение курсора — клавиша Пробел. Изменение направления уголка — клавиша Insert (Ins).

«:=» — «присвоить» — задать выражение (число или формулу)

«=» — «вычислить» подсчитать и вывести значение выражения.

Для вставки в документ текстовой области выполняют Insert / Text Region (Вставка / Область текста), либо просто нажимают в формульной области Пробел. Текстовая область имеет рамку с маркерами, позволяющими изменять ее размеры, и курсор в виде вертикальной линии красного цвета.

2 Ранжированные переменные. Функции. Графики

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

Ранжированная переменная общего вида определяется выражением:

Имя := x1, x2 .. xn

Здесь Имя – задаваемое пользователем имя ранжированной переменной;
x1 – первое значение ранжированной переменной;
x2 – второе значение ранжированной переменной (x2 = x1 + Dx — первое значение плюс шаг);
xn – последнее значение ранжированной переменной.
Значения x1 и x2 разделяются запятой, двоеточие представляет собой единый оператор, указывающий на изменение переменной в заданных пределах. Он вводится с клавиатуры клавишей «;» или выбирается с палитры математических инструментов Matrix (Векторы и матрицы) (кнопка — Range Variable).

Например, если переменная изменяется в интервале с шагом , то она задается в виде

Шаг изменения значений ранжированной переменной в явном виде обычно не задается, он определяется как x2 – x1.

Функции в системе Mathcad можно условно разделить на две группы: встроенные и функции пользователя. Встроенные функции изначально заданы в системе разработчиками. Имя функции вводится с клавиатуры, обычно в нижнем регистре. Полный перечень встроенных функций можно получить, выполнив команду Function (Функция) главного меню Insert (Вставка), или нажав на кнопку панели инструментов. При этом появляется окно, где справа перечислены возможные категории функций, а слева – список функций из выделенной категории.

Среди наиболее часто используемых функций можно указать:

  • sin(z) — синус z (z задается в радианах);
  • cos(z) — косинус z;
  • tan(z) — тангенс z;
  • cot(z) — котангенс z;
  • exp(z) – экспоненциальная функция, значение е (основание натурального логарифма) в степени z;
  • ln(z) – натуральный логарифм z;
  • log(z) – десятичный логарифм числа z;
  • log(z, b) – логарифм числа z по основанию b;
  • acos(z) – арккосинус z;
  • acot(z) – арккотангенс z;
  • asin(z) – арксинус z;
  • atan(z) – арктангенс z.

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

Имя(список аргументов) := Выражение

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

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

Основные виды графиков и инструменты для работы с ними находятся на палитре математических инструментов Graph (График).

Для построения графика функции одной переменной в декартовой системе координат в Mathcad:

  1. определяется функция пользователя;
  2. задается ранжированная переменная на некотором диапазоне с мелким шагом;
  3. вставляется шаблон двумерного графика X-Y Plot;
  4. в знакоместо по оси абсцисс записывается имя переменной, а в знакоместо по оси ординат — функция или имя ранее определенной функции;
  5. производится щелчок левой клавишей мыши вне области графика.

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

Массив в пакете Mathcad – это совокупность конечного числа упорядоченных пронумерованных элементов, которая может иметь уникальное имя. Обычно используют одномерные (векторы) и двумерные (матрицы) массивы, содержащие числовые, символьные или строковые данные.

– вектор-столбец; – вектор-строка.

Порядковый номер элемента называется индексом. Местоположение элемента в массиве задается одним индексом для вектора и двумя – для матрицы. Номер первого элемента массива определяется значением системной переменной ORIGIN. По умолчанию ORIGIN = 0 и может принимать только целые значения. Изменение значения этой системной переменной осуществляется последовательностью команд Math / Options… / Built-In Variables / Array Origin (ORIGIN) (Математика / Параметры / Встроенные переменные / Начальный индекс массивов) или переопределением в документе, например:

Существует несколько способов создания массивов.

1-й способ. Использование панели Matrix (Матрицы).

Сначала набирается имя массива и оператор присваивания, например, . Далее на панели Math (Математика) выбираем кнопку Matrix (Матриц):

Далее указываем количество ее строк m (Rows) и столбцов n (Columns) матрицы. Для векторов один из этих параметров должен быть равен 1. При m = 1 получим вектор-строку, а при n = 1 – вектор-столбец.

На месте курсора появится шаблон, в знакоместа которого вводятся значения элементов массива:

2-й способ. Использование ранжированной переменной.

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

  1. определяется системная переменная ORIGIN;
  2. задается ранжированная переменная (переменные) для нумерации элементов;
  3. индексированной переменной присваиваются значения элементов массива через запятую или в виде явной формулы.

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

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

Таблица 1 – Команды палитры инструментов Matrix (Матрица)

Задача 44319 Не могу понять в чём ошибка. Приложение

УСЛОВИЕ:

Не могу понять в чём ошибка. Приложение пишет, что значение должно быть скалярным. Это MathCad 15.0. Что нужно сделать, чтобы исправить ошибку?

РЕШЕНИЕ ОТ slava191 ✪ ЛУЧШЕЕ РЕШЕНИЕ

Возможно нужно взять аргументы sin в круглые скобки sin(Pix^2)

Возможно, также, что mathcad не знает что такое Pi и перед всей конструкцией надо написать Pi:=3,14

Добавил vk140758054 , просмотры: ☺ 48 ⌚ 2020-02-17 11:10:37. информатика 1k класс

Решения пользователей

Написать комментарий

В прошедшем году страна имела следующие показатели, ден. ед.: ВНП — 500; чистые инвестиции частного сектора — 75; государственные закупки — 80; потребление домашних хозяйств — 250; поступление в государственный бюджет прямых налогов — 30; косвенных — 20; субвенции предпринимателям — 25; экспорт — 150; импорт — 110.
Определить:
а) располагаемый доход домашних хозяйств;
б) амортизационный фонд (D);
в) состояние государственного бюджета.

а) Определим величину НД на основе данных о его использовании
у = 250 + 75 + 80 + 150 – 110 = 445.

Поскольку прямые налоги составляют 30 ден. ед., то располагаемый доход:
yv = 445 – 30 = 415.

б) Амортизационный фонд (D) соответствует разности (ВНП— ЧНП). В свою очередь ЧНП = 445 + 20 – 25 = 440.
Следовательно, D = 500 – 440 = 60.

в) Состояние госбюджета характеризуется разностью между государственными расходами и поступлениями в бюджет
δ= (80 + 25) – (30 + 20) = 55.
ТОЛЬКО ПОДСТАВЬ СВОИ ЦИФРЫ.

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

Важным является также то, что каждое окончание всегда является элементом какого-либо набора окончаний, которые именно в противопоставлении друг другу реализуют свое значение. Рассмотрим словосочетания большой победой и большой столовой. У прилагательного и существительного в словосочетании большой победой окончания разные, хотя внешне они совпадают и оба имеют значение ед.ч., Т.п. Дело в том, что каждое из этих окончаний противопоставлено разным единицам, является элементом разных наборов окончаний. Окончание ‑ой в большой противопоставлено другим окончаниям прилагательных, а -ой в победой противопоставлено другим окончаниям существительных первого склонения. Окончания прилагательного и существительного в словосочетании большой столовой считаются одинаковыми: хотя слово столовая является существительным, его окончания типичны для прилагательных[ii]. Оно сохранило часть набора окончаний прилагательного: имеет такие же окончания, как прилагательное в сочетании столовая комната.

С учетом сказанного выше можно выделить такие группы словоформ с одинаковыми окончаниями[iii]:

1. каша, семья, борода — окончания существительных 1 склонения в единственном числе, в И.п.;

2. кальций, стол, патриций — нулевые окончания существительных 2 склонения мужского рода в единственном числе, в И.п.;

3. море, сражение — окончания существительных 2 склонения среднего рода в единственном числе, в И.п.;

4. морей, людей — окончания существительных во множественном числе, в Р.п.;

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

6. большая, столовая, синяя — окончания прилагательных в женском роде, в единственном числе, в И.п.;

7. последние, красивые — окончания прилагательных во множественном числе, в И.п.

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

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

Маткад ошибка значение должно быть скалярным

A «Find» or
«Minerr» must
be preceded
by a matching
«Given»

Find или Minerr
должны предва-
ряться ключе-
вым словам

Эта ошибка выде-
ляет функцию Find
или Minerr при их
несогласованности

Каждый вычислительный блок,
который заканчивается функцией
Find или Minerr, должен начи-
наться с ключевого слова Given

All evaluations
resulted in
either an error
or a complex
result

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

MathCAD не может
начертить некото-
рые точки, потому
что не существует
действительных
значений для их
нанесения
на график

Это сообщение может появиться,
если имеется ошибка или все
значения комплексные

Arguments in
function
definitions
must be names

Аргументы
в определениях
функции
должны быть
именами

Выделенное опре-
деление функции
содержит непра-
вильный перечень
аргументов

В списке аргументов должны быть
правильно поименованы пере-
менные, или список имен необхо-
димо отделить запятыми

At least one
limit must
be infinity

По крайней
мере один пре-
дел должен
быть бесконеч-
ным

Когда для интегри-
рования выбран
алгоритм бесконеч-
ного предела, то по
крайней мере один
из пределов инте-
грала должен быть
бесконечным

Тип бесконечности вводится на-
жатием сочетания клавиш
+ + .

Для изменения алгоритма, ис-
пользующего бесконечный предел
или для вычисления какого-либо
другого интеграла, щелкните на
интеграле правой кнопкой мыши
и измените алгоритм с помощью
контекстного меню

Can only
evaluate an nth
order derivative
when n=0,1..5.

Можно вычис-
лить n-й поря-
док производ-
ной, только
когда п=0,1—5

Порядок производ-
ной должен быть
одним из следую-
щих чисел: 0, 1,
2,. ..5.

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

Can’t evaluate
this function
when its
argument less
than or equal
to zero

Невозможно
вычислить эту
функцию, когда
ее аргумент
меньше или
равен нулю

Такое сообщение
может касаться
XY- или полярных
графиков, имеющих
логарифмические
оси, на которых или
пределы, или неко-
торые из значений,
не положительны

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

Can’t converge
to a solution

Не сходится
к решению

Численный метод
расходится
(не может найти
решения)

Убедитесь, что операция не при-
меняется к функции в области
непосредственной близости точки
ее сингулярности (деления на
ноль).

Попробуйте поменять параметры
численного метода (например,
начальное приближение).

Попробуйте увеличить константу
TOL, т. е. осуществить поиск ре-
шения с худшей погрешностью.

Попробуйте поменять численный
алгоритм, если это возможно
(вызвав контекстное меню нажа-
тием на месте ошибки правой
кнопки мыши)

Can’t define
the same
variable more
than once in
the same
expression

Невозможно
определить ту
же самую пере-
менную более
одного раза в
одном и том же
выражении

Вы пытаетесь вы-
числить одну и ту
же переменную
дважды в одном
выражении

Пример подобной ошибки: если
вы создаете вектор с левой сто-
роной а := и используете это же
имя справа, то получите ошибку

Can’t
determine what
units the result
of this
operation
should have

Невозможно
определить, в
каких единицах
следует быть
результату этой
операции

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

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

Маткад ошибка значение должно быть скалярным

MathCAD — это просто! Часть 27. Программирование и ошибки: вместе веселее!

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

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

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

Самые простые ошибки — синтаксические. Как вы уже имели возможность воочию убедиться, при программировании очень важно придерживаться определенных правил в записи конструкций. Например, если вы вместо имени функции rkfixed напишете в программе tkfixed, ошибившись при вводе на одну букву и нажав на соседнюю с r клавишу t, то как раз и получите в свое распоряжение самую что ни на есть классическую синтаксическую ошибку. Ни к каким особенно страшным последствиям она (как, впрочем, и все другие ошибки аналогичного класса) не приведет: программа просто не сможет быть выполнена по той причине, что MathCAD не сможет найти функцию, которую вы ему указали. Искать такие ошибки тоже совсем не сложно — они всегда хорошо видны, поскольку даже сама среда подсвечивает их, чтобы можно было найти особенно быстро. Исправлять, соответственно, тоже очень просто: достаточно записать идентификатор правильно, и все в программе станет на положенные места. MathCAD, кстати, избавляет пользователя от множества таких ошибок благодаря необходимости вводить все операторы, управляющие ходом программы, с помощью специальных горячих клавиш или соответствующих кнопок на панели инструментов Программирование. Если бы их нужно было, напротив, набирать вручную с клавиатуры, то и возможности сделать синтаксическую ошибку были бы несравнимо шире.

Второй тип ошибок — ошибки алгоритмические. Это такие ошибки, которые, в принципе, не мешают выполнению программы, но делают результаты такого выполнения полностью лишенными всякого смысла. Многие из таких ошибок — банальные опечатки: там, где нужно было поставить плюс, вы, например, поставили в спешке минус или же сделали что-нибудь другое примерно в таком же духе. Конечно, сказать, что алгоритмические ошибки — это сплошь и рядом одни только опечатки, было бы, мягко говоря, не до конца верно. Потому что очень многие из них являются следствием недостаточности знаний писавшего программу — то есть если ошибочно составлена сама последовательность действий, которые должен сделать MathCAD для того, чтобы вы могли получить интересующий вас результат. Еще великое множество алгоритмических ошибок — результат банальной невнимательности: например, присвоение значения не той переменной, ее необнуление либо, например, вывод не той переменной в качестве результата выполнения вашей программы. В общем-то, именно об алгоритмических ошибках мы с вами сейчас и будем говорить более подробно. Однако есть еще один, особенно неприятный, тип ошибок.

Третий тип — это ошибки мистические. Да-да, именно мистические, я не оговорился. Какие именно это ошибки? Это ошибки, имеющие совершенно непонятную природу и столь же непонятный способ лечения — как правило, это проявления ошибок не в вашей программе, а в каком-то из внутренних компонентов MathCAD’а. К сожалению, эти ошибки, в «большом» программировании встречающиеся не так уж, в общем-то, и часто, в MathCAD’е не такие уж редкие гости. Отчасти это объясняется тем, что MathCAD — это все-таки средство расчетов, а не программирования, которое играет в этой среде второстепенную и вспомогательную роль, но, конечно, когда реально сталкиваешься с такими вот мистическими ошибками, это все не слишком успокаивает. Хотя поначалу почти все ошибки в программах кажутся мистическими, на самом деле большая их часть все-таки имеет рациональную природу. Если же природа появившейся ошибки вам совершенно непонятна, то вам следует коренным образом перестроить структуру программы или хотя бы тот ее фрагмент, в котором локализовалось проявление этой ошибки. Практически во всех случаях этот не слишком хитрый прием позволяет полностью избавить программу от досадной непонятной ошибки.

Что ж, о самих ошибках мы с вами, можно считать, побеседовали. Теперь давайте, пожалуй, перейдем к тому, какими именно способами можно бороться с самыми распространенными из них — то есть алгоритмическими. Об остальных, в общем-то, я уже довольно подробно все рассказал, а вот что касается алгоритмических ошибок, то здесь нужно будет в большинстве случаев прибегнуть к помощи специализированных встроенных в MathCAD инструментов.

Отладка в MathCAD’е

Процесс поиска и устранения алгоритмических ошибок называется по-русски отладкой. По-английски этот же самый процесс называется debugging, то есть, если дословно, «избавление от жучков». В общем-то, и по-русски довольно часто можно услышать термины «дебагинг» или «баг», однако во избежание путаницы мы будем использовать слово «отладка» (если, конечно, не возражаете). Кстати, история возникновения английского термина весьма любопытна, и, вполне возможно, вы ее слышали. Первые компьютеры были машинами весьма громоздкими и дорогостоящими, а потому и всевозможные поломки для них были делом далеко не просто устранимым. Когда выяснилось, что причиной очередной поломки стал жучок, забравшийся внутрь компьютера и вызвавший замыкание, в счете за ремонт записали: «debugging». Рука шутника оказалась легкой — термин, как видите, прижился и используется на протяжении уже многих десятилетий.

В чем же заключается процесс отладки? На самом деле ничего особенно таинственного и трудного для понимания здесь нет. Просто во время отладки у вас есть возможность выполнять программу не сразу «залпом», как это происходит обычно, а пошагово, то есть выполнять последовательно друг за другом каждую строчку программы, делая, когда нужно, паузы для осмысления работы программы и просмотра промежуточных значений каждой из переменных. Отладка используется при разработке любых программ, а потому и создатели MathCAD включили поддержку этого удобного и, в общем-то, достаточно универсального средства выявления ошибок в свой программный продукт. Доступ к инструментам, используемым при отладке программ в MathCAD’е, осуществляется через подпункт Debug меню Tools в главном рабочем окне MathCAD’а (см. соответствующий скриншот).

Стоит отметить, что, поскольку MathCAD — это среда, ориентированная не на программирование, а на различные вычислительные действия, то отладка в ней имеет более широкое применение, чем только отладка программ, которые пишет пользователь. Отлаживать можно и все вычисления даже в том случае, если они выполняются без применения какого-либо программирования с вашей стороны. В общем-то, поскольку такая возможность будет весьма полезной для большинства читателей не столько при программировании в MathCAD’е, сколько при обычных вычислениях, то именно с такой позиции мы с вами и станем рассматривать отладку в этой мощной математической среде. Нам также понадобится панель отладки. Ее включают так же, как все остальные панели инструментов, в меню View -> Toolbars. Конечно, эта панель, как вы могли уже заметить, дублирует отладочное меню в Tools -> Debug, однако, думаю, нажать на кнопку, расположенную на этой панели, будет все-таки проще и быстрее, чем искать соответствующий пункт в надежно спрятанном от пользователя меню.

При переходе в отладочный режим (кнопка либо пункт меню Toggle Debug Mode) внешний вид главного окна MathCAD’а меняется (см. скриншот): внизу появляется специальное окно, используемое для просмотра промежуточной отладочной информации. Оно называется Trace Window.

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

Как видите, ошибок в программах действительно бояться не следует. Это вполне нормальная составляющая процесса программирования, неизбежно проявляющаяся в каждом из результатов этого процесса. Тем не менее, с ошибками можно и нужно бороться, и с большинством из них это можно производить с весьма высокой вероятностью достижения успеха. Хотя, конечно же, встречаются и такие ошибки, с которыми трудно будет разобраться даже тому, кто на программировании, что называется, собаку съел. Но все-таки они встречаются не так уж часто. Так что в программировании, если вы хотите избежать мучений, связанных с поиском ошибок, очень важна ваша внимательность. Если вы будете достаточно внимательны при написании программы, то риск допустить ошибку будет сравнительно невелик. Впрочем, это правило применимо не только к программированию.

Обработка ошибок.

Система MathCAD предоставляет пользователю некоторый контроль над ошибками, которые могут возникнуть при вычислении выражений или при выполнении программ. Для этой цели служит оператор on error, который можно вставить с помощью одноименной кнопки панели Programming . В поле ввода справа следует ввести выражение или программу, которые необходимо вычислить (известно, что это выражение может содержать ошибку при определенных значениях входных параметров). В поле ввода слева следует ввести выражение, которое будет выполнено вместо правого выражения, если при выполнении последнего возникнет ошибка. Пример: Если аргументу функции присвоено нулевое значение, то в программе возникает ошибка — деление на нуль. Но за счет оператора on error сообщение не выводится, а функции в этой точке присваивается значение, указанное слева от оператора on error — значение машинной бесконечности.

В поле ввода слева может быть введено текстовое выражение, сообщающее об ошибке

Конечно, если программа содержит только простейшие математические операции, то никаких ошибок, кроме деления на нуль или превышения наибольшего допустимого числа в ней возникнуть не может. В таких программах оператор on error используется редко. Но для более сложных программ, которые содержат функции решения дифференциальных уравнений, аппроксимации или другие сложные функции MathCAD, использование on error может избавить от многих трудностей.

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

Для того, чтобы иметь возможность нормально вводить текст на русском языке в аргумент функции error (а также во все другие функции со строками), следует изменить шрифт, который используется во встроенном стиле Constant. Для того чтобы этот стиль правильно отображал русские буквы, установите курсор на любом числе или строковом выражении в формульном блоке. При этом в поле на панели инструментов Formatting, отображающем текущий стиль, должно быть написано — Constant. Теперь выберите из раскрывающегося списка шрифтов шрифт, поддерживающий кириллицу.

1. Вычислить функцию sin(x) с точностью е.

2. Даны массивы А(5) и В(5). Получить массив С, в который записаны сначала элементы

массива А в порядке возрастания, а затем элементы массива В порядке убывания

3. По введенным значениям коэффициентов А, В, С определить корни квадратного уравнения

4. Дан массив натуральных чисел В(10). Определить, есть ли в нем 4 последовательных числа (например, 1, 2, 3, 4, и т.п.). Напечатать такие группы чисел.

1. Какая панель служит для вставки программного кода в документ MathCAD? Можно ли операторы программирования набрать с клавиатуры?

2. С какой команды начинается создание программного блока? Как с ее помощью можно создавать разветвленный программный блок?

3. Что такое определение программного блока? Обращение к программному блоку?

4. Что такое глобальные и локальные переменные для программного блока? Что может содержать последняя строка программного блока?

5. Как работает оператор if в программном блоке? Приведите пример.

6. Создание цикла с параметром в программном блоке. Приведите пример.

7. Создание цикла while в программном блоке. Приведите пример.

8. Для чего служат операторы break, continue в программном блоке? Приведите примеры.

9. Как работает оператор return в программном блоке? Приведите пример.

10. Как осуществляется обработка ошибок в программном блоке? Приведите пример.

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

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

Таблица описывает векторные и матричные операторы Mathcad. Многие из этих операторов доступны из палитры символов. Обратите внимание, что операторы, которые ожидают в качестве аргумента вектор, всегда ожидают вектор-столбец, а не вектор-строку.

Чтобы заменить вектор-строку на вектор-столбец, используйте оператор транспонирования [Ctrl]1.

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

Рисунок 9: Векторные и матричные операции.

В следующей таблице


  • A и B представляют массивы (векторы или матрицы).

  • u и v представляют векторы.

  • M представляет квадратную матрицу.
  • и представляют отдельные элементы векторов u и v.

  • z представляет скаляр.
  • m и n представляют целые числа.
Операция Обозначение Клавиши Описание
Умножение матрицы на скаляр * Умножает каждый элемент A на скаляр z.
Скалярное произведение * Возвращает скаляр: . Векторы должны иметь одинаковое число элементов.
Матричное умножение * Возвращает произведение матриц A и B, число столбцов в A должно соответствовать числу строк в B.
Умножение матрицы на вектор * Возвращает произведение матриц A и v, число столбцов в A должно соответствовать числу строк в v.
Деление / Делит каждый элемент массива на скаляр z.
Сложение векторов и матриц A + B + Складывает соответствующие элементы A и B, массивы A и B должны иметь одинаковое число строк и столбцов.
Скалярная сумма A + z + Добавляет z к каждому элементу A.
Векторное и матричное вычитание A — B Вычитает соответствующие элементы массива A из элементов массива B, массивы A и B должны иметь одинаковые размеры.
Скалярное вычитание A — z Вычитает z из каждого элемента A.
Изменение знака — A Умножает все элементы A на -1.
Степени матрицы, обращение матриц M n ^ n-ная степень квадратной матрицы M (использует умножение матриц). n должен быть целым числом. M -1 представляет матрицу, обратную к M, другие отрицательные степени — степени обратной матрицы. Возвращает матрицу.
Длина вектора |v| | Возвращает , где — вектор, комплексно сопряженный к v.
Детерминант |M| | Возвращает детерминант квадратной матрицы M, результат — скаляр.
Транспонирование A T [Ctrl]1 Возвращает матрицу, чьи строки — столбцы А, и чьи столбцы — строки A. А может быть вектором или матрицей.
Векторное произведение u x v [Ctrl]8 Возвращает векторное произведение для векторов с тремя элементами u и v.
Комплексное сопряжение « Меняет знак мнимой части каждого элемента A.
Суммирование элементов [Ctrl]4 Суммирует элементы вектора v; возвращает скаляр.
Векторизация [Ctrl] — Предписывает в выражении с A производить операции поэлементно. Полное описание дано в разделе “Выполнение параллельных вычислений”
Верхний индекс A [Ctrl]6 Извлекает n-ный столбец массива A. Возвращает вектор.
Нижний индекс (вектора) vn [ n-ный элемент вектора.
Нижние индексы матрицы Am,n [ Элемент матрицы, находящийся в m-ном ряду и n-ной строке.

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

Значение должно быть скаляром, MathCad.

В примере, как работать с Маткадом, всё работает (изображение 1):

Когда я делаю тоже самое, появляется ошибка, что значения не является скаляром:

Как исправить? Помогите, пожалуйста.

Оно может быть скаляром, только если размеры матриц A и B совпадают.

Решение системы линейных уравнений — это ВСЕГДА вектор. Скаляром оно быть не может по определению.

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

Маткад ошибка значение должно быть скалярным

Маткад ошибка значение должно быть скалярным

БАЗОВЫЕ ОПЕРАЦИИ.
РАНЖИРОВАННЫЕ ПЕРЕМЕННЫЕ. ФУНКЦИИ. ГРАФИКИ
МАССИВЫ

1 Запуск. Формульные и текстовые области

Запуск Mathcad: Start / All Programs / Mathsoft Apps / Mathcad (Пуск / Все программы / Mathsoft Apps / Mathcad).

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

Для ввода математических символов: View / Toolbars / Math (Вид / Панели инструментов / Математическая).

Каждое математическое выражение набирается в отдельной формульной области. Одна формула – одна область!

Перемещение курсора — клавиша Пробел. Изменение направления уголка — клавиша Insert (Ins).

«:=» — «присвоить» — задать выражение (число или формулу)

«=» — «вычислить» подсчитать и вывести значение выражения.

Для вставки в документ текстовой области выполняют Insert / Text Region (Вставка / Область текста), либо просто нажимают в формульной области Пробел. Текстовая область имеет рамку с маркерами, позволяющими изменять ее размеры, и курсор в виде вертикальной линии красного цвета.

2 Ранжированные переменные. Функции. Графики

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

Ранжированная переменная общего вида определяется выражением:

Имя := x1, x2 .. xn

Здесь Имя – задаваемое пользователем имя ранжированной переменной;
x1 – первое значение ранжированной переменной;
x2 – второе значение ранжированной переменной (x2 = x1 + Dx — первое значение плюс шаг);
xn – последнее значение ранжированной переменной.
Значения x1 и x2 разделяются запятой, двоеточие представляет собой единый оператор, указывающий на изменение переменной в заданных пределах. Он вводится с клавиатуры клавишей «;» или выбирается с палитры математических инструментов Matrix (Векторы и матрицы) (кнопка — Range Variable).

Например, если переменная изменяется в интервале с шагом , то она задается в виде

Шаг изменения значений ранжированной переменной в явном виде обычно не задается, он определяется как x2 – x1.

Функции в системе Mathcad можно условно разделить на две группы: встроенные и функции пользователя. Встроенные функции изначально заданы в системе разработчиками. Имя функции вводится с клавиатуры, обычно в нижнем регистре. Полный перечень встроенных функций можно получить, выполнив команду Function (Функция) главного меню Insert (Вставка), или нажав на кнопку панели инструментов. При этом появляется окно, где справа перечислены возможные категории функций, а слева – список функций из выделенной категории.

Среди наиболее часто используемых функций можно указать:

  • sin(z) — синус z (z задается в радианах);
  • cos(z) — косинус z;
  • tan(z) — тангенс z;
  • cot(z) — котангенс z;
  • exp(z) – экспоненциальная функция, значение е (основание натурального логарифма) в степени z;
  • ln(z) – натуральный логарифм z;
  • log(z) – десятичный логарифм числа z;
  • log(z, b) – логарифм числа z по основанию b;
  • acos(z) – арккосинус z;
  • acot(z) – арккотангенс z;
  • asin(z) – арксинус z;
  • atan(z) – арктангенс z.

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

Имя(список аргументов) := Выражение

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

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

Основные виды графиков и инструменты для работы с ними находятся на палитре математических инструментов Graph (График).

Для построения графика функции одной переменной в декартовой системе координат в Mathcad:

  1. определяется функция пользователя;
  2. задается ранжированная переменная на некотором диапазоне с мелким шагом;
  3. вставляется шаблон двумерного графика X-Y Plot;
  4. в знакоместо по оси абсцисс записывается имя переменной, а в знакоместо по оси ординат — функция или имя ранее определенной функции;
  5. производится щелчок левой клавишей мыши вне области графика.

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

Массив в пакете Mathcad – это совокупность конечного числа упорядоченных пронумерованных элементов, которая может иметь уникальное имя. Обычно используют одномерные (векторы) и двумерные (матрицы) массивы, содержащие числовые, символьные или строковые данные.

– вектор-столбец; – вектор-строка.

Порядковый номер элемента называется индексом. Местоположение элемента в массиве задается одним индексом для вектора и двумя – для матрицы. Номер первого элемента массива определяется значением системной переменной ORIGIN. По умолчанию ORIGIN = 0 и может принимать только целые значения. Изменение значения этой системной переменной осуществляется последовательностью команд Math / Options… / Built-In Variables / Array Origin (ORIGIN) (Математика / Параметры / Встроенные переменные / Начальный индекс массивов) или переопределением в документе, например:

Существует несколько способов создания массивов.

1-й способ. Использование панели Matrix (Матрицы).

Сначала набирается имя массива и оператор присваивания, например, . Далее на панели Math (Математика) выбираем кнопку Matrix (Матриц):

Далее указываем количество ее строк m (Rows) и столбцов n (Columns) матрицы. Для векторов один из этих параметров должен быть равен 1. При m = 1 получим вектор-строку, а при n = 1 – вектор-столбец.

На месте курсора появится шаблон, в знакоместа которого вводятся значения элементов массива:

2-й способ. Использование ранжированной переменной.

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

  1. определяется системная переменная ORIGIN;
  2. задается ранжированная переменная (переменные) для нумерации элементов;
  3. индексированной переменной присваиваются значения элементов массива через запятую или в виде явной формулы.

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

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

Таблица 1 – Команды палитры инструментов Matrix (Матрица)

Задача 44319 Не могу понять в чём ошибка. Приложение

УСЛОВИЕ:

Не могу понять в чём ошибка. Приложение пишет, что значение должно быть скалярным. Это MathCad 15.0. Что нужно сделать, чтобы исправить ошибку?

РЕШЕНИЕ ОТ slava191 ✪ ЛУЧШЕЕ РЕШЕНИЕ

Возможно нужно взять аргументы sin в круглые скобки sin(Pix^2)

Возможно, также, что mathcad не знает что такое Pi и перед всей конструкцией надо написать Pi:=3,14

Добавил vk140758054 , просмотры: ☺ 48 ⌚ 2020-02-17 11:10:37. информатика 1k класс

Решения пользователей

Написать комментарий

В прошедшем году страна имела следующие показатели, ден. ед.: ВНП — 500; чистые инвестиции частного сектора — 75; государственные закупки — 80; потребление домашних хозяйств — 250; поступление в государственный бюджет прямых налогов — 30; косвенных — 20; субвенции предпринимателям — 25; экспорт — 150; импорт — 110.
Определить:
а) располагаемый доход домашних хозяйств;
б) амортизационный фонд (D);
в) состояние государственного бюджета.

а) Определим величину НД на основе данных о его использовании
у = 250 + 75 + 80 + 150 – 110 = 445.

Поскольку прямые налоги составляют 30 ден. ед., то располагаемый доход:
yv = 445 – 30 = 415.

б) Амортизационный фонд (D) соответствует разности (ВНП— ЧНП). В свою очередь ЧНП = 445 + 20 – 25 = 440.
Следовательно, D = 500 – 440 = 60.

в) Состояние госбюджета характеризуется разностью между государственными расходами и поступлениями в бюджет
δ= (80 + 25) – (30 + 20) = 55.
ТОЛЬКО ПОДСТАВЬ СВОИ ЦИФРЫ.

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

Важным является также то, что каждое окончание всегда является элементом какого-либо набора окончаний, которые именно в противопоставлении друг другу реализуют свое значение. Рассмотрим словосочетания большой победой и большой столовой. У прилагательного и существительного в словосочетании большой победой окончания разные, хотя внешне они совпадают и оба имеют значение ед.ч., Т.п. Дело в том, что каждое из этих окончаний противопоставлено разным единицам, является элементом разных наборов окончаний. Окончание ‑ой в большой противопоставлено другим окончаниям прилагательных, а -ой в победой противопоставлено другим окончаниям существительных первого склонения. Окончания прилагательного и существительного в словосочетании большой столовой считаются одинаковыми: хотя слово столовая является существительным, его окончания типичны для прилагательных[ii]. Оно сохранило часть набора окончаний прилагательного: имеет такие же окончания, как прилагательное в сочетании столовая комната.

С учетом сказанного выше можно выделить такие группы словоформ с одинаковыми окончаниями[iii]:

1. каша, семья, борода — окончания существительных 1 склонения в единственном числе, в И.п.;

2. кальций, стол, патриций — нулевые окончания существительных 2 склонения мужского рода в единственном числе, в И.п.;

3. море, сражение — окончания существительных 2 склонения среднего рода в единственном числе, в И.п.;

4. морей, людей — окончания существительных во множественном числе, в Р.п.;

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

6. большая, столовая, синяя — окончания прилагательных в женском роде, в единственном числе, в И.п.;

7. последние, красивые — окончания прилагательных во множественном числе, в И.п.

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

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

Маткад ошибка значение должно быть скалярным

A «Find» or
«Minerr» must
be preceded
by a matching
«Given»

Find или Minerr
должны предва-
ряться ключе-
вым словам

Эта ошибка выде-
ляет функцию Find
или Minerr при их
несогласованности

Каждый вычислительный блок,
который заканчивается функцией
Find или Minerr, должен начи-
наться с ключевого слова Given

All evaluations
resulted in
either an error
or a complex
result

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

MathCAD не может
начертить некото-
рые точки, потому
что не существует
действительных
значений для их
нанесения
на график

Это сообщение может появиться,
если имеется ошибка или все
значения комплексные

Arguments in
function
definitions
must be names

Аргументы
в определениях
функции
должны быть
именами

Выделенное опре-
деление функции
содержит непра-
вильный перечень
аргументов

В списке аргументов должны быть
правильно поименованы пере-
менные, или список имен необхо-
димо отделить запятыми

At least one
limit must
be infinity

По крайней
мере один пре-
дел должен
быть бесконеч-
ным

Когда для интегри-
рования выбран
алгоритм бесконеч-
ного предела, то по
крайней мере один
из пределов инте-
грала должен быть
бесконечным

Тип бесконечности вводится на-
жатием сочетания клавиш
+ + .

Для изменения алгоритма, ис-
пользующего бесконечный предел
или для вычисления какого-либо
другого интеграла, щелкните на
интеграле правой кнопкой мыши
и измените алгоритм с помощью
контекстного меню

Can only
evaluate an nth
order derivative
when n=0,1..5.

Можно вычис-
лить n-й поря-
док производ-
ной, только
когда п=0,1—5

Порядок производ-
ной должен быть
одним из следую-
щих чисел: 0, 1,
2,. ..5.

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

Can’t evaluate
this function
when its
argument less
than or equal
to zero

Невозможно
вычислить эту
функцию, когда
ее аргумент
меньше или
равен нулю

Такое сообщение
может касаться
XY- или полярных
графиков, имеющих
логарифмические
оси, на которых или
пределы, или неко-
торые из значений,
не положительны

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

Can’t converge
to a solution

Не сходится
к решению

Численный метод
расходится
(не может найти
решения)

Убедитесь, что операция не при-
меняется к функции в области
непосредственной близости точки
ее сингулярности (деления на
ноль).

Попробуйте поменять параметры
численного метода (например,
начальное приближение).

Попробуйте увеличить константу
TOL, т. е. осуществить поиск ре-
шения с худшей погрешностью.

Попробуйте поменять численный
алгоритм, если это возможно
(вызвав контекстное меню нажа-
тием на месте ошибки правой
кнопки мыши)

Can’t define
the same
variable more
than once in
the same
expression

Невозможно
определить ту
же самую пере-
менную более
одного раза в
одном и том же
выражении

Вы пытаетесь вы-
числить одну и ту
же переменную
дважды в одном
выражении

Пример подобной ошибки: если
вы создаете вектор с левой сто-
роной а := и используете это же
имя справа, то получите ошибку

Can’t
determine what
units the result
of this
operation
should have

Невозможно
определить, в
каких единицах
следует быть
результату этой
операции

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

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

Маткад ошибка значение должно быть скалярным

MathCAD — это просто! Часть 27. Программирование и ошибки: вместе веселее!

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

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

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

Самые простые ошибки — синтаксические. Как вы уже имели возможность воочию убедиться, при программировании очень важно придерживаться определенных правил в записи конструкций. Например, если вы вместо имени функции rkfixed напишете в программе tkfixed, ошибившись при вводе на одну букву и нажав на соседнюю с r клавишу t, то как раз и получите в свое распоряжение самую что ни на есть классическую синтаксическую ошибку. Ни к каким особенно страшным последствиям она (как, впрочем, и все другие ошибки аналогичного класса) не приведет: программа просто не сможет быть выполнена по той причине, что MathCAD не сможет найти функцию, которую вы ему указали. Искать такие ошибки тоже совсем не сложно — они всегда хорошо видны, поскольку даже сама среда подсвечивает их, чтобы можно было найти особенно быстро. Исправлять, соответственно, тоже очень просто: достаточно записать идентификатор правильно, и все в программе станет на положенные места. MathCAD, кстати, избавляет пользователя от множества таких ошибок благодаря необходимости вводить все операторы, управляющие ходом программы, с помощью специальных горячих клавиш или соответствующих кнопок на панели инструментов Программирование. Если бы их нужно было, напротив, набирать вручную с клавиатуры, то и возможности сделать синтаксическую ошибку были бы несравнимо шире.

Второй тип ошибок — ошибки алгоритмические. Это такие ошибки, которые, в принципе, не мешают выполнению программы, но делают результаты такого выполнения полностью лишенными всякого смысла. Многие из таких ошибок — банальные опечатки: там, где нужно было поставить плюс, вы, например, поставили в спешке минус или же сделали что-нибудь другое примерно в таком же духе. Конечно, сказать, что алгоритмические ошибки — это сплошь и рядом одни только опечатки, было бы, мягко говоря, не до конца верно. Потому что очень многие из них являются следствием недостаточности знаний писавшего программу — то есть если ошибочно составлена сама последовательность действий, которые должен сделать MathCAD для того, чтобы вы могли получить интересующий вас результат. Еще великое множество алгоритмических ошибок — результат банальной невнимательности: например, присвоение значения не той переменной, ее необнуление либо, например, вывод не той переменной в качестве результата выполнения вашей программы. В общем-то, именно об алгоритмических ошибках мы с вами сейчас и будем говорить более подробно. Однако есть еще один, особенно неприятный, тип ошибок.

Третий тип — это ошибки мистические. Да-да, именно мистические, я не оговорился. Какие именно это ошибки? Это ошибки, имеющие совершенно непонятную природу и столь же непонятный способ лечения — как правило, это проявления ошибок не в вашей программе, а в каком-то из внутренних компонентов MathCAD’а. К сожалению, эти ошибки, в «большом» программировании встречающиеся не так уж, в общем-то, и часто, в MathCAD’е не такие уж редкие гости. Отчасти это объясняется тем, что MathCAD — это все-таки средство расчетов, а не программирования, которое играет в этой среде второстепенную и вспомогательную роль, но, конечно, когда реально сталкиваешься с такими вот мистическими ошибками, это все не слишком успокаивает. Хотя поначалу почти все ошибки в программах кажутся мистическими, на самом деле большая их часть все-таки имеет рациональную природу. Если же природа появившейся ошибки вам совершенно непонятна, то вам следует коренным образом перестроить структуру программы или хотя бы тот ее фрагмент, в котором локализовалось проявление этой ошибки. Практически во всех случаях этот не слишком хитрый прием позволяет полностью избавить программу от досадной непонятной ошибки.

Что ж, о самих ошибках мы с вами, можно считать, побеседовали. Теперь давайте, пожалуй, перейдем к тому, какими именно способами можно бороться с самыми распространенными из них — то есть алгоритмическими. Об остальных, в общем-то, я уже довольно подробно все рассказал, а вот что касается алгоритмических ошибок, то здесь нужно будет в большинстве случаев прибегнуть к помощи специализированных встроенных в MathCAD инструментов.

Отладка в MathCAD’е

Процесс поиска и устранения алгоритмических ошибок называется по-русски отладкой. По-английски этот же самый процесс называется debugging, то есть, если дословно, «избавление от жучков». В общем-то, и по-русски довольно часто можно услышать термины «дебагинг» или «баг», однако во избежание путаницы мы будем использовать слово «отладка» (если, конечно, не возражаете). Кстати, история возникновения английского термина весьма любопытна, и, вполне возможно, вы ее слышали. Первые компьютеры были машинами весьма громоздкими и дорогостоящими, а потому и всевозможные поломки для них были делом далеко не просто устранимым. Когда выяснилось, что причиной очередной поломки стал жучок, забравшийся внутрь компьютера и вызвавший замыкание, в счете за ремонт записали: «debugging». Рука шутника оказалась легкой — термин, как видите, прижился и используется на протяжении уже многих десятилетий.

В чем же заключается процесс отладки? На самом деле ничего особенно таинственного и трудного для понимания здесь нет. Просто во время отладки у вас есть возможность выполнять программу не сразу «залпом», как это происходит обычно, а пошагово, то есть выполнять последовательно друг за другом каждую строчку программы, делая, когда нужно, паузы для осмысления работы программы и просмотра промежуточных значений каждой из переменных. Отладка используется при разработке любых программ, а потому и создатели MathCAD включили поддержку этого удобного и, в общем-то, достаточно универсального средства выявления ошибок в свой программный продукт. Доступ к инструментам, используемым при отладке программ в MathCAD’е, осуществляется через подпункт Debug меню Tools в главном рабочем окне MathCAD’а (см. соответствующий скриншот).

Стоит отметить, что, поскольку MathCAD — это среда, ориентированная не на программирование, а на различные вычислительные действия, то отладка в ней имеет более широкое применение, чем только отладка программ, которые пишет пользователь. Отлаживать можно и все вычисления даже в том случае, если они выполняются без применения какого-либо программирования с вашей стороны. В общем-то, поскольку такая возможность будет весьма полезной для большинства читателей не столько при программировании в MathCAD’е, сколько при обычных вычислениях, то именно с такой позиции мы с вами и станем рассматривать отладку в этой мощной математической среде. Нам также понадобится панель отладки. Ее включают так же, как все остальные панели инструментов, в меню View -> Toolbars. Конечно, эта панель, как вы могли уже заметить, дублирует отладочное меню в Tools -> Debug, однако, думаю, нажать на кнопку, расположенную на этой панели, будет все-таки проще и быстрее, чем искать соответствующий пункт в надежно спрятанном от пользователя меню.

При переходе в отладочный режим (кнопка либо пункт меню Toggle Debug Mode) внешний вид главного окна MathCAD’а меняется (см. скриншот): внизу появляется специальное окно, используемое для просмотра промежуточной отладочной информации. Оно называется Trace Window.

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

Как видите, ошибок в программах действительно бояться не следует. Это вполне нормальная составляющая процесса программирования, неизбежно проявляющаяся в каждом из результатов этого процесса. Тем не менее, с ошибками можно и нужно бороться, и с большинством из них это можно производить с весьма высокой вероятностью достижения успеха. Хотя, конечно же, встречаются и такие ошибки, с которыми трудно будет разобраться даже тому, кто на программировании, что называется, собаку съел. Но все-таки они встречаются не так уж часто. Так что в программировании, если вы хотите избежать мучений, связанных с поиском ошибок, очень важна ваша внимательность. Если вы будете достаточно внимательны при написании программы, то риск допустить ошибку будет сравнительно невелик. Впрочем, это правило применимо не только к программированию.

Обработка ошибок.

Система MathCAD предоставляет пользователю некоторый контроль над ошибками, которые могут возникнуть при вычислении выражений или при выполнении программ. Для этой цели служит оператор on error, который можно вставить с помощью одноименной кнопки панели Programming . В поле ввода справа следует ввести выражение или программу, которые необходимо вычислить (известно, что это выражение может содержать ошибку при определенных значениях входных параметров). В поле ввода слева следует ввести выражение, которое будет выполнено вместо правого выражения, если при выполнении последнего возникнет ошибка. Пример: Если аргументу функции присвоено нулевое значение, то в программе возникает ошибка — деление на нуль. Но за счет оператора on error сообщение не выводится, а функции в этой точке присваивается значение, указанное слева от оператора on error — значение машинной бесконечности.

В поле ввода слева может быть введено текстовое выражение, сообщающее об ошибке

Конечно, если программа содержит только простейшие математические операции, то никаких ошибок, кроме деления на нуль или превышения наибольшего допустимого числа в ней возникнуть не может. В таких программах оператор on error используется редко. Но для более сложных программ, которые содержат функции решения дифференциальных уравнений, аппроксимации или другие сложные функции MathCAD, использование on error может избавить от многих трудностей.

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

Для того, чтобы иметь возможность нормально вводить текст на русском языке в аргумент функции error (а также во все другие функции со строками), следует изменить шрифт, который используется во встроенном стиле Constant. Для того чтобы этот стиль правильно отображал русские буквы, установите курсор на любом числе или строковом выражении в формульном блоке. При этом в поле на панели инструментов Formatting, отображающем текущий стиль, должно быть написано — Constant. Теперь выберите из раскрывающегося списка шрифтов шрифт, поддерживающий кириллицу.

1. Вычислить функцию sin(x) с точностью е.

2. Даны массивы А(5) и В(5). Получить массив С, в который записаны сначала элементы

массива А в порядке возрастания, а затем элементы массива В порядке убывания

3. По введенным значениям коэффициентов А, В, С определить корни квадратного уравнения

4. Дан массив натуральных чисел В(10). Определить, есть ли в нем 4 последовательных числа (например, 1, 2, 3, 4, и т.п.). Напечатать такие группы чисел.

1. Какая панель служит для вставки программного кода в документ MathCAD? Можно ли операторы программирования набрать с клавиатуры?

2. С какой команды начинается создание программного блока? Как с ее помощью можно создавать разветвленный программный блок?

3. Что такое определение программного блока? Обращение к программному блоку?

4. Что такое глобальные и локальные переменные для программного блока? Что может содержать последняя строка программного блока?

5. Как работает оператор if в программном блоке? Приведите пример.

6. Создание цикла с параметром в программном блоке. Приведите пример.

7. Создание цикла while в программном блоке. Приведите пример.

8. Для чего служат операторы break, continue в программном блоке? Приведите примеры.

9. Как работает оператор return в программном блоке? Приведите пример.

10. Как осуществляется обработка ошибок в программном блоке? Приведите пример.

источники:

  • Маткад возникла внутренняя ошибка failed to create
  • Материнская плата хуанан x79 коды ошибок
  • Маткад 15 ошибка при запуске
  • Материнская плата kllisre x79 ошибка ff
  • Маткад 15 неустранимая ошибка приложения