Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проект СППО Желдак.doc
Скачиваний:
1
Добавлен:
16.12.2018
Размер:
1.44 Mб
Скачать

Figure 17: график полинома и трех его производных

    1. Подпункт e.

      1. Формулировка задания

сравнить координаты точек экстремумов, вычисленных двумя способами:

- используя функцию поиска минимума

- как корень производной

      1. Вычисление

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);

      1. Сравнение

dif = abs(extmin - extmin2);

      1. Выводы

dif = 18,7269 (округление до 4 знака). Учитывая, что интервал всех значений экстремумов от -4*107 до 2*107, можно сделать вывод, что оба способа вычисления координат точек экстремумов достаточно точны.

    1. Подпункт f.

      1. Формулировка задания

внести случайное изменение, используя функцию rand, во второй

коэффициент полинома не более 5%(вычислить относительную погрешность)

каждого корня полинома

      1. Вычисление

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

      1. Результаты и выводы

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 – содержит относительные погрешности каждого корня полинома

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

  1. Решение задач алгебры

    1. Данные из варианта

Две матрицы (см.3.2 и 4.2)

    1. Представление матриц в проекте

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

    1. Задание

Для заданной системы линейных уравнений получить решение тремя способами:

a) По правилу Крамера

b) С использованием обратной матрицы

c) При помощи операции "\"

Сравнить решения по значению максимальной компоненты вектора невязок.

    1. Подпункт a

      1. Решение методом Крамера

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';

    1. Подпункт b

      1. Решение методом обратных матриц

X2 = inv(A)*B;

    1. Подпункт c

      1. При помощи операции "\"

X3 = A\B;

    1. Сравнение решений

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

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. Выводы

1)по значению начальных невязок V1,V2,V3 видим, что ни один корень не получен точно.

2)по значению максимальных компонент вектора невязок, а именно

max1,max2,max3 видим, что значение max3 наименьшее. Следовательно,

решение методом Гаусса наиболее приближенное к решению. Значение

max1 наибольшее, следовательно, метод Крамера наименее удачен для

решения системы линейных уравнений.

19