Подпункт 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;
% Заметим, что:
-
Ни один корень не получен точно – это можно объяснить округлениями при вычислениях
-
Наиболее разбросанными оказались значения 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
% Заметим, что:
-
Больше всего min1, то есть результат, полученных методом Гауса, следовательно метод Гауса наименее удачен для данной системы уравнений
-
Меньше всего 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)