- •Figure 1: график функции f(X)
- •Построение графика g(X)
- •Figure 3: график функции g(X)
- •Подпункт b.
- •Формулировка задания
- •Построение
- •Figure 4: график f(X) в разных стилях
- •Figure 5: график «кусочной функции»
- •Figure 6 : четыре графика (f(X), Pk(X), g(X) и график «кусочной» функции) в одних осях
- •Figure 7: двуполостный гиперболоид
- •Figure 8: гиперболический параболоид
- •Подпункт c.
- •Формулировка задания
- •Построение
- •Figure 10: освещенный источником света двуполостный гиперболоид, два положения источника, разные точки обзора.
- •Подпункт d.
- •Формулировка задания
- •Построение
- •Figure 11: график пересечения двух поверхностей, первый вариант обзора
- •Figure 12: график пересечения двух поверхностей, второй вариант обзора
- •Figure 13: график пересечения двух поверхностей, третий вариант обзора
- •Исследование свойств полиномов
- •Данные из варианта
- •Представление матрицы в проекте
- •Figure 14: график полинома
- •Figure 15:график полинома на интервале [0.34, 0.64]
- •Figure 16:график полинома на интервале [11.4, 12]
- •Figure 17: график полинома и трех его производных
Figure 17: график полинома и трех его производных
-
Подпункт e.
-
Формулировка задания
-
сравнить координаты точек экстремумов, вычисленных двумя способами:
- используя функцию поиска минимума
- как корень производной
-
Вычисление
x = -2 : 0.01 : 16;
fP = poly(sym(A));
y = subs(fP, 'x', x);
extmin = min(y);
%максимум не ищем, так как у данного полинома максимум функции не соответствует экстремуму.
% вещественные корни первой производной уже были найдены в с и d: x1_d
ext = polyval(P,x1_d);
extmin1 = min(ext);
extmax = max(ext);
-
Сравнение
dif = abs(extmin - extmin2);
-
Выводы
dif = 18,7269 (округление до 4 знака). Учитывая, что интервал всех значений экстремумов от -4*107 до 2*107, можно сделать вывод, что оба способа вычисления координат точек экстремумов достаточно точны.
-
Подпункт f.
-
Формулировка задания
-
внести случайное изменение, используя функцию rand, во второй
коэффициент полинома не более 5%(вычислить относительную погрешность)
каждого корня полинома
-
Вычисление
RndP = P;
Array_rand = rand(size(P))
RndP(2) = RndP(2) + Array_rand(2)
RndRoots = roots(RndP);
for i = 1 : size(RndRoots)
delta(i) = abs(RndRoots(i) - x0(i)) / abs(RndRoots(i));
end
-
Результаты и выводы
0,957166948242946 – вносимое изменение. Составляет 0,00249 процента от исходного коэффициента.
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
0,4752 |
0,4907 |
0,6111 |
0,5868 |
0,2423 |
4,0030e-05 |
4,0030e-05 |
2,5434e-06 |
2,5434e-06 |
3,2523e-08 |
Таблица 1:массив delta – содержит относительные погрешности каждого корня полинома
Видно, что изменение одного коэффициента на менее чем одну сотую процента не влечет за собой кардинальной погрешности вычисления корней.
-
Решение задач алгебры
-
Данные из варианта
-
Две матрицы (см.3.2 и 4.2)
-
Представление матриц в проекте
A = load('-ascii', 'A.txt');
B = load('-ascii','B.txt');
B = B'
Содержимое файла B.txt:
12.1731 -10.9282 -6.9340 3.6014 15.6151 51.3140 -72.5419 -28.1283 -46.1519 23.9508
-
Задание
Для заданной системы линейных уравнений получить решение тремя способами:
a) По правилу Крамера
b) С использованием обратной матрицы
c) При помощи операции "\"
Сравнить решения по значению максимальной компоненты вектора невязок.
-
Подпункт a
-
Решение методом Крамера
C = A;
d = det(A);
for i = 1:10
A(:,i) = B;
da(i) = det(A);
A = C;
X1(i) = da(i)./d;
end
X1 = X1';
-
Подпункт b
-
Решение методом обратных матриц
-
X2 = inv(A)*B;
-
Подпункт c
-
При помощи операции "\"
-
X3 = A\B;
-
Сравнение решений
% Вектор невязки
V1 = B - A*X1;
V2 = B – A*x2;
V3 = B - A*X3;
% компоненты V1 варьируются от V1(3) = -1,67243996429534e-12 до V1(9) = 3,55271367880050e-14
% компоненты V2 варьируются от V2(5) = -1,05870867628255e-12 до V2(1) = 1,11732845198276e-12 % компоненты V3 варьируются от V3(7) = -1,42108547152020e-14 до V3(3) = 4,44089209850063e-15
max1 = abs(V1(1));
for i = 1:10
if abs(V1(i) > max1)
max1 = abs(V1(i));
end
end
max2 = abs(V2(1));
for i = 1:10
if abs(V2(i) > max2)
max2 = abs(V2(i));
end
end
max3 = abs(V3(1));
for i = 1:10
if abs(V3(i) > max3)
max3 = abs(V3(i));
end
end
% max1 = 1,59161572810262e-12
% max2 = 1,11732845198276e-12
% max3 = 4,44089209850063e-15
-
Выводы
1)по значению начальных невязок V1,V2,V3 видим, что ни один корень не получен точно.
2)по значению максимальных компонент вектора невязок, а именно
max1,max2,max3 видим, что значение max3 наименьшее. Следовательно,
решение методом Гаусса наиболее приближенное к решению. Значение
max1 наибольшее, следовательно, метод Крамера наименее удачен для
решения системы линейных уравнений.