Автор работы: Пользователь скрыл имя, 28 Мая 2012 в 18:55, лабораторная работа
Цель: Изучение численных методов решения нелинейных уравнений.
Задачи: Освоить метод половинного деления, метод касательных и модифицированный метод Ньютона для решения нелинейного уравнения, научиться численно определить действенный корень нелинейного уравнения, составить алгоритм и соответствующую программу, развить практические навыки решения задач на ЭВМ.
Введение 3
Краткое описание метода половинного деления 4
Задача 5
Текст программы 6
Результаты вычислений 7
Заключение 8
Список использованных источников 9
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Институт/
Факультет – ЭНИН__________________________
Направление – Теплоэнергетика и теплотехника__________________
Кафедра – Автоматизация теплоэнергетических процессов______
Решение нелинейных уравнений методом половинного деления
Отчет по лабораторной работе № 5
по курсу «Информационные технологии»
Выполнил студент гр. _____
Подпись Дата Фамилия И.О.
Проверил ______ _______
должность Подпись Дата Фамилия И.О.
Томск – 2011
Содержание
Введение 3
Краткое описание метода половинного деления 4
Задача 5
Текст программы 6
Результаты вычислений 7
Заключение 8
Список использованных источников 9
Введение
Цель: Изучение численных методов решения нелинейных уравнений.
Задачи: Освоить метод половинного деления, метод касательных и модифицированный метод Ньютона для решения нелинейного уравнения, научиться численно определить действенный корень нелинейного уравнения, составить алгоритм и соответствующую программу, развить практические навыки решения задач на ЭВМ.
Краткое описание метода половинного деления
Пусть дано уравнение ƒ(x) = 0, где ƒ(x) - непрерывная функция, корень Р отделен на отрезке [a,b], т. е. ƒ(a) ⋅ ƒ(b) > 0, причем |b - a| < E. Требуется найти значение корня Р с точностью до Е (см. рис. 4.2).
Если корень Р не отделен на заданном отрезке, т. е. ƒ(a) и ƒ(b) одного знака и, следовательно, ƒ(a) ⋅ ƒ(b) > 0, то вычисляются значения функции в точках, расположенных через равные интервалы на оси Х. Когда ƒ(an) и ƒ(bn) имеют противоположные знаки, то значения a = an
и b=bn принимаются в качестве начальных и находят середину отрезка [a,b], т. е. с=(a+b)/2. Тогда отрезок [a,b] точкой с разделится на два равных отрезка [a,c] и [c,b], длина которых равна (b-a)/2. Из двух этих образовавшихся отрезков выбирается тот, на концах которого функция ƒ(x) принимает значения противоположных знаков; обозначим его [a1,b1]. Затем отрезок [a1,b1] делим пополам и проводим те же действия. Получим отрезок [a2,b2], длина которого равна (b-a)/22. Процесс деле-ния отрезка пополам производится до тех пор, когда на каком-то k-м этапе будет получен отрезок [ak,bk], такой, что
bk - ak = (b - a)/2k ≤ E и ak ≤ P ≤ bk ,
где число k указывает на количество проведенных делений. Числа ak и bk -корни уравнения ƒ(x) = 0 с точностью до E. За приближенное значение корня следует взять Р=(ak+bk)/2, причем погрешность не превысит (b-a)/2k+1., что в качестве условия прекращения счета более целе-
сообразно пользоваться условием E ≥ ⎜bk - ak⎢.
Блок-схема алгоритма представлена на рис. 4.3.
Рассмотренный метод имеет относительно малую скорость сходимости, но отличается от других методов простотой реализации алгоритма, не требующего вычисления производных заданной функции.
Задача
При решении задач нестационарной теплопроводности в плоской неограниченной пластине необходимо определять корни μ характеристического уравнения
ctg μ = μ / Bi,
где Bi = α⋅l/λ - критерий Био, α - коэффициент конвективного теплообмена, Вт/м2⋅К; l - линейный размер (полутолщина пластины), м; λ - коэффициент теплопроводности материала пластины, Вт/м⋅К.
Вычислить с точностью ε два первых корня μ1 и μ2 характеристического уравнения ( 0 < μ1 < π , π < μ2 < 2π ) .
Исходные данные: α=60.0, l=0.5, λ=10.0, ε=10-4 .
Текст программы
program variant2;
var u,e,a,b,h,c,bi:real;
function f(u:real):real;
begin
f:=cos(u)/sin(u)-u/bi;;
end;
begin
e:=0.0001;
bi:=3;
write('a='); readln(a);
write('b='); readln(b);
repeat
c:=(a+b)/2;
if f(a)*f(c)<0 then a:=c
else b:=c;
until abs(b-a)<=e;
u:=(a+b)/2;
writeln('u=',u,' ','f(u)=',f(u));
end.
Результаты вычислений
Для 0 < μ1 < π
u=1.19249664306641
f(u)=-5.63920416359331E-05
Для , π < μ2 < 2π
u=3.80875381469727
f(u)=2.47530530348428E-05
Рисунок 1
Заключение
Я научился создавать программы в паскале для решения нелинейных уравнений методом половинного деления.
Список использованных источников
Информация о работе Решение нелинейных уравнений методом половинного деления