Метод половинного деления
Сущность метода половинного деления и шагового метода для решения нелинейных уравнений. Примеры решения нелинейных уравнений и определение их корня в программах в Pascal, Microsoft Excel, MathCAD. Анализ результатов и построение соответствующих графиков.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 08.06.2014 |
Размер файла | 287,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Введение
1. Теория нелинейных уравнений и метод половинного деления
2. Нахождения корней нелинейного уравнения с заданной точностью
2.1 MathCAD
2.2 Microsoft Excel
2.3 Pascal
Выводы
Список литературы
Введение
Наука не стоит на месте и все время развивается. Нередко приходится встречаться с математическими задачами, для решения которых нужно пользоваться громоздкими формулами. Это неудобно. Возникла необходимость в развитии численных методов математического анализа, которые в сегодняшнем дне имеют важнейшее значение. В большинстве случаев численные методы являются приближенными. В ряде случаев численный метод строится на базе бесконечного процесса, который в пределе сводится к искомому решению. Однако реально предельный переход не удается осуществить, и процесс, прерванный на некотором шаге, дает приближенное решение. Одним из таких методов является метод бисекции или метод деления отрезка пополам (Метод половинного деления).
Цель - раскрыть содержание темы «Метод половинного деления». Закрепить ее путем выполнения курсовой работы. Создать программный продукт, который находит отрезок и искомый корень уравнения в этом отрезке при помощи шагового метода. Уточнить корень методом половинного деления.
Задачи:
1. Изучить метод половинного деления и шаговый метод для решения нелинейных уравнений.
2. Научиться решать нелинейные уравнения в Pascal, Microsoft Excel, MathCAD.
3. Решить данное уравнение и найти корни и построить графики.
4. Проанализировать результаты.
5. Сделать выводы.
1. Теория нелинейных уравнений и метод половинного деления
f(x) = 0
где функция f(x) определена и непрерывна на некотором конечном или бесконечном интервале x . В частности, в форме нелинейных уравнений представляются математические модели анализа статических свойств объектов проектирования или их элементов. Если функция f(x) представляет собой многочлен n-й степени видаa0 + a1 x + a2 x2 + ... + anxn, то уравнение (1) называется алгебраическим. Когда x находится под знаком трансцендентной функции (показательной, логарифмической, тригонометрической и т.п.), уравнение называется трансцендентным. Значение аргумента x, при котором функция f(x) обращается в нуль, т.е. f(x*) = 0, называется корнем уравнения.
В общем случае для функции f(x) не существует аналитических формул для нахождения корней. Более того, их точное вычисление не всегда является необходимым. Это объясняется тем, что встречающиеся в инженерной практике уравнения часто содержат коэффициенты, величины которых имеют приближенные значения. В таких случаях решается задача определения корней с некоторой заранее заданной степенью точности.
В дальнейшем предполагаем, что уравнение (1) имеет только изолированные корни, т.е. для каждого из них существует некоторая окрестность, не содержащая других корней этого уравнения. Процесс нахождения изолированных действительных корней нелинейного уравнения включает два этапа:
1) отделение корней, т.е. нахождение интервалов [a, b], внутри которых содержится один и только один корень уравнения;
2) уточнение приближенных значений отдельных корней до заданной степени точности.
Этап отделения корней может быть выполнен различными способами. Во-первых, приближенное значение корня иногда бывает известно из физического смысла задачи. Во-вторых, для отделения корней может использоваться графический способ, основанный на построении графика функции
y = f(x)
нелинейный уравнение половинный деление
где приближенные значения действительных корней уравнения f(x) = 0 соответствуют абсциссам точек пересечения или касания графика с осью 0x (y = 0). Наиболее часто применяется метод отделения корней, основанный на следующем положении: если на концах некоторого интервала [a, b] значения непрерывной функции f(x) имеют разные знаки, т.е. f(a)f(b) , то на этом интервале уравнение (1) имеет хотя бы один корень. При этом корень является единственным, если производная функции f'(x) существует и сохраняет постоянный знак внутри интервала [a, b].Рассмотрим простейший алгоритм отделения корней нелинейных уравнений, ориентированный на использование ЭВМ. Исходный интервал [, ], на котором определена и непрерывна функция f(x), разбивается на n отрезков равной длины
(x0, x1), (x1, x2), ..., (xn -1, xn),где x0 x1 ...xn и x0 = , xn =
Затем вычисляются значения функции f(xj) в точках xj (j =) и выбирается отрезок (xi, xi+1), на концах которого функция имеет разные знаки, т.е. f(xi)f(xi+1) 0. Если длина этого отрезка достаточно мала (можно предположить единственность корня), то считается, что корень отделен на интервале [a, b], где a = xi, b = xi+1. В противном случае границы исходного интервала сдвигаются, т.е. = xi, = xi + 1, и процедура повторяется.
Необходимо отметить, что длина исходного интервала [], на котором определена функция f(x), может изменяться в широких пределах. Поэтому число отрезков n, а также длина искомого интервала [a, b] являются переменными величинами, которые должны задаваться в каждом конкретном случае с учетом физического смысла решаемой задачи.
На втором этапе решения нелинейных уравнений полученные приближенные значения корней уточняются различными итерационными методами до некоторой заданной погрешности.
Метод половинного деления. Для этого метода существенно, чтобы функция f(x) была непрерывна и ограничена в заданном интервале [a, b], внутри которого находится корень. Предполагается также, что значения функции на концах интервала f(a) и f(b) имеют разные знаки, т.е. выполняется условие f(a)f(b) .
Обозначим исходный интервал [a, b] как [a0, b0]. Для нахождения корня уравнения f(x) = 0 отрезок [a0, b0] делится пополам, т.е. вычисляется начальное приближение x0 = (a0 + b0)/2. Если f(x0) = 0, то значение x0 = x* является корнем уравнения. В противном случае выбирается один из отрезков [a0, x0] или [x0, b0], на концах которого функция f(x) имеет разные знаки, так как корень лежит в этой половине. Далее выбранный отрезок обозначается как [a1, b1], вновь делится пополам точкой x1 = (a1 + b1)/2 и т.д. В результате на некоторой итерации получается точный корень x* уравнения f(x) = 0, либо бесконечная последовательность вложенных отрезков [a0, b0], [a1, b1], ..., [ai, bi], ..., таких, что f(ai)f(bi) (i =1, 2, ...), сходящихся к корню x*.
Если требуется определить корень x* с погрешностью , то деление исходного интервала [a, b] продолжают до тех пор, пока длина отрезка [ai, bi] не станет меньше 2, что записывается в форме условия bi - ai 2.
В этом случае середина последнего интервала [ai, bi] с требуемой степенью точности дает приближенное значение корня
x* (ai + bi) / 2.
Метод половинного деления легко реализуется на ЭВМ и является наиболее универсальным среди итерационных методов уточнения корней. Его применение гарантирует получение решения для любой непрерывной функции f(x), если найден интервал, на котором она изменяет знак. В том случае, когда корни не отделены, будет найден один из корней уравнения. Метод всегда сходится, но скорость сходимости является небольшой, так как за одну итерацию точность увеличивается примерно в два раза. Поэтому на практике метод половинного деления обычно применяется для грубого нахождения корней уравнения, поскольку при повышении требуемой точности значительно возрастает объем вычислений.
2. Нахождение корней нелинейного уравнения
[0; 5]
2.1 MathCAD. Шаговый метод
MathCAD. Метод половинного деления
Алгоритм
1. Ввести в позиции ввода рабочего аргумента выражение, описывающее функцию
f(x):f(x):=
2. Вести граничные значения отрезка изоляции: a:=0 и b:=5
3. Ввести значение данной погрешности: e:=0,001.
4. Выбрать на панели инструментов кнопку "инструменты программирования".
5. Ввести в позиции поля ввода имя новой функции и знак присвоить значение: pol(f,a,b,e):=
6. На панели «Программирование» выбрать «AddLine» - добавить строку программы.
7. В первый темный прямоугольник добавить запись «while», находящуюся на панели«Программирование»:
8. Условие циклы в темном прямоугольнике, стоящем после while: |b-a|>e.
9. В следующем темном прямоугольнике, расположенным под while, задать тело цикла: добавить строку программы, в первом темном прямоугольнике ввести:
Для ввода использовать кнопку "Локальное присвоение" на панели "Программирование":
10. В следующем темном прямоугольнике, прежде чем вводить выражение, добавить строку программы, а затем в нем же ввести выражение:
(функцию if выбрать на панели «Программирование» перед тем как вводить выражение).
11. Затем строкой ниже ввести:
(данную функцию выбрать на панели «Программирование» перед тем как вводить выражение).
12. В самом нижнем темном прямоугольнике ввести переменную вывода: c.
13. В поле ввода, под программой, набрать pol(f,a,b,e), затем нажать знак равенства.
2.3 Microsoft Excel. Шаговый метод
Microsoft Excel. Метод половинного деления
Алгоритм
1. Заполнить ячейки A1:H1 последовательно следующим образом: a, b, c=(a+b)/2, f(a), f(b), f(c), |b-a|<=e.
2. Ввести в ячейку A2 число 0, в ячейку B2 - число 0.5.
3. В ячейку C2 ввести формулу: =(A2+B2)/2.
4. В ячейку D2 ввести формулу: =2^A2-4*A2, скопировать эту формулу в ячейки E2:F2.
5. Ввести в ячейку G2 формулу: =ЕСЛИ(ABS(B2-A2)<=2*$H$2;C2; "-").
6. Ввести в ячейку H2 число 0,001.
7. В ячейку A3 ввести формулу: =ЕСЛИ(D2*F2<0;A2;C2).
8. В ячейку B3 ввести формулу: =ЕСЛИ(D2*F2<0;C2;B2).
9. Диапазон ячеек C2:G2 скопировать в диапазон ячеек C3:G3.
10. Выделить диапазон ячеек A3:G3 и с помощью маркера заполнения заполнить все нижестоящие ячейки до получения результата в одной из ячеек столбца G (это ячейки A3:G53).
2.3 Pascal. Шаговый метод
Блок-схема
Программа
Program ex_1;
Uses crt;
Var c,d,h,a,b:real ; k:integer ;
Function F(x:real ):real ;
Begin
F:= exp(x*ln(2))-4*x
End ;
Begin
Writeln ('vvedite c,d,h');
Readln (c,d,h);
k:= 0 ;
a:=c;
Repeat
b:=a+h;
If F(a)*F(b)<= 0 then
begin
k:=k+1 ;
Writeln ('k=',k,' a=',a:5 :2 ,' b=',b:5 :2 );
end ;
a:=b;
until b>d;
end.
Ответ: k=1 a=0 b=0.5
k=2 a=3.5 b=4
k=3 a=4 b=4.5
Блок-схема. Метод половинного деления
Программа
program mdp;
function f(x: real): real;
begin
f:=exp(x*ln(2))-4*x;
end;
var
a, b, e, c, x: real;
begin
write('a=');
read(a);
write('b=');
read(b);
write ('e=');
read(e);
c:=(a+b)/2;
while(b-a)>e do
begin
if(a)*f(c)<0 then
b:=c
else
a:=c;
writeln('a=', a:3:4, 'b=', b:3:4, 'f(a)=', f(a):6:9, 'f(b)=',f(b):6:9);
c:=(a+b)/2;
18
end;
x:=(a+b)/2;
writeln ('x=',x:3:3,' f(x)=',f(x):4:4);
readln;
end.
Ответ:
a=0
b=0.5
e=0.001
a=0.2500b=0.5000f(a)=0.189207115f(b)=-0.585786438
a=0.2500b=0.3750f(a)=0.189207115f(b)=-0.203160445
a=0.2500b=0.3125f(a)=0.189207115f(b)=-0.008142188
a=0.2813b=0.3125f(a)=0.090247360f(b)=-0.008142188
a=0.2969b=0.3125f(a)=0.040980536f(b)=-0.008142188
a=0.3047b=0.3125f(a)=0.016401064f(b)=-0.008142188
a=0.3086b=0.3125f(a)=0.004124898f(b)=-0.008142188
a=0.3086b=0.3105f(a)=0.004124898f(b)=-0.002009781
a=0.3096b=0.3105f(a)=0.001057274f(b)=-0.002009781
x=0.310 f(x)=-0.0005
19
a=3.5
b=4
e=0.001
a=3.9000b=3.9500f(a)=-0.671472135f(b)=-0.345018737
a=3.9000b=3.9250f(a)=-0.671472135f(b)=-0.510526065
a=3.9000b=3.9125f(a)=-0.671472135f(b)=-0.591564328
a=3.9000b=3.9063f(a)=-0.671472135f(b)=-0.631658927
a=3.9000b=3.9031f(a)=-0.671472135f(b)=-0.651600629
a=3.9000b=3.9016f(a)=-0.671472135f(b)=-0.661545147
a=3.9000b=3.9008f(a)=-0.671472135f(b)=-0.666510831
x=3.900 f(x)=-0.6690
Выводы
Мы нашли корни уравнения в Microsoft Excel, MathCAD, Pascal 2 методами: шаговым и половинного деления с точностью до 0,001. Из схем и таблиц можно увидеть, что получилось 2 корня. Наиболее точные корни получились в средах Excel и Pascal, хотя наиболее удобной в использовании была среда MathCAD, так как в нее уже заложены специальные формулы, позволяющие найти более точное значение уже со второго приближения. Уточнение корня напрямую зависит от точности его нахождения e, чем меньше e, тем точнее будет корень. Среда Excel выводила результат в ячейках. Выводить его самостоятельно было бы затруднительно.
При нахождении корней были получены следующие результаты:
MathCAD:
X=0.31 на интервале [0; 0.5]
X=3.999 на интервале [3.5; 4]
Microsoft Excel
X=0.309 на интервале [0; 0.5]
X=3.999 на интервале [3.5; 4]
Pascal
X=0.310 на интервале [0; 0.5]
X=3.900 на интервале [3.5; 4]
Список литературы
1. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы - М.: Лаборатория Базовых Знаний, 2002.
2. Численные методы. Автор: Лапчик М.П., Рагулина М.И., Хеннер Е.К.; под ред. Лапчика М.П.
Размещено на Allbest.ru
Подобные документы
Изучение методов уточнения корней нелинейных уравнений (половинного деления, хорд, касательных, простой итерации). Метод хорд и касательных дает высокую скорость сходимости при решении уравнений, и небольшую - метод половинного деления и простой итерации.
контрольная работа [58,6 K], добавлен 20.11.2010Изучение способов решения нелинейных уравнений: метод деления отрезка пополам, комбинированный метод хорд и касательных. Примеры решения систем линейных алгебраических уравнений. Особенности математической обработки результатов опыта, полином Лагранжа.
курсовая работа [181,1 K], добавлен 13.04.2010Трансцендентное уравнение: понятие и характеристика. Метод половинного деления (дихотомии), его сущность. Применение метода простой итерации для решения уравнения. Геометрический смысл метода Ньютона. Уравнение хорды и касательной, проходящей через точку.
курсовая работа [515,8 K], добавлен 28.06.2013Приближенные значения корней. Метод дихотомии (или деление отрезка пополам), простой итерации и Ньютона. Метод деления отрезка пополам для решения уравнения. Исследование сходимости метода Ньютона. Построение нескольких последовательных приближений.
лабораторная работа [151,3 K], добавлен 15.07.2009Разработка программного обеспечения для решения нелинейных систем алгебраических уравнений методом дифференцирования по параметру и исследование влияние метода интегрирования на точность получаемого решения. Построение графиков переходных процессов.
курсовая работа [619,3 K], добавлен 26.04.2011Особенности решения алгебраических, нелинейных, трансцендентных уравнений. Метод половинного деления (дихотомия). Метод касательных (Ньютона), метод секущих. Численные методы вычисления определённых интегралов. Решение различными методами прямоугольников.
курсовая работа [473,4 K], добавлен 15.02.2010Методы решения нелинейных уравнений: касательных и хорд, результаты их вычислений. Алгоритм и блок схема метода секущих. Исследование характерных примеров для практического сравнения эффективности рассмотренных методов разрешения нелинейных уравнений.
дипломная работа [793,2 K], добавлен 09.04.2015Сущность и графическое представление методов решения нелинейных уравнений вида F(x)=0. Особенности метода хорд, бисекции, простой итерации, касательных и секущих. Проверка результатов с помощью встроенных функций и оценка точности полученных значений.
контрольная работа [316,1 K], добавлен 09.11.2010Смысл метода Ньютона для решения нелинейных уравнений. Доказательства его модификаций: секущих, хорд, ложного положения, Стеффенсена, уточненного для случая кратного корня, для системы двух уравнений. Оценка качества метода по числу необходимых итераций.
реферат [99,0 K], добавлен 07.04.2015Исследование сущности и сфер применения метода итераций. Нелинейные уравнения. Разработка вычислительный алгоритм метода итераций. Геометрический смысл. Составление программы решения систем нелинейных уравнений методом итераций в среде Turbo Pascal.
реферат [183,7 K], добавлен 11.04.2014