This value must be a scalar mathcad как исправить

Ошибка: this value must be a scalar MathCAD Решение и ответ на вопрос 1403802

0 / 0 / 0

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

Сообщений: 37

1

25.03.2015, 17:26. Показов 6805. Ответов 5


Здравствуйте. Пытался реализовать пример 2(рисунок прилагаю), но выскакивает ошибка this value must be a scalar.(Также рисунок прилагаю)
В чем может быть проблема?

Миниатюры

Ошибка: this value must be a scalar
 

Ошибка: this value must be a scalar
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



320 / 288 / 104

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

Сообщений: 924

25.03.2015, 17:52

2

Значения, десятичные не через запятую, а через точку «.»)

Добавлено через 1 минуту
если вначале не стоит ORIGIN=1, то поставьте т.к. будет считать с 1 строки , по вашему решению, а матрица 1 строки не имеет.



0



0 / 0 / 0

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

Сообщений: 37

25.03.2015, 17:56

 [ТС]

3

Цитата
Сообщение от proft
Посмотреть сообщение

Значения, десятичные не через запятую, а через точку «.»)
Добавлено через 1 минуту
если вначале не стоит ORIGIN=1, то поставьте т.к. будет считать с 1 строки , по вашему решению, а матрица 1 строки не имеет.

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



0



6513 / 4646 / 1932

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

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

25.03.2015, 18:48

4

проверьте, ошибочно вместо модуля не поставили ли определитель…?



0



Модератор

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

5032 / 3863 / 1327

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

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

25.03.2015, 19:37

5

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

Решение

Макс122, держите…



0



0 / 0 / 0

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

Сообщений: 37

26.03.2015, 13:40

 [ТС]

6

Цитата
Сообщение от VSI
Посмотреть сообщение

Макс122, держите…

Спасибо)



0



 

MathCad и производная от массива

Сообщение10.03.2007, 12:52 


10/03/07
4

Уже бьюсь головой об стенку.

Есть массив:

www.paco.net/~mt/post.png

Мне нужно взять производную от FQ по Qj. Т. е. чтобы в первой строке (FQ1) взялась производная по Q1, во второй строке — по Q2 и т.д.

Никак не хочет. Ругается то на тип переменной типа Qj под знаком дифференциала, то на саму функцию (this value must be a scalar), то просто на погоду.

Есть какие-то варианты?

У меня вообще не получается брать производные, если в функции встречается хоть один индекс. Видимо, виноваты мои ручки :-)

Как заставить Маткад увидеть скаляр в выражении? :-)

Спасибо за помощь!

P.S. Ессно все j, k, l, m …. определены выше.

Профиль  

reader_st 

Сообщение10.03.2007, 14:17 

Заслуженный участник
Аватара пользователя


03/03/06
648

!nferno

Здесь все дело именно в типе данных. Mathcad считает, что это не переменные, а скаляры. Задайте неизвестные вектором, наверняка, есть пример в help’e.

Я, когда начинал работать с СКМ, начал с MathCad, но очень скоро отказался — на мой взгляд очень капризная вещь.

Переходите на Maple. :wink:

Профиль  

!nferno 

Сообщение10.03.2007, 14:30 


10/03/07
4

Я с Maple еще не сильно освоился. У меня там проблема возникает уже на первой формуле. Там, где Маткад автоматически делает массив (как на рисунке), Мапл выдает ошибку и просит все правильно обозначить. А КАК это сделать — знаний нету. Только help читать…

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

Имхо, Маткад наоборот считает переменные вектором и просит их перевести в скаляр (this value must be a scalar). А вот как это сделать :?

Выкладываю весь пример в MathCad13:

www.paco.net/~mt/primer.rar

Мне главное — чтобы MatCad это делал автоматически для любого m, n, k. Как с верхними формулами.

Профиль  

reader_st 

Сообщение10.03.2007, 14:59 

Заслуженный участник
Аватара пользователя


03/03/06
648

!nferno

Я, конечно, посмотрю вечерком Ваш пример, если у меня дома откроется, у не понмю какая версия MathCad есть у меня, а если я не ошибаюсь у них есть проблема несовместимости.

Если будут время, то сделаю в Maple.

Относительно

Цитата:

Маткад читает сверху вниз и все отлично, а вот Мапл вычисляет по всему листу).

делайте разные скобки(секции) и вычисляйте как угодно. Все там нормально :wink:

Профиль  

reader_st 

Сообщение11.03.2007, 18:06 

Заслуженный участник
Аватара пользователя


03/03/06
648

reader_st

Если я ничего не напутал, смотря на Вашу запись, то вот код в Maple

Цитата:

> with(linalg):
> Tp:Ts:
> X:=matrix(3,2):
> Q:=vector(3):
> FQ:=vector(3):
> d:=vector(3):
> T:=matrix(3,3):
> Y:=matrix(3,3):
> Th:=vector(3):
> a:=vector(2):b:=vector(2):
> P_t:=multiply(Q,X):
>
> for i from 1 to 2 do
> P[i]:=a[i]-b[i]*P_t[i];
> end do:
>
>
> for j from 1 to 3 do
> FQ[j]:=sum(P[l]*Q[j]*X[j,l],l=1..2)-d[j]*Q[j]-sum(Y[j,l]*Q[j]*T[j,l],l=1..3)-Ts*Q[j]*Th[j]-Tp*Q[j];
> end do;
>
>
> seq(diff(FQ[j],Q[j]), j=1..3):
>

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

Ваш файл diplom.xmcd

у меня не открылся (MathCad 2000).

Профиль  

!nferno 

Сообщение12.03.2007, 00:05 


10/03/07
4

Громадное спасибо за желание помочь!

Начал разбираться с Maple… и понял, насколько удобнее для неосведомленного ума MathCad. :-)

Вот, что я ввел в Maple:

Код:

>n := 3
>k := 2
>m := 3
>X := Matrix(n, k, symbol = x)
>Q := vector(n)
>for j to n do
Qr[j] := Q[j] X(j, i)
end do;
>a := vector(k)
>b := vector(k)
> for i from 1 to k do
P[i]:=a[i]-b[i]*Qr[i];
end do
>FQ := vector(n)
>c := vector(n)
>d := vector(n)
>Y := Matrix(n, m, symbol = y)
>T := Matrix(n, m, symbol = t)
>Th := vector(n)
>Dist := vector(k)
>for j from 1 to n do
> FQ[j]:=sum(P[i]*Q[j]*X[j,i],i=1..k)-c[j]*((Q[j])^2)-d[j]*Q[j]-sum(Y[j,l]*Q[j]*T[j,l],l=1..m)-Ts*Q[j]*Th[j]-Tp*Q[j]-sum(Tf*Q[j]*Dist[i]*X[j,i],i=1..k);
> end do
Warning, inserted missing semicolon at end of statement
Error, Matrix index out of range
>

Вот что получил :) Явно где-то что-то в матрицах недообозначил.

Если Вы заметили, то я немного подправил формулу (ночью ошибка приснилась :D ).

Но насколько же Маткад удобнее! Может, там все-таки можно как-то взять эту производную?

Ведь всего то и делов. Взять производную от вектора по Q[j], приравнять к нулю и решить уравнения, найдя Q[j].

Все остальные действия — повторяющиеся.

На всякий случай прилагаю полный пример в формате MathCad11 :oops: (13 Маткад на более раниие версии не хочет сохранять):

www.paco.net/~mt/DIPLOM.mcd

Ну и в html, если не откроется:

www.paco.net/~mt/Diplom_html.rar

Профиль  

!nferno 

Сообщение12.03.2007, 11:50 


10/03/07
4

Сейчас опять поигрался в Maple 10. Не получается ничего, совсем синтаксиса не знаю :(

Он еще и различает, к примеру, команды matrix и Matrix; vector и Vector. Совсем запутался.

:oops:

Вот если бы мне кто-то описал мой пример… не весь… хотя бы до первой суммы в формуле FQ[j]… т.е. все, что до нее (n, k, m, i, l, j, QR[i], P[i]) и «огрызок» FQ[j] = sum(P[i]*Q[j]*X[j,i],i=1..k). И производную от нее по Q[j].

А дальше я по аналогии, думаю, смогу.

:oops:

P.S. A что делает фраза with(linalg)? В справке почитал, что добавляет специальные функции. И пишется как with(LinearAlgebra).

Но на перемножении вектора с матрицей в формуле QR[i] я все-равно ступорюсь и получаю кучу ошибок: от invalid arguments до нечто футуристического:

Error, (in LinearAlgebra:-VectorMatrixMultiply) invalid input: LinearAlgebra:-VectorMatrixMultiply expects its 1st argument, v, to be of type Vector[row] but received Vector[Column]

Ему не все-равно, как вектор записан? В ряд или в столбик?

Профиль  

reader_st 

Сообщение12.03.2007, 20:23 

Заслуженный участник
Аватара пользователя


03/03/06
648

!nferno

Ваш код в MathCad я посмотрю, но думаю ошибка в следующем:

$$Q_i$$ наверняка задаете как вектор и MathCad воспринимает его как числовой. Следовательно, необходимо научить в MathCad задавать и работать в символьными переменными

.

Относительно моего кода в Maple 10:

Цитата:

> with(linalg): //пакет linalg для работы с функциями линейной алгебры(есть еще более широкий пакет LinearAlgebra с более широкими возможностями откуда и команда Vector, а vector из linalg ) Также команды с большой буквы, например, Limit использую для вывода

выражения, но не его вычисления, в станд. мат. написании.
> Tp:Ts: объявление переменных
> X:=matrix(3,2): объявление символьной

матрицы X 3*2
> Q:=vector(3): объявление символьного

вектор Q длиной 3
> FQ:=vector(3): и т.д.
> d:=vector(3):
> T:=matrix(3,3):
> Y:=matrix(3,3):
> Th:=vector(3):
> a:=vector(2):b:=vector(2):
> P_t:=multiply(Q,X): //перемножение вектора и матрицы, т.е. то что у Вас в скобках
>
// формирование $$P_i$$ по Вашей общей формуле в сумме
> for i from 1 to 2 do
> P[i]:=a[i]-b[i]*P_t[i];
> end do:
>
>// собственно вычисление по указанной формуле
> for j from 1 to 3 do
> FQ[j]:=sum(P[l]*Q[j]*X[j,l],l=1..2)-d[j]*Q[j]-sum(Y[j,l]*Q[j]*T[j,l],l=1..3)-Ts*Q[j]*Th[j]-Tp*Q[j];
> end do;
>
> формирование последовательности производных, т.е. производная каждой строки полученного вектора по переменной или воспользуйтесь отдельно командой diff(FQ[j],Q[j]);, где вместо j подставляйте 1,2,3 и будете получать соответствующие производные.
> seq(diff(FQ[j],Q[j]), j=1..3):
>

Данный код является рабочим.

Кстати, у Maple очень хороший и понятный help с примерами.

Ежели, что не получится — спрашивайте.

Профиль  

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы

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


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


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

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

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

Во-первых, уже правильно говорили, что знак равенства в уравнении нужно вводить через Ctrl = (он должен быть жирным, и в примере это видно) .
Во-вторых, если вы задали альфу как функцию от трёх аргументов, то и в уравнении её надо писать так же, то есть со скобками, в которых перечислены аргументы. Ну, или сразу писать там матрицу, как было сделано в примере.

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

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

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

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

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

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

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

представляет квадратную матрицу.

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

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

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

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

Здесь легко и интересно общаться. Присоединяйся!

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

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

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

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

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

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

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

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

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

Внутри программы можно использовать глобальные переменные документа, но изменить их значение внутри программы никак нельзя. Можно создать в программе другие переменные, доступ к которым может осуществляться только из самой программы. Эти переменные называются локальными переменными. Локальные переменные «не видны» извне. Локальная переменная создается с помощью знака локального присвоения с панели Programming. Для оператора локального присваивания, так же как и для операторов обычного и глобального присваивания, можно изменить внешний вид так, чтобы он выглядел как обычный знак равенства. Для этого достаточно вызвать контекстное меню этого оператора и в нем выбрать команду View Definition As/Equal.

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

Вставить строку программного кода в уже созданную программу можно в любой момент с помощью той же самой кнопки Add Line. Для этого следует поместить на нужное место внутри программы линии ввода.

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

Проверка условий в программах.

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

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

Если для условия «истинно» необходимо выполнение нескольких строк программы, надо воспользоваться кнопкой .

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

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

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

Цикл for — цикл со счетчиком.

В таких циклах создается некоторая переменная-счетчик, значение которой изменяется после каждого выполнения тела цикла. Выход из цикла происходит при достижении этой переменной заданного значения. Этот оператор вводится с панели Programming клавишей for . В поле ввода после слова for следует указать имя переменной — счетчика. Это может быть любое имя, которое не использовалось ранее в программе. Внутри цикла можно использовать эту переменную в любых выражениях, нельзя только присваивать ей никакого значения. В поле ввода после знака следует указать диапазон значений переменной-счетчика. Вводить диапазон в данном случае следует так же, как и при создании ранжированной переменной. Вместо диапазона в данном поле ввода можно указать имя некоторого массива (вектора или матрицы). В этом случае переменная-счетчик будет последовательно принимать значения всех элементов этого массива. Возможность перебора элементов массива не может быть реализована с помощью цикла while, поэтому именно в таких случаях цикл for и является незаменимым. В поле ввода под словом for следует ввести тело цикла.

Пример: Заполнить вектор числами от xнач до xкон с шагом h. Затем определить сумму элементов этого вектора и найти их среднее арифметическое значение.

Цикл while — цикл, который выполняется до тех пор, пока выполняется определенное условие.

В поле ввода справа от слова while следует ввести условие. Это условие строится по тем же правилам, что и в операторе if. Оно будет проверяться после каждого выполнения тела цикла и в тот момент, когда условие перестанет выполняться, повторение тела цикла прекратится. В поле ввода ниже слова while следует ввести тело цикла (напомним, что для ввода нескольких строк в теле цикла надо воспользоваться кнопкой Add Line).

Пример1: Вычислить сумму с точностью е.

Пример2: Найти первый элемент, превышающий определенный порог.

Использование операторов break и continue.

Иногда возникает необходимость повлиять на выполнение цикла некоторым образом, например, прервать его выполнение по какому-либо условию или выполнять некоторые итерации не так, как другие. Для этого и служат операторы break и continue.

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

Пример: Выделить из массива все элементы от начала и до первого вхождения в него заданного числа.

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

Пример: Требуется заполнить элементы квадратной матрицы в шахматном порядке.

Оператор return (возврат значения).

Как мы уже указывали, результат выполнения программного модуля помещается, как правило, в последней его строке. Но можно прервать выполнение программы в любой ее точке (например, с помощью условного оператора) и выдать некоторое значение, применив оператор return. В этом случае при выполнении указанного условия значение, введенное в поле ввода после return, возвращается в качестве результата, и никакой другой код больше не выполняется. Вставляется в программу оператор return с помощью одноименной кнопки панели Programming . Пример:

Система 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, и т.п.). Напечатать такие группы чисел.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 9014 — | 7251 — или читать все.

78.85.5.224 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

MathCAD — универсальная система математических расчетов: Методические указания к лабораторной работе

Цель работы — изучение основ работы с программой MathCAD; освоение входного языка системы; управление вычислительным процессом; построение и форматирование графиков; выполнение символьных операций. Приводятся основные сведения по работе с системой, упражнения для практического освоения системы, контрольные вопросы. Пособие подготовлено на кафедре «Теоретические основы радиотехники» УГТУ-УПИ.

Приложение 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 (Эту операцию можно выполнить только над строкой). Например, строковые функции требуют хотя бы один строковый аргумент.

Понравилась статья? Поделить с друзьями:
  • This table failed to load data error cheat engine
  • This may be triggered by issue 1002 the database returned an unexpected error
  • This line does not contain a recognized action как исправить
  • This tab was reloaded due to an error yandex
  • This stream is already in use ошибка торрент