- •Глава 2
- •2.1. Введение
- •Относительные и абсолютные ошибки
- •2.3. Ошибки, содержащиеся в исходной информации
- •2.4. Ошибки ограничения
- •2.5. Ошибки округления
- •2.6. Распространение ошибок
- •2 .7. Графы вычислительных процессов
- •Пример 1
- •2.9. Памятка программисту
- •Упражнения
- •Численное решение уравнений
- •5.1. Введение
- •5.2. Метод последовательных приближений
- •5.3.Усовершенствованный метод последовательных приближений
- •5.4. Метод ньютона — рафсона
- •5.5. Случай почти равных корней
- •5.6. Сравнение методов и их ошибок округления
- •5.7. Корни многочленов
- •5.8. Влияние неточности коэффициентов многочлена
- •5.9. Системы уравнений
- •5.10. Комплексные корни
- •5.11. Нахождение исходного приближения
- •Упражнения
- •Глава 8
- •8.1. Введение
- •8.3. Ошибки округления
- •8.5. Влияние погрешностей коэффициентов. Достижимая точность решения
- •8.6. Итерационные методы решения систем линейных уравнений
- •8.7. Сравнение методов
- •8.8. Практический пример 10: проведение кривой методом наименьших квадратов
- •Лекция №1 Численное интегрирование
- •Лекция №2
- •Правило Симпсона.
- •Метод Гаусса
- •Методы прогноза и коррекции
- •Анализ ошибок при использовании метода прогноза и коррекции
8.7. Сравнение методов
Мы рассмотрели два основных метода решения систем линейных алгебраических уравнений — метод исключения и итерационный метод Гаусса — Зейделя. Естественно, возникает вопрос, какой из этих методов предпочтительнее. Метод исключения имеет то преимущество, что он конечен и теоретически с его помощью можно решить любую невырожденную систему уравнений. Итерационный метод Гаусса — Зейделя сходится только для специальных систем уравнений. Для некоторых систем метод исключения является единственно возможным^).
^ В действительности для любой невырожденной системы уравнений существуют итерационные методы решения, но обычно они неудобны для практических вычислений. См., например, книгу Milne W. Е., Numerical solution of differential equations, Wiley, 1953.
Однако, когда итерационные методы сходятся, они обычно предпочтительнее.
1. Время вычислений пропорционально n^2 на итерацию, в то время как для метода исключения время вычислений пропорционально n^3 если для решения системы требуется менее n итераций, то общие затраты машинного времени будут меньше.
2. Как правило, ошибки округления при итерационном методе меньше; иногда это соображение может оказаться достаточно важным и оправдывает дополнительные затраты машинного времени.
Многие системы уравнений, возникающие на практике, имеют среди коэффициентов большой процент нулей. В этих случаях итерационные методы — если они сходятся — в высшей степени предпочтительны, так как при использовании метода исключения получается треугольная система уравнений, которая обычно уже не имеет нулей в качестве коэффициентов^). При решении системы уравнений на ЭЦВМ система с большим количеством нулей предпочтительна потому, что можно проверять коэффициенты и не производить умножения, если они равны нулю. Уравнения, получаемые при решении уравнений в частных производных, относятся именно к этому классу.
Наконец, некоторые системы уравнений настолько велики, что их не только нельзя точно решить методом исключения, но даже нельзя поместить целиком в оперативную память ЭЦВМ.
Если коэффициенты этих уравнений вычисляются самой ЭЦВМ с помощью некоторой программы, то такое затруднение можно обойти при использовании итерационного метода, вычисляя коэффициенты каждого уравнения тогда, когда в них возникает необходимость. Системы, возникающие при решении уравнений в частных производных, опять-таки относятся к этому классу.
8.8. Практический пример 10: проведение кривой методом наименьших квадратов
Очень часто возникает необходимость выразить в виде функциональной зависимости связь между величинами, которые заданы в виде набора точек с координатами (х, y).
^) В некоторых случаях в треугольной системе после исключения все же остаются нулевые коэффициенты .
Предположим, например, что в результате некоторого эксперимента получены точки, отложенные на графике рис. 8.1. Если необходимо использовать эти данные для вычисления на ЭЦВМ, то сразу появляются следующие проблемы:
1. В значениях y наверняка имеются погрешности эксперимента. Было бы желательно каким-либо образом «сгладить» те отклонения, которые обусловлены ошибками эксперимента.
2. Может оказаться желательным знать значения y, соответствующие промежуточным значениям x.
3.Может оказаться, что необходимо экстраполировать функциональную зависимость, т. е. найти значение y,
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
о |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
о |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
о |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
о |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
о |
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
о |
|
|
|
|||||||||||||||
|
о |
о |
|
|
|
|
|
|
|
|
|
|
|
|
о |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
о |
|
|
|
|
|||||||||||||||
|
|
о |
|
|
|
|
|
|
|
|
о |
|
о |
|
|
|
|
|
|||||||||||||||
|
|
|
о |
о |
|
|
|
|
|
|
|
о |
о |
о |
|
|
|
|
|||||||||||||||
|
|
|
|
о |
о |
|
|
|
|
|
о |
о |
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
о |
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
о |
о |
|
о |
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
Рис. 8.13. Пример экспериментальных результатов, для которых ищется приближенная функциональная зависимость (практический пример 10).
соответствующее значению x, лежащему вне области эксперимента (иногда это является главной целью эксперимента и вычислений). В особенности это относится к экономической информации.
Все эти соображения приводят нас к выводу, что желательно было бы установить некоторую функциональную зависимость между x и y в виде по возможности простой формулы. Вопрос состоит в том, как найти кривую, которая приближенно соответствует исходной информации с достаточной точностью. Таким образом, нужно выработать критерий, согласно которому та или иная кривая является достаточно «хорошим» приближением к исходной информации.
Рассуждение станет проще, если мы введем новое понятие. Назовем отклонением экспериментальной точки разность между экспериментальной ординатой у и той, которая вычислена из функциональной зависимости. Вопрос о том, является ли кривая достаточно «хорошим» приближением к экспериментальным данным, можно поставить в следующем виде: какое условие необходимо наложить на отклонение точек от кривой, чтобы эта кривая представляла экспериментальные данные с достаточной точностью?
Казалось бы, что наиболее простое и логичное условие состоит в том, чтобы сумма отклонений точек от кривой была наименьшей. Если обозначить через y' значение y, вычисленное из функциональной зависимости, то это условие можно записать так: требуется, чтобы
N
(yi - y’i)
i=1
было минимальным, причем в этом выражении N означает количество точек исходной информации. Но привлекательность этого простого критерия сразу становится сомнительной, стоит только рассмотреть простую задачу о проведении линии через две точки, как это показано на рис. 8.14. Мы видим, что пунктирная линия удовлетворяет нашему критерию, но прямую линию, изображенную на этом рисунке, никак нельзя признать удовлетворительным приближением к экспериментальным данным. Можно попытаться обойти это затруднение, используя в критерии сумму абсолютных значений отклонений, т. е. требуя, чтобы
N
I yi - y’i I
i=1
стало минимальным. Но в этом случае для нахождения минимума нельзя воспользоваться производной, так как абсолютное значение не имеет производной в точке минимума. Можно было бы наложить условие, согласно ко- торому максимальное отклонение должно стать наименьшим (приближение Чебышева), но для определения функциональной зависимости на основе этого критерия приходится использовать длинную и сложную итерационную процедуру.
Поэтому в данном случае мы воспользуемся критерием наименьших квадратов, т. е. будем искать такую функциональную зависимость, при которой
N
(yi - y’i)^2
i=1
обращается в минимум. Это выражение, как мы увидим ниже, можно продифференцировать для нахождения мини-
Р и с. 8.14. Пример, показывающий, что сумма отклонений не может служить критерием для подбора функциональной зависимости (практический пример 10).
мума. Такой критерий во многих практических случаях приводит к линейным уравнениям, которые легко решить, по крайней мере в принципе.
Наконец, можно статистически обосновать, что критерий наименьших квадратов дает достаточно хорошее приближение функциональной зависимости к экспериментальным данным, даже если отвлечься от вопроса о практике вычислений.
Рассмотрим теперь вопрос о том, как при использовании критерия наименьших квадратов получается система уравнений для определения функциональной зависимости y от x. Сначала мы произведем вычисления для очень простой зависимости, а именно квадратичной, а затем рассмотрим, что получается, если выбирать другие типы функций ^). Напишем
y’1 = v1 +v2xi + v3xi^2 .
Наша задача состоит в том, чтобы определить значения v1, v2 и v3, при которых сумма
N N
S = (yi - y’i)^2= (yi - v1 - v2xi - v3xi^2)^2
i=1 i=1
становится минимальной.
Известно, что в минимуме функции ее производная равна нулю. Рассматривая S как функцию v1, мы приравниваем
^ Предполагается, естественно, что вид функциональной зависимости задан заранее. С помощью метода наименьших квадратов невозможно установить, например, что экспонента была бы хорошим приближением, если не попытаться фактически ее испробовать. Короче говоря, при использовании этого метода можно находить наилучшее приближение заданного типа', вообще никакой метод не способен определить тип функциональной зависимости, который лучше всего подошел бы к данному набору экспериментальных точек.
нулю частную производную от S по v1. При этом получается
dS/dv1=(-2) (yi - v1 - v2xi - v3xi^2).
Приравнивая нулю и преобразовывая, получаем
Nv1+ ( xi )v2 + (xi^2)v3 = yi .
Аналогичным образом, дифференцируя S по v2 и по vз и приравнивая нулю соответствующие выражения, получаем еще два уравнения для определения неизвестных v1, v2 и v3. Эти уравнения называются нормальными уравнениями для выбора наилучшего приближения к экспериментальным точкам в виде квадратичной параболы (подчеркиваем еще раз, что вид функциональной зависимости задан заранее)
Nv1 + ( xi )v2 + (xi^2)v3 = yi ,
( xi )v1 + ( xi^2 )v2 + (xi^3)v3 = (xiyi) ,
( xi ^2)v1 + ( xi^3 )v2 + (xi^4)v3 = (xi^2yi) .
Теперь для определения коэффициентов v1, v2 и vз достаточно вычислить суммы и решить систему из трех уравнений.
Тот же метод можно использовать при выводе нормальных уравнений для многочлена любой степени, к которым желательно приблизить экспериментальную зависимость. (В дальнейшем, однако, мы увидим, что использование многочленов очень больших степеней невозможно из-за ошибок округления.)
Нормальные уравнения для нахождения коэффициентов многочлена степени M можно написать в следующем виде:
Nv1 + xiv2 + ... + xi^mvm+1 = yi ,
xiv1 + xi^2v2 + ... +xi^m+1vm+1 = (xiyi) ,
.........................................................................................
xi^mv1 + xi^m+1v2 + ... +xi^2mvm+1 = (xi^myi) .
Для многочлена степени M получается система из M + 1 уравнений относительно M + 1 коэффициентов. Количество сумм, которое необходимо вычислить, равно 3M + 1.
Напомним, что индексы в ФОРТРАНе должны быть положительными. В приведенной ниже программе коэффициенты vi образуют одномерный массив и поэтому нумеруются во всех формулах с 1.
Перед тем, как переходить к рассмотрению программы по вычислению требуемых сумм и решению нормальных уравнений, отметим, что метод наименьших квадратов можно применить и к другим функциональным зависимостям, а не только к многочленам. Предположим, например, что мы ищем зависимость в виде показательной функции
y = ax^c .
Непосредственное использование метода наименьших квадратов приведет к нелинейным нормальным уравнениям, но это затруднение можно обойти, используя вместо экспериментальных значений их логарифмы
logy = loga + c1ogx.
Теперь мы стараемся сделать минимальной сумму квадратов разностей между логарифмами экспериментальных значений yi и логарифмами ординат функции y = ах^c . При этом получаем
S = (log yi - log a - c1og x)^2.
Дифференцируя по a и по 6, придем к системе нормальных уравнений
N log a + (log хi)c = log yi,
(log хi) log a + (log xi^2)c = (log xi log yi).
Неизвестными в этой системе являются log а и Ь. После их определения а находится по величине логарифма.
В принципе метод наименьших квадратов можно применить для любой функциональной зависимости, хотя нормальные уравнения часто получаются нелинейными. Некоторые типы функциональных зависимостей рассмотрены в упражнениях.
Вернемся теперь к обобщенной программе для нахождения полиномиальных приближений к экспериментальным данным методом наименьших квадратов. С помощью этой программы можно будет работать с многочленами любой степени до 10-й включительно, причем необходимую степень можно будет прочитать с перфокарты. В программе будет предусмотрен ввод экспериментальных данных, вычисление необходимых сумм, решение нормальных уравнений и печать результатов.
Программа, с помощью которой можно произвести эти вычисления, приведена на фиг. 8.15. Чтобы легче было проследить работу программы, мы приведем список основных переменных и их значений в программе:
NUMBER -- количество экспериментальных точек, не более 200,
М -- степень полинома, не выше 10,
N -- количество уравнений (= M + 1),
X,Y -- массивы экспериментальных координат,
A -- массив сумм, которые впоследствии становятся коэффициентами нормальных уравнений,
B -- массив постоянных членов нормальных уравнений,
С -- массив неизвестных, которые впоследствии становятся коэффициентами многочлена,
Р -- массив степеней xi от 1 до 2M .
Два оператора DIMENSION использованы в программе только из-за недостаточной ширины страниц в этой книге. Чтение исходной информации производится с помощью оператора DO, так что по окончании процесса ввода индекс DO определяет количество пар введенных значений. Окончание процесса ввода определяется по пробной перфокарте, на которой пробито значение Х = 0. (Если Х = 0 может встретиться в экспериментальных данных, то необходимо использовать какую-либо иную пробную перфокарту, и это изменение нетрудно ввести в программу.) Нормальный выход из цикла DO может произойти только тогда, когда количество точек исходной информации больше 200; если же оно меньше или равно 200, то управление с помощью оператора IF передается оператору 12. После выхода из цикла значение индекса 1 будет на 1 больше, нежели количество экспериментальных точек, так как пробная карта тоже была сосчитана.
Несколько операторов, стоящих в конце первой страницы программы, позволяют вычислить степени xi и поместить их в массив Р. Эти величины используются сразу же при выводе нормальных уравнений.
При внимательном рассмотрении системы нормальных уравнений нетрудно заметить следующее: за исключением элемента, стоящего на пересечении первой строки и первого столбца степень x для всех остальных элементов равна сумме номера строки и номера столбца минус 2. Этот факт используется на второй странице программы для определения коэффициентов при неизвестных в нормальных уравнениях. Вслед за коэффициентами вычисляются постоянные члены. В(1) необходимо вычислить отдельно, потому что в общем случае неизвестно, каков будет результат возведения числа в нулевую степень в программе на ФОРТРАНе.
Конечно, нельзя утверждать, что все вычисления произведены наиболее эффективным образом. В действительности все эти операции можно было бы проделать гораздо быстрее, хотя при этом пришлось бы использовать больший объем памяти. В данном случае мы сочли такое усложнение неоправданным, так как основной интерес представляет не скорость работы программы, а сам способ наименьших квадратов.
Третья страница программы содержит операторы, с помощью которых решаются нормальные уравнения. Решение производится по методу исключения, и на третьей странице помещены операторы, производящие поиск наибольшего коэффициента и перестановку уравнений. Программа довольно точно соответствует блок-схеме, изображенной на фиг. 8.8, с одним исключением. Последний оператор, присваивающий I значение К + 1, не присутствует в явном виде, так как значение, равное К+1, присваивается переменной I в начале следующей страницы с помощью оператора DO.
На последней странице программы приведены операторы, завершающие процесс исключения переменных и вычисляющие значения неизвестных путем обратной подстановки. Процесс исключения начинается с оператора 500 и кончается оператором 300. Нужно помнить, что оператор 300 заканчивает область действия двух операторов DO: оператора DO в начале третьей страницы (с индексом К) и оператора 500 (с индексом I).
Первый из этих операторов необходим для перебора всех уравнений с 1-го по (N - 1)-е; второй —для исключения К-го неизвестного из уравнений, начиная с (К + 1)-го и кончая N-ì.
Обратная подстановка начинается после оператора 300. Программа весьма точно соответствует блок-схеме рис. 8.6 с некоторыми очевидными изменениями, которые позволяют сделать ее более компактной.
Для проверки программы воспользуемся следующим приемом: зададим в качестве исходной информации несколько точек параболы с известными коэффициентами и посмотрим, получатся ли в результате вычислений те же коэффициенты. Возьмем в качестве исходного уравнения
y = 2+ 4х + x^2
и вычислим координаты нескольких точек на этой кривой
X Y
1 7
2 14
3 23
4 34
5 47
Примем в программе М = 2, и поскольку задано пять пар значений x и y, то в результате вычислений мы должны получить v1 = 2, v2= 4 и v3 = 1. Вычисленные значения довольно точно совпадают с исходными
v1 = 1.9999947
v2 = 4.0000044
v3 = 0.9999993
Интересно, что получится, если попытаться провести через эти же точки кубическую параболу; первые три, коэффициента должны остаться неизменными, а четвертый должен равняться нулю. В действительности получается
v1 = 2.0001345
v2 = 3.9998111
v3 = 1.0000721
v4 = - 0.0000080
Вариация результатов оказалась немного больше того, что можно было ожидать. Попробуем сделать вычисления для многочлена четвертой степени
v1 = 1.9959750
v2 = 4.0075371
v3 = 0.9954456
v4 = 0.0010951
v5 = - 0.0000907
Этот результат не внушает уже никакого доверия. Ведь задача состоит в том, чтобы провести многочлен четвертого порядка через пять точек, а теоретически пять точек точно определяют его коэффициенты.
Попытаемся теперь провести многочлен пятого порядка через эти же точки. Здесь мы вообще не должны были бы получить никакого решения, так как для точного определения многочлена пятого порядка нужны шесть точек. Через пять точек можно провести бесконечно много многочленов пятого порядка; следует ожидать, что если мы попытаемся произвести такого рода вычисления с помощью нашей программы, то получится система нормальных уравнений с бесконечным множеством решений.
При решении такой системы уравнений методом исключения должна появиться строка из одних нулей, а при обратной подстановке попытка деления на нуль должна остановить работу ЭЦВМ. (В упражнении 36 эта ситуация демонстрируется для случая, когда квадратичная парабола проводится через две произвольные точки.) Все же попробуем сделать вычисления для многочлена пятой степени
v1 = 2.0754113
v2 = 3.8280203
v3 = 1.1410277
v4 = - 0.0532048
v5 = 0.0093776
v6 = - 0.0006245
В данном случае ошибки округления привели к тому , что все вычисления были произведены, хотя теоретически должно было бы получиться переполнение разрядной ceтки ЭЦВМ (при делении на нуль) и остановка вычислений ! Возникают серьезные сомнения в том, что такой способ нахождения коэффициентов многочлена способен давать точные результаты. Чтобы убедиться, насколько ошибочным может быть результат, рассмотрим еще один пример. Возьмем уравнение
y = 40 + 10x + 5x^2 + 3x^3 + 2x^4 + x^5 + x^6
и вычислим значения y для x = 1, 2, 3, ...,50. После этого попробуем для этих 50 пар значений найти уравнение многочлена 6-го порядка с помощью нашей программы. Первый коэффициент был напечатан в виде 1018375. 289062; в действительности он мог бы оказаться еще больше ( так как некоторые цифры с левой стороны могли оказаться отброшенными (вспомним, что спецификация поля в операторе FORMAT была написана в виде F15.7). Совершенно ясно, что этот, да и все другие коэффициенты вычисленные машиной, не имеют никакого смысла.
Что-то в нашей программе совершенно разладилось. Может быть, неприятности связаны с суммированием? Или с решением системы нормальных уравнений? Или порочен сам метод наименьших квадратов? Попытаемся произвести некоторые контрольные вычисления, чтобы определить источник Затруднений.
Возьмем то же самое уравнение, но вычислим у дли значений x = 1.0, 1.1, 1.2, ..., 5.0. Так же, как и в предыдущем случае, будем находить для этих 50 пар значений коэффициенты многочлена 6-го порядка. На этот раз получаем следующие результаты:
v1 = 41.3747716
v2 = 1.4650151
v3 = 19.4771159
v4 = - 7.3396831
v5 = 5.5579804
v6 = 0.4154199
v7 = 1.0368103
Эти значения явно не внушают большого доверия, но по крайней мере порядки величин правильные. По-видимому, одной из причин затруднений в предыдущем примере были сильно отличающиеся друг от друга порядки чисел, стоящих в качестве коэффициентов в нормальных уравнениях. В самом деле, значение a11 равно 50, а значение a77 порядка 10^21. При столь различных числах неизбежны трудности того же рода, как возникавшие в свое время при вычислении синуса из ряда Тейлора .
Ошибки возникают как при подсчете сумм, так и при решении системы уравнений методом исключения. Например, при возведении 49 в двенадцатую степень некоторые цифры в правой части числа неизбежно теряются, причем безвозвратно; они не восстанавливаются при исключении неизвестных, в результате которого из этих больших значений должны были бы появиться меньшие числа. Впрочем, даже если бы сумму и удалось вычислить точно, все равно ошибки округления при решении системы методом исключения не позволили бы получить точный результат.
Можно убедиться в том, что все неприятности происходят только от ошибок округления, производя вычисления с удвоенной точностью. При этом каждое число занимает две ячейки памяти и имеет примерно 16 десятичных значащих цифр. Произведя вычисление для исходного набора значений x = 1, 2, 3, ... ,50, получаем следующий результат:
v1 = 39.9945393
v2 = 10.0036631
v3 = 4.9993401
v4 = 3.0000494
v5 = 1.9999982
v6 = 1.0000000
v7 = 1.0000000
Эти коэффициенты уже достаточно близки к исходным. Обратите внимание, насколько сильно искажают результат ошибки округления и какие крайние меры приходится принимать для обеспечения хотя бы невысокой точности: ведь в данном случае довольно простая теория предсказывает некоторые вполне точные значения, а вместе с тем для получения четырех достоверных цифр в ответе приходится производить вычисления с 16 значащими цифрами.
Читателям, желающим познакомиться более основательно с причинами неприятностей, можно порекомендовать превосходную книгу Ардена^).
Радикальным решением проблемы является использование ортогональных полиномов. Например, в упражнении 3 гл. 3 было показано, что полиномы Чебышева ортогональны на интервале -1 <= х <= 1 с некоторой весовой функцией. Если использовать Tn(x) для построения системы нормальных уравнений, то недиагональные коэффициенты будут, вообще говоря, малы по сравнению с диагональными. Это обстоятельство позволяет получить более точные решения, иногда даже с помощью итерационного метода Гаусса — Зейделя.
В идеальном случае, конечно, недиагональные коэффициенты должны были бы вообще обратиться в нуль, и тогда решение стало бы тривиальным. Интересующиеся читатели могут найти некоторые сведения по этому вопросу в статье Форсайта^).
Примеры были подобраны с таким расчетом, чтобы обратить внимание читателей на печальные последствия, которыми грозит легкомысленное отношение к ошибкам округления. Однако мы не желали бы создать впечатление, что метод наименьших квадратов невозможно использовать из-за этих
трудностей. Поэтому в заключение главы приведем простой пример практического использования этого метода.
В книге Уортинга и Геффнера приведена таблица экспериментальных данных по зависимости теплоемкости воды от температуры, причем теплоемкость при 15°С принята за единицу.
T, °C |
Cp |
T, °Ñ |
Cp |
0 |
1.00762 |
55 |
0.99919 |
5 |
1.00392 |
60 |
0.99967 |
10 |
1.00153 |
65 |
1.00024 |
15 |
1.00000 |
70 |
1.00091 |
20 |
0.99907 |
75 |
1.00167 |
25 |
0.99852 |
80 |
1.00253 |
30 |
0.99826 |
85 |
1.00351 |
35 |
0.99818 |
90 |
1.00461 |
40 |
0.99828 |
95 |
1.00586 |
45 |
0.99849 |
100 |
1.00721 |
50 |
0.99878 |
|
|
Построив точки на графике, видим, что они довольно близки к квадратичной параболе и что, по-видимому,
Рис. 8.16. Экспериментальные значения теплоемкости воды (кружки) и многочлен третьего порядка, проведенный по методу наименьших квадратов (практический пример 10).
кубическая парабола будет вполне хорошим приближением. Использовав нашу программу для нахождения коэффициентов этой кубической параболы, получим
Cp = 1.006447 - 0.0004987884T + 0.000008459123T^2 - 0.0000000345331T^3
Ошибки округления в данном случае не доставляют никаких неприятностей. В этом можно убедиться, : делав вычисления с удвоенной точностью: коэффициенты изменяются очень ненамного, а сумма квадратов отклонений остается той же, что и при вычислениях с обычной точностью.
На рис. 8.16 изображены экспериментальные точки: кривая, вычисленная по методу наименьших квадратов . Мы видим, что отклонения положительного и отрицательного знака более или менее уравновешены, как и следовало ожидать. Сравнение вычисленной кривой с экспериментальными значениями показывает, что наибольшее отклонение имеет место при 0° С и равно 0.0012, все остальные отклонения существенно меньше.
Если ошибки такого порядка допустимы, то можно пользовать эту кубическую формулу при расчетах, требуется зависимость теплоемкости воды от температуры.
