Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по практике. Власенко Олеся. ИУ 10-22.docx
Скачиваний:
26
Добавлен:
26.09.2019
Размер:
1.27 Mб
Скачать

Министерство образования и науки Российской Федерации

Московский государственный технический университет

им. Н. Э. Баумана

Кафедра «Защита информации»

Учебная практика

Работа в среде Matlab

Руководитель

Деулина И. И.

Исполнитель

Студент группы ИУ 10-22

Власенко Олеся

Москва 2012

Содержание:

  1. Лабораторная работа 1………………………………………………………... 2

  2. Лабораторная работа 2………………………………………………………… 4

  3. Лабораторная работа 3, 4, 5……………………………………………………12

  4. Лабораторная работа 6…………………………………………………………16

  5. Лабораторная работа 7…………………………………………………………20

  6. Лабораторная работа 8…………………………………………………………26

  7. Лабораторная работа 9…………………………………………………………34

  8. Вывод……………………………………………………………………………36

  9. Список литературы…………………………………………………………….37

Лабораторная работа 1

Тема: «Вычисление и рисование графиков функций»

Задания.

Создать функцию пользователя y=f(x), вычислить ее значение в точке х0 и простроить график.

Функция: х0=3,1

Выполнение:

x = 0:0.05:1;

y = sec(x) + sin (x) -1;

plot (x, y)

x0=3.1

y0 = sec(x0) + sin (x0) -1

Ход работы:

График функции:

Лабораторная работа 2

Тема: «Графика. Диаграммы и гистограммы»

Задания

  1. Постройте графики функций одной переменной на отрезке [0.01, 2π]:

и

Выведите графики различными способами:

• в отдельные графические окна;

• в одно окно на одни оси;

• в одно окно на отдельные оси.

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

Выполнение:

x = 0.01:0.01:2*pi;

y = sqrt(x) -1-cos(0.5*x);

f = exp(-x) .* sqrt(1+x+x.^2) - (x.^2);

plot (x, y, x, f) % одно окно одни оси

plotyy (x, y, x, f) % лучшее расположение осей (наиболее подходящий масштаб)

subplot(1,2,1); plot(x,f) % одно окно разные оси

subplot(1,2,2); plot(x,y)

figure; plot (x,y) % отдельные окна

figure; plot (x,f)

plot (x, y, 'Y.-', x, f, 'm*--') % одно окно одни оси, с дополнениями к графикам

grid on

title ('Графики двух функций')

legend ( 'График 1','График 2')

xlabel ('Ось Х')

ylabel ('Ось У')

Ход работы:

% одно окно одни оси

% лучшее расположение осей (наиболее подходящий масштаб)

% одно окно разные оси

% отдельные окна

% одно окно одни оси, с дополнениями к графикам

2. Визуализируйте функцию двух переменных на прямоугольной области определения

Выведите графики различными способами:

• каркасной поверхностью;

• залитой цветом каркасной поверхностью;

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

• освещенной поверхностью.

Расположите графики в отдельных графических окнах и в одном окне с соответствующим числом осей. Представьте вид каркасной или освещенной поверхности с нескольких точек обзора.

Выполнение:

[x, y] = meshgrid ( -1:0.05:1, -1:0.05:1);

z=(((sin(x.^2)) + (cos(x.^2))).^(x*y));

mesh (x, y, z) % каркасная поверхность

surf(x, y, z) % залитая цветом

colorbar

surfc(x, y, z) % промаркированная линиями уровня

colorbar

surfl (x, y, z) % освещенной поверхностью

subplot(2,3,1); mesh (x, y, z)

title ('Каркасная поверхность')

subplot(2,3,2); surf(x, y, z)

colorbar

title ('Залитая цветом')

subplot(2,3,3); surfc(x, y, z)

colorbar

title ('Промаркированная линиями уровня')

subplot(2,3,4); surfl (x, y, z)

title ('Освещенная поверхность')

subplot(2,3,5); mesh (x, y, z)

title ('Каркасная поверхность(поворот)')

subplot(2,3,6); surf(x, y, z)

colorbar

title ('Залитая цветом(поворот)')

//Поворот поверхностей осуществлялся вручную, с помощью специальной кнопки

Ход работы:

Поверхности:

3. Постройте векторное поле градиента функции.

Визуализируйте трехмерное векторное поле на поверхности (возьмите разные поверхности):

• поверхность является гиперболоидом;

• поверхность является параболоидом;

• поверхность задана параметрически:

Выполнение:

[x, y] = meshgrid ( -5:0.05:5, -5:0.05:5);

z=sqrt((x.^2) + (y.^2) +1);

f= ((x.^2)/8 +(y.^2)/8);

subplot(3,2,1); plot3 (x, y, z)

title('Элиптический параболоид')

subplot(3,2,2); plot3 (x, y, f)

title('Однополостный гиперболоид')

n = 0:0.5:3;

m = 0:0.5:3;

b = cos(n).*cos(m);

c = sin(n).*sin(m);

d = m.*n;

subplot(3,2,3); plot3 (m, n, b)

grid on

subplot(3,2,4); plot3 (m, n, c)

grid on

subplot(3,2,5); plot3 (m, n, d)

grid on

Ход работы:

Поверхности:

Лабораторная работа 3,4,5

Тема: «Использование операторов в MATLAB»

Задание:

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

1. Вычислить произведение элементов вектора, не превосходящих среднее арифметическое значение его элементов.

Выполнение:

function c = fun1(a)

disp(prod(find(a <(mean(a)))));

Задание:

2. Подсчитать число нулей и единиц в заданной матрице.

Выполнение:

function c = fun2(A)

disp(sum(sum(A==0)))

disp(sum(sum(A==1)))

Задание:

3. Определить количество положительных элементов вектора, расположенных между его максимальным и минимальным элементами.

Выполнение:

function c = fun3(a)

i=find(a == max(a));

j=find(a == min(a));

disp(sum((a(j:i)>0)) -2);

end

Задание:

4. Просуммировать отрицательные элементы матрицы, лежащие ниже главной диагонали.

Выполнение:

function c = fun4(a)

disp(sum(sum(find(triu(a)<0))));

end

Задание:

5. Заменить положительные элементы вектора суммой всех его отрицательных элементов.

Выполнение:

function c = fun5(a)

a( a > 0 ) = sum( a(a < 0) );

c=disp(a);

Задание:

6. Заполнить квадратную матрицу А, каждый элемент которой определяется следующим образом:

Выполнение:

function c = fun6(A)

clc

clear

n=input(' Введите размер матрицы ');

for i=1:n

for j=1:n

if i>j

A(i,j)=i-j;

end

if i==j

A(i,j)=i+j;

end

if i<j

A(i,j)=i^2+j^2;

end

end

end

display(A)

Задание:

7. Вычислить сумму:

Выполнение:

function c = fun7(m,n)

syms x a b

c=symsum(symsum(((x^(a+b))/((a+b)^2)),b,1,m),a,1,n);

disp(c);

Задание:

8. Для матрицы размера п на m найти значение выражения:

Выполнение:

function c = fun8(A)

c=sum(prod(A),2);

disp(c)

Задание:

9. По заданному х найти максимальное значение п, для которого следующая сумма не превосходит 100:

Выполнение:

function c = fun9(x)

s=0;

k=0;

while s<=100

k=k+1;

u=k*(x.^k);

s=s+u;

end

n=k;

display(n) ;

Задание:

10. Вычислить сумму:

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

Сравнить результат с точным значением, построив графики ех и s(x) для .

Выполнение:

function c =fun10()

clc

N = 10;

eps = 1e-12;

eps_current = 1;

a = 1;

mysum = @(a,x) sum(a.^(1:x) ./ cumprod(1:x));

S = mysum(a, N);

while(eps_current > eps)

S_old = S;

N = 2 * N;

S = mysum(a, N);

eps_current = (S - S_old) / S_old;

end

Задание:

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

Выполнение:

function c= fun11(x_center,y_center,R,x1,x2)

fi = 0:0.01:2*pi;

x = x_center + R * cos(fi);

y = y_center + R * sin(fi);

plot(x,y)

hold on

plot(x1,x2,'.r');

hold off

//сохраненные файл-функции находятся в архиве, в папке «Лабораторная работа 3 4 5 »