Решение нелинейных уравнений
Основные положения теории нелинейных уравнений, метод половинного деления. Особенности нахождения корней нелинейного уравнения с заданной точностью в операционной среде MathCAD, средствами Microsoft Excel, с использованием языка программирования Pascal.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 13.10.2017 |
Размер файла | 166,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Решение нелинейных уравнений
Введение
уравнение нелинейный mathcad excel
Наука не стоит на месте и все время развивается. Нередко приходится встречаться с математическими задачами, для решения которых нужно пользоваться громоздкими формулами. Это неудобно. Возникла необходимость в развитии численных методов математического анализа, которые в сегодняшнем дне имеют важнейшее значение. В большинстве случаев численные методы являются приближенными. В ряде случаев численный метод строится на базе бесконечного процесса, который в пределе сводится к искомому решению. Однако реально предельный переход не удается осуществить, и процесс, прерванный на некотором шаге, дает приближенное решение. Одним из таких методов является метод бисекции или метод деления отрезка пополам (Метод половинного деления).
Цель и задачи
Цель - раскрыть содержание темы «Метод половинного деления». Закрепить ее путем выполнения контрольной работы. Создать программный продукт, который находит отрезок и искомый корень уравнения в этом отрезке при помощи шагового метода. Уточнить корень методом половинного деления.
Задачи:
1. Изучить метод половинного деления и шаговый метод для решения нелинейных уравнений.
2. Научиться решать нелинейные уравнения в Pascal, Microsoft Excel, MathCAD.
3. Решить данное уравнение и найти корни и построить графики.
4. Проанализировать результаты.
5. Сделать выводы.
1.Нелинейные уравнения и метод половинного деления
f(x) = 0, (1) где функция 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]
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), затем нажать знак равенства.
Microsoft Excel. Шаговый метод
x |
f(x) |
||
0 |
1 |
||
0,5 |
-0,58579 |
||
1 |
-2 |
||
1,5 |
-3,17157 |
||
2 |
-4 |
||
2,5 |
-4,34315 |
||
3 |
-4 |
||
3,5 |
-2,68629 |
||
4 |
0 |
||
4,5 |
4,627417 |
||
5 |
12 |
||
Подбор параметра |
|||
x |
f(x) |
||
0,309909 |
-5E-06 |
||
4 |
0 |
||
Поиск решения |
|||
0,309907 |
-3,7E-07 |
||
4 |
0 |
||
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).
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
Pascal. Метод половинного деления
Блок-схема
Программа
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
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
...Подобные документы
Разработка с использованием приложения Mathcad алгоритма и программы решения нелинейного уравнения методами касательных, половинного деления и хорд. Решение с помощью ее заданных нелинейных уравнений. Создание графической иллюстрации полученных решений.
курсовая работа [665,7 K], добавлен 22.08.2013Сравнительный анализ итерационных методов решения нелинейных алгебраических и трансцендентных уравнений. Простейший алгоритм отделения корней нелинейных уравнений. Метод половинного деления. Геометрический смысл метода Ньютона. Метод простой итерации.
реферат [95,0 K], добавлен 06.03.2011Особенности решения уравнений с одной переменной методом половинного деления. Оценка погрешности метода простой итерации. Суть решения уравнений в пакете Mathcad. Векторная запись нелинейных систем. Метод Ньютона решения систем нелинейных уравнений.
курсовая работа [2,1 M], добавлен 12.12.2013Графический и аналитический методы отделения корней при решении уравнения. Уточнение отдельных корней уравнения: метод половинного деления, последовательных приближений, метод Ньютона. Расчет в программах Excel, MathCAD, на языке программирования Pascal.
курсовая работа [3,2 M], добавлен 29.05.2010Суть метода Рунге-Кутта и его свойства. Решение дифференциальных уравнений первого порядка. Вычислительный блок Given/Odesolve. Встроенные функции rkfixed, Rkadapt, Bulstoer. Решения линейных алгебраических уравнений в среде MathCad и Microsoft Excel.
курсовая работа [1,1 M], добавлен 02.06.2014Разработка проекта по вычислению корней нелинейных уравнений методом итераций, в среде программирования Delphi. Интерфейс программы и ее программный код, визуализация метода. Сравнение результатов решения, полученных в Mathcad 14 и методом итераций.
контрольная работа [1,9 M], добавлен 10.12.2010Исследование количества, характера и расположения корней. Определение их приближенных значений итерационными методами: половинного деления (дихотомии) и хорд. Тексты программ. Решение уравнений на языках программирования Borland Delfi и Turbo Pascal.
курсовая работа [500,3 K], добавлен 15.06.2013Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.
курсовая работа [1,4 M], добавлен 15.08.2012Решение нелинейного уравнения шаговым методом, методом половинного деления, методом Ньютона и простой итерации с помощью программы Mathcad. Разбиение промежутка на число n интервалов. Условия сходимости корня. Составление программы для решения на С++.
лабораторная работа [207,5 K], добавлен 10.05.2012Разработка программы для нахождения корней нелинейных уравнений несколькими методами: методом хорд, касательных, половинного деления, итераций. Реализации программы с помощью системы программирования Delphi 7. Методика работы пользователя с программой.
курсовая работа [1,3 M], добавлен 11.02.2013Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.
курсовая работа [539,2 K], добавлен 15.06.2013Расчет трансформатора питания. Численное решение нелинейных уравнений с заданной точностью и дифференциальных уравнений первого порядка. Разработка программы с использованием средств визуального программирования на алгоритмическом языке программирования.
курсовая работа [1,2 M], добавлен 17.08.2013Характеристика влияния компьютера на здоровье человека. Определение корней уравнения в Microsoft Excel с точностью до шестого знака после запятой. Решение системы линейных уравнений методом вычисления определителей и матричным способом в Microsoft Excel.
контрольная работа [734,0 K], добавлен 19.03.2012Изучение методов решения нелинейных уравнений таких как: метод Ньютона, модифицированный метод Ньютона, метод Хорд, метод простых Итераций. Реализация программы для персонального компьютера, которая находит решение нелинейного уравнения разными способами.
практическая работа [321,9 K], добавлен 24.06.2012Решение в среде Microsoft Excel с помощью программной модели "Поиск решения" транспортной задачи, системы нелинейных уравнений, задачи о назначениях. Составление уравнения регрессии по заданным значениям. Математические и алгоритмические модели.
лабораторная работа [866,6 K], добавлен 23.07.2012Математический алгоритм вычисления корней нелинейного уравнения и его решение методом касательных. Особенности программной реализации решения таких уравнений. Процедура подготовки и решения задачи на ЭВМ, характеристика алгоритма и структуры программы.
курсовая работа [96,6 K], добавлен 02.06.2012Метод половинного деления как один из методов решения нелинейных уравнений, его основа на последовательном сужении интервала, содержащего единственный корень уравнения. Алгоритм решения задачи. Описание программы, структура входных и выходных данных.
лабораторная работа [454,1 K], добавлен 09.11.2012Этапы численного решения нелинейных уравнений заданного вида: отделение (изоляция, локализация) корней уравнения аналитическим или графическим способами, уточнение конкретного выделенного корня методом касательных (Ньютона). Решение в системе MathCad.
курсовая работа [271,6 K], добавлен 22.08.2012Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.
курсовая работа [435,8 K], добавлен 15.06.2013Отделение действительных корней нелинейного уравнения. Метод хорд и касательных (Ньютона), геометрическая интерпретация. Графическая схема алгоритма. Описание реализации базовой модели в MathCAD. График сравнения числа итераций в зависимости от точности.
курсовая работа [2,0 M], добавлен 16.05.2013