Разное

Matlab модуль числа – Matlab модуль числа

Основные объекты системы MatLab

Математические выраженияв MatLab стоятся, как и в большинстве языков программирования, из числовых констант, переменных, стандартных и нестандартных функций, соединенных знаками арифметических операций, например+ ,- ,* , / ,^,и круглых скобок. Кроме того, как было показано ранее, вид результата зависит от установленного формата.

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

0, 2, -4, 4.67, 0.0005, 567.9e-7, 0.89e12.

Числа могут быть как действительными, так икомплексными. Комплексные числа содержат как действительные, так и комплексные чисти. В MatLab мнимая часть имеет множитель i или j, означающий корень квадратный из -1. Например,

3i, 5j, -5.1 +i8, 005e-5- j0.006.

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

Числовая константа– это предварительно определенное число (числовое значение). Числа (например,1, -5, 3.97) являются безымянными числовыми константами.

Системные константы(табл. 3.1-3) – это такие константы, значения которых задаются системой при загрузке. Однако по мере необходимости эти константы могут переопределяться.

Таблица 2.3.1-3 Таблица 3.5.3-3

Константа

Назначение

i или j

Мнимая единица

pi

Число π=3.1415926…

eps

Погрешность вычислений над числами с плавающей точкой (по умолчанию 2-52)

realmin

Наименьшее число с плавающей точкой (по умолчанию 2-1022)

realmax

Наибольшее число с плавающей точкой (по умолчанию 21022)

inf

Значение машинной бесконечности

NaN

Указание на нечисловой характер данных (Not-a-Number)

Символьная константа– это последовательность символов, заключенных в одиночные апострофы. Например:

'Кафедра ВМиП'

'88+0'

КомментариивMatLabопределяются с помощью символа%. Например,

% Это комментарий

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

  • имя переменной (ее идентификатор) может состоять из символов латинского алфавита, знака подчёркивания и цифр, но начинаться обязательно с символа алфавита;

  • прописные и строчные буквы различаются;

  • пробел не входит в имя переменной.

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

Пример 3.1-5

>> a=3.25*(0.7-3.3/5.1)+2.3^3

a =

12.3391

>> b=5*(2.2+3.9i)+0.8

b =

11.8000 +19.5000i

>>

Простейшие арифметические операции системы приведены в табл. 3.1-4.

Таблица 3.1-4

Функция

Название

Операция

Синта-сис

plus

Плюс

+

M1+M2

uplus

Унарный плюс

+

+M

minus

Минус

-

М1-M2

uminus

Унарный минус

-

mtimes

Матричное умножение

*

M1*M2

times

Поэлементное умножение массивов

.*

A1.*A2

mpower

Возведение матрицы в степень

^

М^х

power

Поэлементное возведение массива в степень

.^

A.^x

mldivide

Обратное (справа налево) деление матриц

\

M1\M2

mrdivide

Деление матриц слева направо

/

M1/M2

ldivide

Поэлементное деление массивов справа налево

.\

A1.\A2

rdivide

Поэлементное деление массивов слево направо

./

A1./A2

Необходимо обратить внимание на то, что каждая операция имеет аналогичную по назначению функцию. Например, операции матричного умножения * соответствует функция mtimes(Ml,M2). Примеры применения арифметических операций уже не раз приводились, так что ограничимся несколькими дополнительными примерами.

Пример 3.1-6

>>А=[1 2 3]; 

>>В=[4 5 6]: 

>>В-А

 ans=

3

3                 3

>>minus (В. А)

ans =

3

3                 3

>>А. ^ 2

ans =

1

4                  9

>> power(A,2)

ans =

1

4          9

       

>>А.\B

ans=

4.0000

2.5000        2.0000

>>ldivide(A,B)

ans=

4.0000

2.5000        2.0000

>>rdivide(A,B)

ans=

0.2500

0.4000             0.5000

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

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

 

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

Пример 3.1-7

>>help elfun

>>

Таблица 3.1-5

Тригонометрические функции (результат вычисляется в радианах)

sin, cos, tan, cot

Синус, косинус, тангенс и котангенс

sec, csc

Секанс, косеканс

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

asin, acos,atan,atan2, acot 

Арксинус, арккосинус, арктангенс и арккотангенс

asec, acsc 

Арксеканс, арккосеканс

Гиперболические функции

sinh, cosh, tanh, coth 

Гипербол. синус, косинус, тангенс и котангенс

sech, csch 

Гиперболические секанс и косеканс

asinh, acosh, atanh, acoth 

Гиперболические арксинус,

арккосинус, арктангенс и арккотангенс;

Экспоненциальная функция, логарифмы, степенные функции

exp

Экспоненциальная функция

log, log2, log10

Логарифм натуральный, по основанию 2 и 10

sqrt

Квадратный корень

Модуль, знак и функции для работы с комплексными числами

abs, sign

Модуль и знак числа

conj, imag, real

Комплексно-сопряжённое

mod, rem

Остаток от деления с учетом знака делимого и без

gcd, lcm

Наибольший и наименьший общий делитель

cell, fix, floor, round

округления

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

Возникающий в процессе вычислений комплексный результат не является ошибкой. MatLab автоматически переходит в область комплексных чисел, если это необходимо, продолжая вычисления. Например, если необходимо найти квадратный корень из –1. Более того, допустимы операции деления на ноль, которые приводят к стандартным переменнымInfили–Inf. Результат деления нуля на ноль естьNaN(Not a Number – не число). Переполнение или потеря точности в MatLab при выполнении операций с числами с плавающей точкой не вызывает прекращение вычислений.

Запись комплексных величин, используемых в арифметических выражениях, напоминает общепринятые математические стандарты. Мнимые части комплексных чисел сопровождаются либо буквой i, либо буквойj:

Пример 3.1-8

>>x=1.5-0.5i

x =

1.5000 - 0.5000i

>>y=1.5-0.5j

y =

1.5000 – 0.5000j

>>

Если переменным iиjне присвоены какие-либо значения, то их можно использовать для формирования комплексных данных, используя знак умножения и располагая такой “сомножитель” до или после мнимой части:

Пример 3.1-9

>>a=1;

>>x=i*a

x =

0 + 1.0000i

>>y=a*i

y =

0 + 1.0000i

>>

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

С помощью функции real иimagможно выделить вещественную и мнимую часть комплексного значения, а функцияcomplexпозволяет сконструировать комплексное значение по паре двух вещественных чисел.

Пример 3.1-10

>>b=5+j10;

>>c=real(d)

c=

5

>>d=imag(b)

d=

10

>>

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

Пример 3.1-11

>>t=conj(b)

t=

5.0000e+000 -1.0000e+001i

>>g=b'

g=

5.0000e+000 -1.0000e+001i

>>

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

Необходимо обратить внимание, что числовые переменные в MatLab являются двумерными массивами размера один на один. Представление всех данных в MatLab в виде массивов оказывается очень полезным, о чем подробнее будет сказано в следующих разделах.

studfiles.net

Вычисления в МАТЛАБ

Проверка. Решение задачи с помощью стандартных встроенных функций ядра MATLAB.(Выберите стиль Заголовок 4)

оформление 1

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

оформление 2

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

Выводы. Обсуждение полученных результатов.(Выберите стиль Заголовок 4)

Например, результаты вычислений проделанных аналитически способом 1 (возможно, после соответствующих преобразований) дают те же результаты, что и использование стандартной функции такой-то.

Или, представление результата вычислений после применения способа 2 отличается от представления результата после проверки или способа 1 с помощью стандартной функции такой-то, но на самом деле это одно и то же объяснить почему

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

Встроенные математические функции МАТЛАБ позволяют находить значения различных выражений. МАТЛАБ предоставляет возможность управления форматом вывода результата. Команды для вычисления выражений имеют вид, свойственный всем языкам программирования высокого уровня.

Упражнение 1.1

Наберите в командной строке 1+2 и нажмите <Enter>.

В результате в командном окне МАТЛАБ отображается следующее: >> 1+2

ans = 3

>>

Что сделала программа МАТЛАБ? Сначала она вычислила сумму 1+2, затем записала результат в специальную переменную ans и вывела ее значение, равное 3, в командное окно. Ниже ответа расположена командная строка с мигающим курсором, обозначающая,

9

что МАТЛАБ готова к дальнейшим вычислениям. Можно набирать в командной строке новые выражения и находить их значения.

Если требуется продолжить работу с предыдущим выражением, например, вычислить (1+2)/4.5, то проще всего воспользоваться уже имеющимся результатом, который хранится в переменной ans. Наберите в командной строке ans/4.5 (при вводе десятичных дробей используется точка) и нажмите <Enter>, получается:

>>ans/4.5 ans = 0.6667

>>|

Форматывыводарезультата вычислений

Вид, в котором выводится результаты вычислений, зависит от формата вывода, установленного в МАТЛАБ. Далее объяснено, как задать основные форматы вывода. Числовые данные, с которыми оперирует MATLAB, в памяти компьютера представлены вещественными или комплексными (их обсудим позже) переменными в формате double. Это означает, что каждое вещественное число занимает 8 байтов в оперативной памяти и принимает по модулю значения из диапазона [10−308 ,10308 ] . Количество значащих цифр при этом достигает 16-17. Именно с такой точностью MATLAB выполняет все вычисления. Однако при отображении всех результатов на экране часть значащих цифр отбрасывается в соответствии с установленным форматом вывода. Отображаемые значения округляются по общепринятым в математике правилам.

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

Пример отображения числа

Пример отображения числа

Пример отображения числа

>> format short

>> format short e

>> format rational

>> x=sqrt(2)

>> x

>> x

x =

x =

x =

1.4142

1.4142e+000

1393/985

>> format long

>> format long e

 

>> x

>> x

 

x =

x =

 

1.414213562373095

1.414213562373095e+000

 

По умолчанию система использует формат short (укороченный).

Есть целый ряд системных числовых констант, которые не надо портить: pi – число ;

realmax – наибольшее положительное число с плавающей запятой; realmin – наименьшее положительное число с плавающей запятой;

eps – относительная погрешность при вычислениях с плавающей запятой.

10

Упражнение 1.2

1) сложите два числа 1/2+2/3 в формате format short

2) перейдите в формат format rational и сложите два числа 1/2+2/3

¾ Можно кратко в format rat

пример отчета к этому упражнению: Упражнение

1. сложить два числа

(горячая клавиша “Alt плюс =” вызывает конструктор формул, наберите 1 \ 2 пробел плюс 2 \ 3 пробел, сдвинув стрелочку вправо, вы выйдите из формулы)

МАТЛАБ выдает

>> 1/2+2/3 ans =

1.1667

>>

2) перейти в формат format rational и сложить те же числа и . МАТЛАБ выдает

>>format rat

>>1/2+2/3

ans =

7/6

>>

Замечание Все промежуточные вычисления МАТЛАБ производит с двойной точностью, независимо

от того, какой формат вывода установлен.

11

Работассимвольнымипеременными

Команда syms a b c d (переменные записываются через пробел) позволяет работать с символьными переменными как с числами, то есть мы можем работать с алгебраическими выражениями:

Упражнение 1.3.

Введите

>>(x+1)*(x-1)

???Undefined function or variable 'x'.

МАТЛАБ выдал сообщение об ошибке, теперь введите

>> syms x

>>f=(x+1)*(x-1)

>>collect(f)

ans =

-1+x^2

>> f=collect(f)

f =

-1+x^2

Ответьте в отчете на вопрос, что сделала команда collect с выражением f

Посмотрите в help через Index в разделе simplifications (упрощения) как делать различные преобразования в алгебраических выражениях.

теперь присвоим x какое-нибудь число: >>x =

2

снова вызовем

>> f

f =

(x+1)*(x-1)

теперь снова вызовем

12

studfiles.net

Matlab округление

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

 

Есть несколько видов Matlab округление:

 

1. round - Округление до ближайшего целого

пример:

 

a = [-1.9, -0.2, 3.4, 5.6, 7.0, 2.4+3.6i]

 

a =
Columns 1 through 4
-1.9000  -0.2000   3.4000   5.6000
Columns 5 through 6
7.0000   2.4000 + 3.6000i

 

Теперь используем функцию round:

 

round(a)

 

ans =
Columns 1 through 4
-2.0000   0   3.0000   6.0000
Columns 5 through 6
7.0000   2.0000 + 4.0000i

 

2. ceil - Округление в большую сторону

пример:

 

a = [-1.9, -0.2, 3.4, 5.6, 7, 2.4+3.6i]

 

a =
Columns 1 through 4
-1.9000   -0.2000   3.4000   5.6000
Columns 5 through 6
7.0000   2.4000 + 3.6000i

 

Теперь используем ceil:

 

ceil(a)

 

ans =
Columns 1 through 4
-1.0000   0   4.0000   6.0000
Columns 5 through 6
7.0000   3.0000 + 4.0000i

 

3. fix - Округление в сторону нуля

пример:

 

a = [-1.9, -0.2, 3.4, 5.6, 7.0, 2.4+3.6i]

 

a =
Columns 1 through 4
-1.9000   -0.2000   3.4000   5.6000
Columns 5 through 6
7.0000   2.4000 + 3.6000i

 

Теперь воспользуемся fix:

 

fix(a)

 

ans =
Columns 1 through 4
-1.0000   0   3.0000   5.0000
Columns 5 through 6
7.0000   2.0000 + 3.0000i

 

4. floor - Округление в меньшую сторону

 пример:

 

a = [-1.9, -0.2, 3.4, 5.6, 7.0, 2.4+3.6i]

 

a =
Columns 1 through 4
-1.9000   -0.2000   3.4000   5.6000
Columns 5 through 6
7.0000   2.4000 + 3.6000i

 

Теперь применим floor:

 

floor(a)

 

ans =
Columns 1 through 4
-2.0000   -1.0000   3.0000   5.0000
Columns 5 through 6
7.0000   2.0000 + 3.0000i

 

 

 Вот и все виды матлаб округление.

Поэтому из выше всего сказанного можно сделать вывод, что вам необходимо просмотреть много дополнительной информации и альтернатив!


←Предыдущая Массив Matlab   Matlab модуль числа Следующая→

xn----itbabpc0acaivro5j.xn--p1ai

Комплексные числа в matlab. — МегаЛекции

При вычислении, например sqrt(-1), никакой ошибки или предупреждения не возникает. MatLab автоматически переходит в область комплексных чисел:

»sqrt(-1.0)

ans =

0 + l.0000i

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

»sqrt(-1.0)

ans =

0 + l.0000i

При наборе комплексных чисел в командной строке MatLab можно использовать либо i, либо j, а сами числа при умножении, делении и возведении в степень необходимо заключать в круглые скобки:

»(2.1+3.2i)*2+(4.2+1.7i)^2

ans =

18.9500 +20.6800i

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

» 2.1+3.2i*2+4.2+1.7i^2

ans =

3.4100 + 6.4000i

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

» 2-3i'

ans =

2.0000 + 3.0000i

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

»((3.2+1.5i)*2+4.2+7.9i)'

ans =

10.6000 -10.9000i

MatLab позволяет использовать комплексные числа в качестве аргументов встроенных элементарных функций:

» sin(2+3i)

ans =

9.1545 — 4.1689i

Конструирование комплексного числа по его действительной и мнимой части выполняется с помощью функции complex:

» complex(2.3, 5.8)

ans =

2.3000 + 5.8000i

 

Числовые массивы

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

» al=[1 2 3]; d=[1+2i,2+3i,3-7i];

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

» al(3)=789;

мы изменим третий элемент массива. Или, после введения:

» al(2)=(al(1)+al(3))/2;

второй элемент массива станет равным среднему арифметическому первого и третьего элементов. Запись несуществующего элемента вполне допустима – она означает добавление нового элемента к уже существующему массиву:



» al(4)=7;

Применяя после выполнения этой операции к массиву а1 функцию length, находим, что количество элементов в массиве возросло до четырех:

» length(al)

ans = 4

Тоже самое действие – «удлинение массива а1» - можно выполнить и с помощью операции конкатенации:

» al=[al 7];

Можно задать массив, прописывая все его элементы по отдельности:

» a3(1)=67; a3(2)=7.8; a3(3)=0.017;

Однако этот способ создания не является эффективным.

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

» diap=3.7:0.3:8.974;

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

Чтобы узнать, сколько элементов в массиве, следует вызвать функцию length (имя массива).

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

Введите с клавиатуры:

» a=[1 2; 3 4; 5 6]

Нажмите ENTER, получим:

a =

1 2

3 4

5 6

Полученную матрицу а размером 3x2 (первым указывается число строк, вторым – число столбцов) можно сформировать также вертикальной конкатенацией вектор-строк:

» a=[[1 2];[3 4];[5 6]];

или горизонтальной конкатенацией вектор-столбцов:

» a=[[1;3;5],[2;4;6]];

Структуру созданных массивов можно узнать с помощью команды whos(имя массива), размерность массива – функцией ndims, а размер массива – size.

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

» a(1,1)=1; a(1,2)=2; a(2,1)=3;

» a(2,2)=4; a(3,1)=5; a(3,2)=6;

Однако будет намного эффективнее, если до начала прописывания элементов массива, создать массив нужного размера функциями ones (m,n) или zeros(m,n), заполненный единицами или нулями (m – число строк, n – число столбцов).

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

Использование этих функций возможно и при задании массивов других размерностей. Если после формирования массива Х потребуется, не изменяя элементов массива, изменить его размеры, можно воспользоваться функцией reshape (Х, М, N), где M и N – новые размеры массива Х.

Объяснить работу этой функции можно, только исходя из способа, каким система MATLAB хранит элементы массивов в памяти компьютера. Она хранит их в непрерывной области памяти упорядоченно по столбцам: сначала располагаются элементы первого столбца, вслед за ними расположены элементы второго столбца и т.д. Помимо собственно данных (элементов массива) в памяти компьютера хранится также управляющая информация: тип массива (например, double), размерность и размер массива, другая служебная информация.

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

Поменять местами строки матрицы с ее столбцами можно операцией транспортирования, которая обозначается знаком .' (точка и апостроф). Например,

» A=[1 1 1; 2 2 2; 3 3 3];

» B=A.'

B =

1 2 3

1 2 3

1 2 3

Операция ' (апостроф) выполняет транспонирование для вещественных матриц и транспонирование с одновременным комплексным сопряжением для комплексных матриц.

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

Приложение 1


Рекомендуемые страницы:

Читайте также:

Воспользуйтесь поиском по сайту:

megalektsii.ru

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

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