Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проект по MATLAB.docx
Скачиваний:
4
Добавлен:
01.12.2018
Размер:
47.59 Кб
Скачать

Подпункт d

% r10,r11,r12,r13 – вещественные корни полинома и его производных

% график полинома

x=-5:0.1:10;

subplot (4,1,1)

plot (x, polyval(P,x));

axis( [ -5, 10, -1000000, 1000000 ] );

grid on

indX = imag(r) == 0;

r10 = r(indX);

hold on

plot (r10, 0, 'ro');

% график производной первого порядка

x=-5:0.1:10;

subplot (4,1,2)

plot (x, polyval(P1,x));

axis( [ -5, 10, -1000000, 1000000 ] );

grid on

indX1 = imag(r1) == 0;

r11 = r1(indX1);

hold on

plot (r11, 0, 'ro');

% график производной второго порядка

x=-5:0.1:10;

subplot (4,1,3)

plot (x, polyval(P2,x));

axis( [ -5, 10, -1000000, 1000000 ] );

grid on

indX2 = imag(r2) == 0;

r12 = r2(indX2);

hold on

plot (r12, 0, 'ro');

% график производной третьего порядка

x=-5:0.1:10;

subplot (4,1,4)

plot (x, polyval(P3,x));

axis( [ -5, 10, -1000000, 1000000 ] );

grid on

indX3 = imag(r3) == 0;

r13 = r3(indX3);

hold on

plot (r13, 0, 'ro');

Подпункт e

% сравнение минимумов

Eks=polyval(P,r1);

b=real(Eks); %действительные корни производной

Ekmin=min(b);

Ekmax=max(b);

[xm1, pm1] = fminbnd(@pif, 5, 10 ,1) %ищем только минимальное значение, т. к. максимальное отсутствует

d = Ekmin-pm1

% полученные значения минимумов равны при округлении до 10^(-9). Разность d=-3.703415859490633e-05

% построение графика и отмечание на нем точек, иллюстрирующих разницу

x=-5:0.1:10;

plot (x, polyval(P,x));

axis( [ -5, 10, -1000000, 1000000 ] );

grid on

Eks=polyval(P,r1);

hold on

plot (r1, Eks, 'ro'); % с помощью нахождения корней производной

hold on

plot (xm1, pm1, 'gx'); % с помощью функции поиска минимума

Подпункт f

% рандом

X = rand(size(A)); % Х - массив соразмерный с матрицей A, элементами которого являются случайные величины, распределенные по равномерному закону в интервале (0, 1).

PP = poly(X);

rp = roots(PP); % 2 действительных корней (всего 10)

R=rp-r

% Заметим, что все значения массива R отрицательны, следовательно корни полинома построенного по исходной матрице больше соответствующих им корней полинома построенного по матрице Х

% построение исходного полинома и полинома, полученного с помощью функции rand

P = poly(A);

x=-5:0.1:10;

subplot (2,1,1)

plot (x, polyval(P,x));

axis( [ -5, 10, -1000000, 1000000 ] );

grid on

x=-5:0.1:10;

subplot (2,1,2)

plot (x, polyval(PP,x));

axis( [ -5, 10, -1000000, 1000000 ] );

grid on

Задание 4 Решение задач алгебры

Считывание матриц из файла:

fopen ('Массив А.txt');

A = load('-ascii', 'Массив А.txt'); % левая часть

fopen ('Массив В.txt');

B = load('-ascii', 'Массив В.txt'); % правая часть

B = B';

Подпункт a

% решение методом Крамера

C = A;

d = det(A);

for i = 1:10

A(:,i) = B;

dt(i) = det(A);

A = C;

X3(i) = dt(i)./d;

End

X3 = X3' % транспонирование матрицы из строки в столбец для удобства в дальнейших вычислениях

Подпункт b

% решение методом обратных матриц

X2 = inv(A)*B;

Подпункт c

% решение методом Гауса

X1 = B\A;

X1 = X1' % транспонирование матрицы из строки в столбец для удобства в дальнейших вычислениях

Подпункт d

% вектор невязки

Xn1 = B - A*X1;

Xn2 = B - A*X2;

Xn3 = B - A*X3;

% Заметим, что:

  1. Ни один корень не получен точно – это можно объяснить округлениями при вычислениях

  2. Наиболее разбросанными оказались значения Xn1, полученные из результатов, полученных методом Гауса

min1 = abs(Xn1(1));

for i = 1:10

if abs(Xn1(i) < min1)

min1 = abs(Xn1(i));

end

end

min1

min2 = abs(Xn2(1));

for i = 1:10

if abs(Xn2(i) < min2)

min2 = abs(Xn2(i));

end

end

min2

min3 = abs(Xn3(1));

for i = 1:10

if abs(Xn3(i) < min3)

min3 = abs(Xn3(i));

end

end

min3

% Заметим, что:

  1. Больше всего min1, то есть результат, полученных методом Гауса, следовательно метод Гауса наименее удачен для данной системы уравнений

  2. Меньше всего min3, есть результат, полученных методом Крамера, следовательно метод Крамера наиболее удачен для данной системы уравнений. Это можно объяснить тем, что при решении этим методом совершается наименьшее количество вычислений и приближений

Задание 5 Решение задач анализа средствами символьных вычислений

Объявление символьных переменных:

syms x a k

Подпункт a

%пределы

F1 = (x^1/2+x^1/3+x^1/4)/((2*x+1)^1/2);

y1 = limit(F1,x,inf);

F2 = ((sin(a + x)*sin(a + 2*x)-(sin(a))^2)/x);

y2 = limit(F2,x,0);

y2 = simple (y2); %упрощение

F3 = (asin((1 - x)/(1+x)));

y3 = limit(F3,x,0);

% полученные значения: 13/12; (3*sin(a)*cos(a))/2; pi/2

Подпункт b

%производные

F4 = (log((1-sin(x))/(1+sin(x))^(1/2)));

y4 = diff(F4,x);

y4 = simple(y4); %упрощение

F5 = (atan(exp(x)) - log(exp(2*x))/(exp(2*x)+1)^(1/2));

y5 = diff(F5,x,0);

y5 = simple(y5); %упрощение

F6 = (x^(k/(1+log(x))));

y6 = diff(F6,x);

y6 = simple(y6); %упрощение

% полученные значения: -(sin(x) + 3)/(2*cos(x)); atan(exp(x)) - log(exp(2*x))/(exp(2*x) + 1)^(1/2); (k*x^(k/(log(x) + 1)))/(x*(log(x) + 1)^2)