АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Warning: Divide by zero

Читайте также:
  1. According to Leech the literary work of a particular author must be studied with reference to both—«dialect scale» and «register scale».
  2. Actual Division of the Sentence
  3. Adverbs.
  4. Affixation
  5. Affixation as a productive way of word-formation. General characteristics of suffixes and prefixes
  6. Alternative Perspective: A Stylistic Reading.
  7. AMERICAN GEOGRAPHY
  8. Ancient Britain
  9. Answer the questions.
  10. Article with the Names of Meals
  11. Articulatory and physiological aspect of speech sounds
  12. Articulatory and physiological classification of English consonants according to the following pronounles:

ans =

NaN

Здесь NAN - сокращение от слов Not-a-Number (не число), принятое для обозначения неопределенного результата (например, 0/0 или Inf/Inf) [см раздел 2.2.3; системные переменные].

При сообщении об ошибке красного цвета (после знаков ???) MATLAB не выдает решение.

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

>> sqr(2)

??? Undefined function or variable 'sqr'.

Это сообщение говорит о том, что не определена переменная или функция, и указывает, какая именно – sqr.

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

Существует несколько способов возврата в строку ввода ранее введенных команд.

Первый способ – с помощью клавиш “↑” и “↓”. Он рассматривался в разделе 2.2.1.3.

Так после возврата (нажатием клавиши “↑”) в строку ввода ошибочно записанной функции sqr с последующими редактированием и нажатием клавиши Enter будет получен следующий результат:

>> sqrt(2)

ans =

1.4142

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

Третий способ – копирование из окна Command History.

Для активизации окна Command History в версии 6 используется соответствующая строчка меню View, а в версии 7 - раздел меню Desktop. В этом окне отображаются дата и время каждого сеанса работы в MATLAB, а также перечень команд, вводимых в течение каждого сеанса. Если в окне Command History дважды щелкнуть левой кнопкой мыши на какой – либо команде, то она будет выполнена. Это равнозначно вводу данной команды в командное окно с последующим нажатием клавиши <Enter>:

 

Если щелкнуть на какой – либо команде окна Command History левой кнопкой мыши (ЛКМ), то данная команда становится текущей (т.е. так же, как это происходит в любом Windows-приложении). Можно выделить нужную последовательность команд также при помощи комбинации клавиш <Shift>+<↑>, <Shift>+<↓>. При щелчке правой кнопкой мыши (ПКМ) на выделенной области окна Command History появляется всплывающее меню (контекстное меню). Выбор пункта Copy приводит к копированию выделенной последовательности в буфер обмена Windows. Вставка из буфера в строку ввода может быть сделана с помощью строки Paste контекстного меню окна Command Window. Весь вставленный в командную строку набор команд отправляется на выполнение нажатием клавиши < Enter>.

До нажатия клавиши <Enter> содержимое набора можно редактировать, используя обычные прием ы редактирования, общие для Windows – приложений, в том числе и с помощью мыши. Можно вносить в команды необходимые изменения, удалять лишние команды и добавлять новые. При редактировании клавиши <↑> и <↓> могут использоваться для перемещения между строками набора.

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

MATLAB совместно с пакетом ToolBox Symbolic Math (2, глава 7) дает возможность визуальной проверки соответствия набранного выражения исходной формуле.

Пример обнаружения и устранения семантической ошибки при записи следующей формулы:

F =

при x=0,1, y=0,2.

Ввести значения переменных x и y. Набрать с клавиатуры арифметическое выражение F и вычислить его значение, нажав клавишу <Enter>. Если редактор MATLAB синтаксических ошибок ввода не обнаружит, то вычислит значение выражения F= 7,2111.

Для того чтобы проверить выражение F на наличие семантических ошибок, ему необходимо придать статус символьного. Символьное выражение F создается с помощью функции sym [2, гл.7], входным аргументом которой является строка с арифметическим выражением, заключенная в апострофы. На рисунке видно, что арифметическое и символьное выражения F синтаксически совпадают (см. 2-ю и 3-ью командные строки):

Функция pretty [2, раздел 7.1] выводит в командное окно символьное выражение F в виде, близком к математической формуле.

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

Пятая командная строка получена редактированием третьей командной строки с целью исправления ошибки ввода. Результат выполнения пятой команды – новое символьное выражение F (без вывода в командное окно).

В шестой команде функции pretty выводит в командное окно новое символьное выражение F в формульном виде. Выведенная формула совпадает с исходной формулой F.

Седьмая командная строка получена редактированием пятой командной строки с целью отмены для исправленного выражения F статуса символьного. Результат выполнения седьмой команды – правильное значение выражения F= -2,6904.


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)