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

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

Тема: «М-файлы»

Задания.

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

;

;

Выполнение:

Содержание файла-программы:

x=0:0.1:2*pi;

u=(sin(log(x+1))+cos(log(x+1)));

subplot(2,2,1)

plot(x,u)

title('u')

grid on

x=-0.9:0.1:0.9;

f=1./(1+(1./(1+x)));

subplot(2,2,2)

plot(x,f)

title('f')

grid on

x=0.5:0.1:1.5;

g=x.^(x.^x);

subplot(2,2,3)

plot(x,g)

title('g')

grid on

x=0:0.1:1;

h=sin(6*pi.*(x.^2).*abs(x-(2/3)));

subplot(2,2,4)

plot(x,h)

title('g')

grid on

Графики:

2. Напишите и выполните файл-программу для построения поверхностей.

Для вычисления значений функций создайте файл-функцию:

Выполнение:

Содержание файла-программы:

x=-1:0.1:1;

y=-1:0.1:1;

[X,Y]=meshgrid(x,y);

z=exp(3*X.*sin(Y.*pi*0.5)) + exp(3*Y.*sin(X.*0.5*pi));

subplot(1,2,1)

surf(X,Y,z)

title('Z')

grid on

x=0:0.1:1;

y=0:0.1:1;

[X,Y]=meshgrid(x,y);

w=(sin(exp(X.*2)-exp(Y.*(-2)))+cos(exp(Y.*2)-exp(X.*-2)));

subplot(1,2,2)

surf(X,Y,w)

title('W')

grid on

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

  1. Напишите файл-функцию для решения следующих задач:

1) по заданному вектору определить номер его элемента с наибольшим отклонением от среднего арифметического всех элементов вектора;

function c = function1(a)

[ maxVal maxInd ] = max( abs(a - mean(a)) );

2)вычислить сумму всех элементов вектора с нечетными индексами;

function b = summa(a,m,n)

a=m:2:n;

b= sum(a);

3) найти максимальное значение среди диагональных элементов заданной матрицы;

function c = function3(A)

c = max(diag(A))

4) переставить первый столбец квадратной матрицы с ее диагональю;

function b =function4(A)

v = diag(A);

A=diag(A(:,1));

A(:,1)= v;

b=A;

5) просуммировать все внедиагональные элементы заданной матрицы;

function S =sum(A)

S = sum(sum(A)) - sum( diag(A));

6) заменить максимальный элемент вектора средним значением всех его элементов;

function x = replaceMax2Mean(x)

x( x == max(x) ) = mean(x);

7) заменить элемент матрицы с индексами 1,1 произведением всех элементов матрицы;

function ans = proizv(A)

A (1,1) = prod( prod(A));

8) построить многоугольник (замкнутый) с координатами вершин (xi9yi), заданными

векторами хну;

function z= function8(X,Y)

X=[1 2 3 2 1];

Y=[1 2 0 5 1];

z=patch(X,Y,[1 0 0]);

9) отобразить элементы заданного вектора синими маркерами, а максимальный элемент— красным и вернуть значение и номер максимального элемента.

function c = function9(a)

I=max(a);

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

disp(i);

disp(I);

plot(a,'.b');

hold on

plot(a(i),'.r');

hold off

end

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

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

Тема: «Методы вычисления в MATLAB»

Задания

1. Вычислите интеграл от функции:

по промежутку между ее двумя соседними корнями, принадлежащими отрезку [0, 4].

Выполнение:

fplot ('(cos (x - sqrt(2)).*exp(2*sin (x))-1)', [0,4])

grid on

x1 = fzero ('(cos (x - sqrt(2)).*exp(2*sin (x))-1)' , 0.5)

x2 = fzero ('(cos (x - sqrt(2)).*exp(2*sin (x))-1)' , 2.5)

I = quad ('(cos (x - sqrt(2)).*exp(2*sin (x))-1)', x1, x2)

Ход работы:

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

2. Вычислите интеграл от функции

по промежутку между ее локальным максимумом и локальным минимумом, абсциссы которых принадлежат отрезку [-5, 0].

Выполнение:

fplot ( 'sin(x) - (x.^2) .* cos (x)' , [-5,0])

grid on

x1 = fminbnd ('sin(x) - (x.^2) .* cos (x)', -4, -3.5)

x2 = fminbnd ('sin(x) - (x.^2) .* cos (x)', -1.5, -1)

I = quad ('sin(x) - (x.^2) .* cos (x)' , x1, x2)

Ход работы:

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

Задание:

Найдите корень уравнения f(z) = 0.1, если

Выполнение:

syms x

f = x.* tan(x).^2;

integral=int ( f , x)

c = log(cos(0)) + 0*tan(0) - 0^2/2

% по теореме Ньютона-Лейбница d= f(z)-f(0) т.к. с= f(0)=0, то d = f(z)

syms z

d = log(cos(z)) + z*tan(z) - z^2/2

fplot ('log(cos(z)) + z*tan(z) - z^2/2-0.1', [-10,10])

% f(z) = 0.1

grid on

% на графике видно, что корень уравнения не один, их количество стремится к бесконечности

Ход работы:

График:

Задание:

4. Решите систему дифференциальных уравнений для х [0, 5]:

Выполнение:

Фаил-программа:

function F = ddefun(x,y,Z)

Y1 = Z(:,1);

Y2 = Z(:,2);

F = [ Y2(1)

-Y1(2)+Y2(1)];

function S = ddehistory(x)

S = [(sin(x) + 0.1)

(x -2)];

function ddetest

sol =dde23(@ddefun,[0.5; 1], @ddehistory,[0, 5]);

figure

subplot (2,1,1)

plot ( sol.x, sol.y(1,:), 'o')

y1= inline ('sin(x) + 0.1');

hold on

fplot ( y1, [0,5], 'r')

title ('Первая компонента решения')

legend ('приближенное значение','точное значение')

subplot (2,1,2)

plot (sol.x, sol.y(1,:), '+')

y2 = inline('x-2');

hold on

fplot(y2, [0,5], 'r')

title ('Вторая компонента решения')

legend ('приближенное значение', 'точное значение')

//запустив последнюю функцию, мы получим результат на экране

Решение:

График решение:

Задание:

5. Решите дифференциальное уравнение для

Выполнение:

Фаил-программа:

function solvdem

Y0=[0.02;1];

[T,Y]=ode113(@oscil,[0;5],Y0);

plot(T,Y(:,1),'r.-')

hold on

plot(T,Y(:,2),'k.:')

grid on

hold off

function F = oscil(x,y)

F= [y(2); 0.1*(y(1)^2)-3*y(1) + 2*sin(x)];

График решение:

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