Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операторы




End

Else

End

End

End

End

End

45 67 45

67 45

0.4794 0.6442 0.8415

401/441 441/3125 –445/588 –677/706 –1109/3969

1327/1577 –851/2426 –1109/3969 1161/1454 –102108/102109

0.9894 0.4121 –0.5440

Columns 8 through 10

0.8415 0.9093 0.1411 –0.7568 –0.9589 –0.2794 0.6570

Columns 1 through 7

0.8415 –0.3508 –0.2794 0.7985 –1.0000 0.8038 –0.2879

Missing operator, comma or semicolon

0.7174 0.0998 0.1411

0.8415 0.1411 –0.5366

0.4794 0.6442 0.8415

501/1045 947/1470 1327/1577

б) »x = (0.5 0.7 1; 1 3 12; 0.8 0.1 3); Y = sin(x)

Y =

в) »x = (0.5 0.7 1) Y = sin(x)

??? x = (0.5 0.7 1)Y

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

 

12. Если не указана переменная для значения результата вычислений, то MATHLAB назначает такую переменную с именем ans.

13. Результат вычислений выводится в строках вывода (без знака»).

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

В векторе (одномерном массиве) значения заключены в квадратные скобки и отделяются друг от друга пробелом (рис.3, а); в матрице (многомерном массиве) значения заключены тоже в квадратные скобки, причем, строки отделяются точкой с запятой (порядок следования строк: левая выше правой), а значения в каждой строке отделяются аналогично вектору (рис.3, б).

15. Если значения аргумента вычисляемой функции являются членами отрезка арифметической прогрессии с заданной разностью (шагом), то для записи аргумента применяется оператор «двоеточие:» – см. рис. 3. При разности, равной единице, ее запись в операторе можно опускать (см. рис. 3, б).

 

а) » x=1:2.5:16.5;Y=sin(x)

Y =

б) » x=1:10;Y=sin(x)

Y =

в) x=[1:2.5:11.5; 2:6];Y=sin(x)

Y =

 

 

Рис. 3. Правильная запись вычисления функции на одномерном массиве аргумента в виде отрезка арифметической прогрессии (с разностями 2,5 (а) и 1 (б)) и в виде 2-строчной матрицы с теми же разностями (в)

 

 

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

15. Комментарии записываются в отдельную строку, помечаемую знаком процента (%)в первом знакоместе строки (см. рис. 4, а).

16. Разбиение строки с длинным выражением или комментарием на две производится установкой курсора перед переносимой на создаваемую вторую строку частью выражения и нажатием клавиш Shift + Enter (см. рис. 4, б) – двукратное разбиение выражения х = [23 45 67 45] на три строки).

17. Соединение двух строк в одну в программе или в выражении производится установкой курсора в начало второй строки и нажатием клавиш Shift + Backspace (рис. 4, в) – соединение двух строк с выражениями 67 и 45]).

 

а) »x=[0.5 0.7 1];Y=sin(x)

% Комментарии размещаются в отдельных строках

Y =

б) » x=[23 45 67 45]

x =

в) » x=[23

67 45]

x =

 

 

Рис. 4. Ввод комментария в вычисляемое выражение или программу (а), разбиение

первой строки на три (б), объединение 3-й и 2-й строк (в)

 

18. Вычисляемое выражение сразу после завершения вычисления можно ввести вновь в текущее место ввода нажатием кнопки «стрелка вверх» ↑ (для изменения величин аргументов или коррекции выражения).

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

Ранее вычислявшееся выражения можно быстро вставить в место ввода путем выделения его левой кнопкой мышки (кнопка далее отпускается) и небольшого протягивания его вниз повторно нажатой левой кнопкой: MATHLAB сам вставит выделенное выражение.

19. Ранее примененную функцию можно вставить в командное окно через копирование её из окна Command History (Протокола команд), в котором все ранее использованные команды и функции сохраняются до тех пор, пока пользователь не удалит их.

20. Чтобы сохранить данные вычислений в окне управления (выражения, программы, результаты или их части) для повторного вызова и работы, необходимо:

• выделить данные,

• скопировать их в буфер,

• вызвать редактор-отладчик m -файлов через меню «Файл-Создать-m-файл», либо командой edit в командном окне,

• вставить скопированные данные в открывшийся новый m -файл и сохранить его через меню редактора File-Save As…Файл-Сохранить как»).

21. Для продолжения вычислительной работы в окне управления с данными, сохраненными по правилам п.20, необходимо через меню «Файл-Открыть» открыть требуемый файл, выделить в нем требуемые для работы фрагменты, скопировать их в буфер и вставить в текущее место ввода окна управления.

Рассмотрим применение перечисленных выше правил для выполнения вычислений.

Использование переменных. Результат вычислений можно присвоить любой переменной, определенной пользователем. Имя переменной должно начинаться с буквы и может состоять из букв, цифр и символа подчеркивания. Система MATHLAB различает строчные и прописные буквы в именах переменных (A и a – это разные переменные). Знак = соответствует операции присваивания. Значения переменных, вычисленные в течение текущего сеанса работы, сохраняются в специально зарезервированной области памяти компьютера, называемой рабочим пространством (Workspace). Использование переменных рассмотрено в примере 1.

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

 

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

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

Здесь нет точки с запятой, и после нажатия Enter результат выводится и присваивается переменной c.

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

Использование MATHLAB как калькулятора иллюстрирует также пример 2.

Пример 2. Использование MATHLAB как калькулятора

 

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

Нажатие клавиши Enter.

Результат присваивается переменной с именем ans

Результат выводится в формате с плавающей точкой. Такая запись означает 1.5031·103.

Длинные выражения можно записать в нескольких строках с использованием в качестве знака переноса символа многоточия .

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

1. Присвоение значений матрице. Простейшей операций с матрицей является ее создание. Для создания столбца необходимо указать его имя, знак равенства и в квадратных скобках через запятую или через пробел перечислить значения элементов. Например: А=[1 2 3 4 5]. В случае если необходимо создать столбец чисел, то в качестве разделителя выступает символ точка с запятой, например: B=[1;3;5;7]. Для создания квадратной или прямоугольной матрицы необходимо чередовать оба этих способа, например:

 

С=[ 1 2 3; 4 5 6; 7 8 9 ].

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

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

 

<Имя матрицы>=eye(<Размер>).

 

Например: A=eye(4,4).

Единичная матрица может быть только квадратной.

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

<Имя матрицы>=ones(<Кол-во строк>, <Кол-во столбцов>).

 

Например: A=ones(3, 4).

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

 

<Имя матрицы>=zeros(<Кол-во строк>, <Кол-во столбцов>).

 

Например: A=zeros(4, 2).

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

 

<Имя матрицы>=rand(<Кол-во строк>, <Кол-во столбцов>).

 

Например: A=rand(6, 3). По умолчанию в качестве элементов матрицы используются вещественные числа.

 

а б в г

Рис.5. Специальные матрицы

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

<Имя массива>(<Номер строки>, <Номер столбца>).

 

Например: A(1,2).

Умножение матрицы на скаляр. В математике для всех матриц определена операция умножения матрицы на скаляр (число). Все значения матрицы в этом случае умножаются на это число:

 

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

 

 

Сложение (вычитание) матриц. Эта операция допустима только с матрицами одинакового размера. При выполнении операции действие выполняется с соответствующими друг другу ячейками:

 

 

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

Присвоение матрице математического выражения. Организация всех переменных системы MATHLAB как матрицы вызывает следующие ограничения применения их в выражениях.

Пример 3.

t=1:5

t= 1 2 3 4 5

y=cos(t)

y=1 0.5 –0.4 –1 –0.6 0.2

z=y/t

z=–0.08

 

Результат – получается единственное число, а ожидали функцию z(t)=cos(t)/ t!

Для организации поэлементного выполнения арифметических операций предусмотрена специальная форма их записи: «.op». Для приведенного выше примера применение операций деления одного массива на другой в виде «./» дает следующий результат:

 

z=y./ t

z= 0.5403 –0.2081 –0.3300 –0.1634 0.0567.

 

Использование массивов рассмотрено в примере 4.

Пример 4. Использование массивов.

 

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

Элементы массива задаются в квадратных скобках.

Другой способ задать массив в виде x:y:z, где x – первый элемент массива, z – последний элемент массива, y – приращение каждого следующего элемента над предыдущим. Здесь элементами массива будут 2 2,5 3 3,5 4.

Сложение и вычитание массивов осуществляется поэлементно.

Операции поэлементного умножения и деления массивов обозначаются: .* и. /

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

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

Сложение и умножение всех элементов массива на число.

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

 

<Имя вектора>=<Начальное значение>:<Шаг>:<Конечное значение>.

 

Например: Х=6:0.2:26.

Ответ: X=

6.0000 6.2000 6.4000 6.6000 6.8000 7.000

 

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

Цикл for… end. Для данного n,оператор

 

x =[];for i =1:n x=[x,i.2 ],end

или

x =[];for i =1:n x =[x,i.2 ],end

создает определенный вектор размерности n,а оператор

 

x =[];for i =n:-1:1,x=[x,i.2 ],end

создает вектор с теми же элементами, но размещенными в обратном порядке.

Заметим, что матрица может быть пустой (например, в случае оператора x=[].)

Последовательность операторов

 

for i =1:m

for j =1:n

H(i,j)=1/(i+j-1);

H

 

создаст и напечатает на экране матрицу Гильберта размерности m×n. Точка с

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

Цикл while… end. В общем виде цикл while записывается в виде

while <условие>

<операторы>

<Операторы> будут повторяться до тех пор, пока <условие> будет оставаться истинным. Например, для заданного числа a приведенная далее последовательность операторов вычислит и выведет на дисплей наименьшее неотрицательное число n,такое что 2n < a:

 

n=0;

while 2 ^n <a

n=n +1;

n

Условный оператор if… end. В общем виде простой оператор if используется следующим образом:

 

if <условие>

<операторы>

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

 

if n <0

parity =0;

elseif rem(n,2)==0

parity =2;

parity =1;

 

При использовании двухвариантного условного оператора часть, связанная с elseif, конечно, не используется.

Оператор переключения case… end. При необходимости построить конструкцию ветвления с более чем двумя логическими условиями удобнее использовать не вложенные операторы if,а оператор переключения switch...case. Этот оператор имеет следующую структуру:

 

switch <выражение>

%<выражение>-это обязательно скаляр или строка

case <значение1>

%выполняется, если <выражение>=<значение1>

case <значение2>




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 414; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.09 сек.