Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Отчет по ППО
Муравьевой Марины
44 гр.
Были рассмотрены 2 прикладных программы: Matlab (версия 7.8) и Maple (версия 17). Стояла задача ознакомиться с заданием чисел, элементарными операциями над ними, а также заданием массивов, матриц и некоторыми операциями над ними. Было проведено сравнение функциональности интерфейса программ и их возможностей в рамках рассматриваемых задач.
Matlab
В окне программы Matlab присутствуют следующие области:
В программе используются такие константы, как, например, π и мнимая единица. Результат выполнения любой команды записывается по умолчанию, если не задано присвоение переменной, в переменную ans.
>> pi
ans =
3.1416
>> i
ans =
0 + 1.0000i
Синтаксис, учитывая все константы, переменные, команды, регистрочувствительный. Так, например, константы должны вводиться строчными буквами, но не с прописной буквы.
>> Pi
??? Undefined function or variable 'Pi'.
Присвоить значение переменной можно посредством знака =. Сразу выводится значение. Чтобы вывод не осуществлялся после команды ставится точка с запятой.
>> a=42
a =
42
>> a=42;
>>
Числа в Matlab могут быть визуально представлены правильными дробями (format rat), в экспоненциальной форме, в форме числа с плавающей точкой с 4-мя знаками после точки (format short) или 15-ю знаками после точки (format long). Некоторые форматы должны задаваться соответствующими командами.
>> a=7/54;
>> format rat
>> a
a =
7/54
>> format short
>> a
a =
0.1296
>> format long
>> a
a =
0.129629629629630
Экспоненциальная форма:
>> 1e-2
ans =
0.0100
Элементарные операции:
>> a^3
ans =
0.0022
>> a+10*3
ans =
30.1296
>> format rat
>> a=7/54;
>> b=7/55;
>> a+b+ans
ans =
3616/119
Задание вектора (массива):
>> a=[1,1,2]
a =
1 1 2
либо
>> b=[1 1 1]
b =
1 1 1
Скалярное произведение векторов:
>> a*b'
ans =
4
либо
>> dot(a,b)
ans =
4
Векторное произведение векторов:
>> cross(a,b)
ans =
-1 1 0
Норма (длина) вектора:
>> norm(a)
ans =
2.4495
Угол в радианах между векторами можно вычислить, только используя формулу:
>> acos(dot(a,b)/(norm(a)*norm(b)))
ans =
0.3398
Задание матрицы:
>> A = [1 2 3; -4 5 -6; -7 8 -9]
A =
1 2 3
-4 5 -6
-7 8 -9
Транспонирование матрицы:
>> A'
ans =
0 -3 -6
1 4 7
2 -5 -8
Нахождение обратной матрицы:
>> A^-1
ans =
0.2500 1.8333 -1.0833
0.5000 1.0000 -0.5000
0.2500 -0.5000 0.2500
Умножение матрицы на вектор:
>> A*a'
ans =
11
-14
-23
Ранг матрицы:
>> rank(A)
ans =
3
Определитель матрицы:
>> det(A)
ans =
24
Получение ортонормального базиса матрицы:
>> orth(A)
ans =
-0.0833 0.9954 0.0467
0.5310 0.0047 0.8473
0.8432 0.0954 -0.5290
Можно задать матрицу рандомно (числами от 0 до 1):
>> C=rand(3)
C =
0.3922 0.7060 0.0462
0.6555 0.0318 0.0971
0.1712 0.2769 0.8235
Умножим новую матрицу на число, сделав переприсвоение:
>> C=C*10
C =
3.9223 7.0605 0.4617
6.5548 0.3183 0.9713
1.7119 2.7692 8.2346
Нахождение собственных чисел:
>> eig(C)
ans =
-4.9599
10.4815
6.9536
Также возможны комплексные значения:
>> eig(A)
ans =
-1.8880 + 5.2312i
-1.8880 - 5.2312i
0.7759
Чтобы найти собственные вектора, нужно выполнить ту же команду, но присвоив значение двум матрицам:
>> [R,D]=eig(A)
R =
-0.2280 - 0.4623i -0.2280 + 0.4623i -0.8710
0.4472 + 0.0712i 0.4472 - 0.0712i -0.3762
0.7275 0.7275 0.3159
D =
-1.8880 + 5.2312i 0 0
0 -1.8880 - 5.2312i 0
0 0 0.7759
При этом матрица R состоит из собственных векторов, а D является матрицей Жордана, имеющей собственные числа в качестве диагональных элементов.
Также в Matlab имеются команды, позволяющие увидеть все используемые переменные (команда whos) и описать каждую переменную (команда who).
>> who
Your variables are:
A B C a ans b
>> whos A
Name Size Bytes Class Attributes
A 3x3 72 double
Очистить область ввода можно короткой командой clc.
Maple
Окно Maple содержит область ввода с кнопками переключения, чтобы давать программе знать, что пользователь вводит (Text ввод текста, Math ввод математических формул и др.). Также имеется область Variables с описанием используемых переменных.
Присвоение осуществляется с помощью символов :=. Присутствуют константы и мнимая единица. Синтаксис регистрочувствительный. Константы и мнимая единица должны вводиться с прописной буквы.
>
Присвоеив переменной константу, ее значение можно увидеть с помощью команды evalf:
Форматы визуального представления чисел. Правильная дробь остается дробью:
Можно преобразовать дробь в число с плавающей точкой:
:
>
> Задание вектора:
Сложение векторов (2 способа):
Скалярное произведение:
Векторное произведение:
Норма (длина) вектора:
Можно вывести нормированный вектор (без переприсвоения исходной переменной):
Нахождение базиса системы векторов:
Есть возможность ортогонализовать базис данной системы векторов по процедуре Грамма-Шмидта:
Задание матрицы:
Транспонирование матрицы:
Нахождение обратной матрицы:
Умножение матрицы на вектор (2 способа):
Ранг матрицы:
собственных векторов:
В результате выполнения этой команды в скобках указывается собственное значение, его кратность и собственный вектор, так для каждого собственного значения.
Получение жордановой формы матрицы:
Также можно простой командой решить систему линейных уравнений, если она задана матрицей и вектором, Ay=x относительно y: