Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Den_1

.docx
Скачиваний:
10
Добавлен:
13.03.2016
Размер:
205.88 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)» в г. Смоленске

Кафедра вычислительной техники

Отчет

по практике.

Тема: «Основы работы с математическим пакетом MATLAB»

Студент: Котосов С.В.

Группа: АС-14

Преподаватель: Зернов М.М.

Смоленск 2015

День 1

ЛАБОРАТОРНАЯ РАБОТА №1

Основы работы с математическим пакетом MATLAB

Цель работы: познакомиться с программной средой для математических расчетов MATLAB, освоить синтаксис и семантику языка программирования MATLAB.

  1. Выполнение элементарных математических операций

1.1. Задать с помощью операции присвоения значения следующим скалярным переменным:

a = 23;

b = 71;

c = 604;

d = 303;

Текст М-файла:

a=23;

b=71;

c=604;

d=303;

    1. Вычислить значение следующих выражений (для вычисления факториала используется функция factorial):

1) ;

2) ;

3) ;

4) ;

5) .

Текст М-файла:

a+b

(a-b)*c

c/a+b/d

c^(((factorial(b))^(1/a))/log(a/b))

(exp(-(a+b)*a/((c+d)*c))/abs(c^2-d^2)+tan(a*b*c*d))/log10(1.5)

Результат выполнения:

ans =

94

ans =

-28992

ans =

26.4952

ans =

0

ans =

-9.0862

  1. Выполнение матричных расчетов

2.1. Задать с помощью операции присвоения:

Текст М-файла:

A=[1 2 3;5 6 7;9 11 4]

B=[10 11 13]

C=[1+3j 7+2j 9-5j;4-8j 15+9j -1+1j]

D=[1 7 9;8 9 -1;-1 3 8]

Результат выполнения:

A =

1 2 3

5 6 7

9 11 4

B =

10 11 13

C =

1.0000 + 3.0000i 7.0000 + 2.0000i 9.0000 - 5.0000i

4.0000 - 8.0000i 15.0000 + 9.0000i -1.0000 + 1.0000i

D =

1 7 9

8 9 -1

-1 3 8

2.2. Вычислить значение следующих выражений:

1)

2)

3)

4) (определитель матрицы A)

5) (правое матричное деление)

6) (левое матричное деление)

7) (матричное произведение)

8) (поэлементное произведение)

9) (правое поэлементное деление)

10) (левое поэлементное деление)

Текст М-файла:

B*A

A*B'

inv(A)

det(A)

A/B

B'\A

A*D

A.*D

A./D

D.\A

ans =

182 229 159

ans =

71

207

263

ans =

-1.4722 0.6944 -0.1111

1.1944 -0.6389 0.2222

0.0278 0.1944 -0.1111

ans =

36.0000

ans =

0.1821

0.5308

0.6744

ans =

0.4667 0.5872 0.4077

ans =

14 34 31

46 110 95

93 174 102

ans =

1 14 27

40 54 -7

-9 33 32

ans =

1.0000 0.2857 0.3333

0.6250 0.6667 -7.0000

-9.0000 3.6667 0.5000

ans =

1.0000 0.2857 0.3333

0.6250 0.6667 -7.0000

-9.0000 3.6667 0.5000

ans =

18 20 12

ans =

11

19

12

ans =

10 1

8 14

ans =

5.0000

15.0000

27.5000

2.3. Для матрицы C выполнить обычную операцию транспонирования и операцию транспонирования с комплексным сопряжением.

Текст М-файла:

C.'

C'

Результат выполнения:

ans =

1.0000 + 3.0000i 4.0000 - 8.0000i

7.0000 + 2.0000i 15.0000 + 9.0000i

9.0000 - 5.0000i -1.0000 + 1.0000i

ans =

1.0000 - 3.0000i 4.0000 + 8.0000i

7.0000 - 2.0000i 15.0000 - 9.0000i

9.0000 + 5.0000i -1.0000 - 1.0000i

2.4. С помощью оператора «:» выполнить:

  1. матричное сложение вектора-строки B и второй строки матрицы D

  2. матричное сложение транспонированного вектора-строки B и первого столбца матрицы A

Текст М-файла:

B+D(2,:)

B'+D(:,1)

A(1:2,1:2)+D(2:3,2:3)

1.5*A(:,2)+(D(3,:))'+3

Результат выполнения:

ans =

18 20 12

ans =

11

19

12

ans =

10 1

8 14

ans =

5.0000

15.0000

27.5000

  1. Построение графиков

3.1. Построить график функции на отрезке [0, 15] с шагом 0.1.

Текст М-файла:

x=[0:0.1:15];

y=a*x+b;

figure(1);

plot(x,y);

Результат выполнения:

    1. Построить график функции на отрезке [-0.05, 0.05] с шагом 0.001.

Текст М-файла:

t=[-0.05:0.001:0.05];

f=sin(100*pi*t);

figure(2);

plot(t,f);

Результат выполнения:

    1. Построить график функции на отрезке [0.00001, 100] с шагом 0.1 красным цветом (red). Включить сетку (grid on), добавить маркер «x».

Текст М-файла:

V=[0.00001:0.1:100];

dBm=10*log(V.^2/[50*0.001])/log(10);

figure(3);

plot(V,dBm,'rx');

grid on;

Результат выполнения:

    1. Построить в одной координатной плоскости графики функций и на отрезке [0.001, 0.03] с шагом 0.001. Добавить сетку. Установить режим вписывания графиков в окно системы координат (axis tight).

Текст М-файла:

t=[0.001:0.001:0.03];

V=[0.001:0.001:0.03];

f=sin(100*pi*t);

dBm=10*log(V.^2/50*0.001)/log(10);

figure(4);

plot(t,f,'b',V,dBm,'g');

grid on;

axis tight;

Результат выполнения:

  1. Обработка векторов

    1. Задать вектор-столбец, состоящий из N = 1000000 случайных элементов с равномерным законом распределения на отрезке [0, 500] (с помощью функции rand: rand(m, n); – генерация матрицы размерностью из случайных элементов с равномерным законом распределения на отрезке [0, 1]).

    2. Написать три M-функции (в отдельных M-файлах с именами, отличными от mean, min, max) для определения математического ожидания (среднего арифметического) элементов вектора, минимального и максимального элементов вектора (с использованием операторов ветвления и циклов).

    3. С помощью команд tic и toc измерить время обработки с помощью созданных функций вектора из п.4.1.

    4. С помощью команд tic и toc измерить время обработки вектора из п.4.1. с помощью стандартных функций mean, min, max.

    5. Сравнить результаты п.4.3 и 4.4. Сделать выводы.

    6. Выделить в векторе из п.4.1. элементы со значением больше 250 и сохранить их в отдельный вектор. Выполнить функции mean, min, max над полученным вектором.

    7. Выделить 100 последних элементов вектора из п.4.1. и сохранить их в отдельный вектор.

    8. Написать M-функцию (в отдельном файле с именем, отличным от sort) для сортировки элементов вектора из п.4.7 по возрастанию (с использованием операторов ветвления и циклов).

    9. Построить графики значений вектора до и после сортировки.

    10. С помощью функций tic и toc сравнить время сортировки вектора из п.4.1 функцией из п.4.8 и стандартной функцией sort. Сделать выводы.

Текст М-файла:

N=1000000;

P=rand(N,1)*500;

tic

srd=sred(P)

toc

tic

mini=Mini(P)

toc

tic

maxi=Maxi(P)

toc

tic

mean(P)

toc

tic

min(P)

toc

tic

max(P)

toc

Результат выполнения:

srd =

249.8575

Elapsed time is 0.014061 seconds.

mini =

6.9898e-04

Elapsed time is 0.014491 seconds.

maxi =

499.9995

Elapsed time is 0.015111 seconds.

ans =

249.8575

Elapsed time is 0.189595 seconds.

ans =

6.9898e-04

Elapsed time is 0.018585 seconds.

ans =

499.9995

Elapsed time is 0.003620 seconds.

Сравнивая результаты пунктов 4.3 и 4.4 делаю вывод, что функции, написанные вручную выполняются медленнее предустановленных.

Выполняем задание далее:

Текст М-файла:

for i=1:1:length(P)

if P(i)>250

W(n,1)=P(i);

n=n+1;

end

end

n=1;

for i=(length(P)-99):1:length(P)

E(n,1)=P(i);

n=n+1;

end

R=sortirovka(E);

i=[1:1:100];

u=R(i);

y=E(i);

figure(5);

plot(i,R,'ro-',i,E,'go-');

grid on;

Текст М-файла:

tic

R=sortirovka(E);

toc

tic

sort(E);

toc

Результат выполнения:

Elapsed time is 0.000180 seconds.

Elapsed time is 0.018682 seconds.

Тексты функций:

Sred

function y = sred(P)

S=0;

for i=1:1:length(P)

S=S+P(i);

end

y=S/length(P);

Mini

function y = Mini( P )

Min = P(1);

for i=1:1:length(P)

if P(i)<Min

Min= P(i);

end

end

y=Min;

Maxi

function y = Maxi( P )

Max=P(1);

for i=1:1:length(P)

if P(i)>Max

Max=P(i);

end

end

y=Max;

Sortirovka

function y = sortirovka( E )

for i=1:1:(length(E)-1)

for j=(i+1):1:length(E)

if E(i)>E(j)

x=E(i);

E(i)=E(j);

E(j)=x;

end

end

end

y=E;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]