Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5544.pdf
Скачиваний:
2
Добавлен:
13.11.2022
Размер:
1.79 Mб
Скачать

как ограничения. Нажав «Выполнить», получаем решение в столбце и число 0 в ячейках с формулами.

Начальное приближение может отразиться на результатах, если у системы несколько решений. Если же оно близко от точки, где градиент равен 0 или не существует, небольшое изменение может полностью изменить ответ.

Недостаток применения надстройки «Поиск решения» – скрытость, когда не видно ни процесса, ни особенностей и скорости сходимости. Так, если ответ не получается, не видно, в чём причина – в неудачном выборе приближения, в возникновении аварийной ситуации типа «деление на 0», в малом числе итераций или просто в нашей ошибке.

При изучении численных методов интереснее и поучительнее запрограммировать решение так, чтобы были видны промежуточные результаты и идея решения. Ниже приведены некоторые алгоритмы или краткие советы, для удобства чтения формулы даны в содержательном виде, а не в синтаксисе EXCEL.

Замечание о делении отрезка на части

Во многих задачах требуется разделить отрезок a, b на заранее указанное число частей n так, чтобы отрезок можно было быстро поменять. Это удобно сделать следующим образом.

Поместим a,b, n в 3 любые ячейки. В 4-й найдём шаг h b a , т.е. запишем n

формулу b a / n , где a,b, n – ссылки на значения.

Пусть для определённости точки отрезка надо расположить столбцом. Отведём место для такого столбца, в верхней клетке занесём формулу a , а под ней (не пропуская строк!) формулу x0 $h , где x0 – ссылка на только что запол-

ненную верхнюю клетку. Скопировав мышью формулу вниз, получим точки отрезка x0 , x1 , , xn , расположенные с шагом h. При этом x0 a и xn b .

Теперь при необходимости заменить отрезок a, b на c, d меняем значения в ячейках в ячейках, отведённых в самом начале под a,b . Если длина отрезка поменялась, автоматически изменится шаг h.

Если же требуется изменить число n, придётся учесть, что число точек меняется, и либо продолжить копирование мышью, либо убрать лишние точки.

Решение уравнений делением отрезка

97

1-й способ. Проще всего занести в 2 ячейки, разделённые одной ячейкой, концы отрезка, а в ячейке между ними найти среднее арифметическое. Строкой ниже для трёх полученных чисел найти значения функции f(x). В 1-й строке получим точки a, c, b, во 2-й строке значения f(a), f(c), f(b).

Если знаки функции совпадают в 1-й и во 2-й точке, а в 3-й знак меняется, то в ячейку, предназначенную для a, заносим вручную число c. Если же совпали знаки f(b) и f(c), то c заносим в ячейку, отведённую для b. При этом мгновенно меняются середина отрезка (новая точка c) и все значения функции.

Снова проверяются знаки функций, и так продолжаем, пока точки a, c, b не совпадут с необходимой точностью.

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

2-й способ. Оператор «ЕСЛИ» позволяет избавиться от ручной работы и существенно ускоряет решение. Занесём в 1-й строке a, c, b, f(a), f(c), f(b) (здесь a, b – концы отрезка, остальные обозначения соответствуют формулам EXCEL со ссылками на ячейки).

Во 2-й строке в ячейке для a заносим формулу =ЕСЛИ (f(b)f(c)<0, c, a). В ячейке под b заносим =ЕСЛИ (f(a)f(b)<0, c, b). Вместо букв пишем ссылки на содержащие их ячейки. Скопировав («протянув мышью») все столбцы, сразу получим решение уравнения. Если точность не устраивает, заносим последний отрезок на место начального или копируем столбцы дальше.

3-й способ. Можно воспользоваться и тем, что при работе в EXCEL сразу видны все результаты, и делить отрезок не на 2, а на 5 – 10 частей так, как указано выше. В узловых точках считать значения функции f(x) (занеся 1 раз формулу и скопировав её на всю строку), смотреть, между какими соседними точками меняется знак функции и заносить их вместо a, b по аналогии с 1-м способом.

Метод секущих (хорд)

При реализации в EXCEL достаточно заполнить строчку

 

 

 

 

 

x0

x1

f x0

f x1

x2

Значение x2 считается по соответствующей формуле метода хорд. Затем в следующей строке под ячейкой с x0 надо занести ссылку на x1 , под ячейкой с x1

занести ссылку на x2 , и скопировать мышью все формулы вниз.

98

Если начальные точки взяты удачно, получим в 1-м и 2-м столбце по два очередных соседних приближения, а рядом – значения функции, всё более похожие на 0, причём с некоторого момента появится сообщение о делении на 0.

Можно значение x2 считать сразу под значением x1 . Удобно разбить вычис-

ление на несколько шагов: отдельно найти отношение x1 x0 к

f x1 f x0 и т.п.

 

 

Метод касательных

 

Реализация метода мало отличается от метода секущих, заполняем строку

 

 

 

 

 

 

 

 

x0

f x0

f x0

= x1

 

 

 

 

 

 

 

 

Во 2-й строке под ячейкой x0 заносим ссылку на x1 , копируем формулы вниз.

Последний

столбец необязателен,

формулу вычисления x1

можно

сразу

поместить в следующей строке под x0 , хотя это менее наглядно.

 

 

В таблице

6.1 показано решение

уравнения x3 7x 9 0

методом

хорд

(столбцы А – Е) и методом касательных (столбцы G – I). Для краткости оставлены 3 знака после запятой.

Числа 0 и 1 в ячейках А1 и В1 – начальное приближение метода хорд. Стол-

бец F0

это значение функции f x x3 7x 9

в точке

x

0

0 ,

т.е. формула

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 3

7x

0

9 со ссылкой на А1.

Столбец F1 – значение f x , т.е. формула, по-

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

лученная копированием формулы из С1 вправо.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

x

 

 

 

 

 

 

 

 

 

 

В столбце Дробь найдено отношение

 

1

0

 

 

 

, затем в ячейке А2 занесе-

 

f x

f x

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

0

 

 

 

 

 

 

 

 

на ссылка на предыдущее x1 , т.е. набрано = В1.

 

 

 

 

 

 

 

 

 

 

В ячейке В2 найдено новое

x1 по формуле x1

f1 *Дробь , где все значения

взяты из 1-й строки.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 6.1 – Решение уравнения x3 7x 9 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

B

C

D

 

 

E

 

F

 

 

 

G

 

 

H

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X0

X1

F0

F1

 

Дробь

 

 

 

 

X

 

F(X)

F'(X)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0,000

1,000

–9,000

–1,000

 

0,125

 

 

 

0,000

 

–9,000

7,000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1,000

1,125

–1,000

0,298

 

0,096

 

 

 

1,286

 

2,125

11,959

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

1,125

1,096

0,299

–0,009

 

0,094

 

 

 

1,108

 

0,116

10,683

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

1,096

1,097

–0,009

–0,000

 

0,094

 

 

 

1,097

 

0,000

10,611

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

1,097

1,097

–0,000

0,000

 

0,094

 

 

 

1,097

 

0,000

10,611

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

99

В столбцах G – I вначале занесено x0 0 и подсчитаны

f x0 и

f x0 , где

f x 3x2 7 , число 1, 286 – это x

 

 

f x0

 

.

 

 

 

f x0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

Затем эта формула скопирована, начиная со 2-й строки, а формулы для f x0

и f x0 скопированы с 1-й строки.

Подбор полиномов, проходящих через точки

Дана n 1 точка xk , yk . Надо подобрать полином Pn x , чтобы для всех точек выполнялось условие Pn xk yk .

Занесём данные в два столбца – один для аргументов xk , другой для значений yk . В квадрате из n 1 n 1 клеток находим все степени аргументов от 0 до n, то есть в 1-й строке находим x00 , x01 , , x0n , во 2-й строке x10 , x11 , , x1n , и так до строки xn0 , x1n , , xnn . Дальше возможны 2 пути решения.

1) вызов функции ЛИНЕЙН

Обведя свободное место из 5 строк и n+1 столбца, вызовем функцию ЛИНЕЙН. У этой функции 4 аргумента. Известные значения у – это столбец yk ,

известные значения х – это вся таблица (матрица) из степеней xk . Смысл аргу-

ментов «Константа» и «Статистика» понятен из справки о функции.

Нажав Ctrl–Shift–Enter, получаем коэффициенты полинома. Их порядок – обратный по отношению к порядку степеней xk , т.е. если степени идут от 1 до x n ,

получатся коэффициенты при xn , xn 1, x и в конце – свободный коэффициент. Если учтены все степени полинома, статистика о регрессии интереса не пред-

ставляет, поскольку полином в точности описывает зависимость y x .

2) решение системы уравнений

Обведя свободный квадрат из n 1 n 1 ячейки, при помощи функции МОБР находим матрицу, обратную к матрице степеней xk . Затем при помощи функции МУМНОЖ умножаем её на столбец значений yk . Получаем столбец коэффициентов полинома, начиная со свободного коэффициента.

В таблице 6.2 найден полином, проходящий через точки 1; 2 , 1; 0 , 2; 11 и3; 46 . Оказалось, что это P3 x 2x3 3x 1 . Заметьте, что коэффициенты идут в том порядке, в каком идут степени в матрице.

100

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]