Автор: Пользователь скрыл имя, 30 Октября 2012 в 16:21, курсовая работа
Разработанный программно-методический комплекс содержит математическое описание, алгоритм и программу расчёта методом хорд и касательных. Программа написана на языке Бейсик. Исходные данные вводятся с клавиатуры.
Общие сведения
Функциональное назначение
Используемые технические и программные средства
Входные и выходные данные
Программа на QBasic
Операторы QBasic
Список используемой литературы
Министерство образования и науки РФ
ФГБОУ ВПО
Информатика
КУРСОВАЯ РАБОТА
ПО ДИСЦИПЛИНЕ ИНФОРМАТИКА
РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ МЕТОДОМ КАСАТЕЛЬНЫХ И ХОРД НА QBASIC
Выполнил:
Проверил:
Тула 2012
АННОТАЦИЯ
Разработанный программно-
Постановка задачи
Для заданной функции Y = f(x) на интервале [a,b] (определить самостоятельно):
1) рассчитать
n значений функции с
2) отделить
корни уравнения f(x) = 0 аналитически,
т.е. определить количество
3) уточнить
корни уравнения f(x) = 0 методом
хорд и касательных с
Исходные данные:
СОДЕРЖАНИЕ
Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Функциональное назначение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Используемые
технические и программные
Входные и выходные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Программа на QBasic. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . .
Операторы QBasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Список используемой литературы. . . . . . . . . . . . . . . . . . . . . . .. . . .
Общие сведения.
Метод касательных.
Метод Ньютона, алгоритм Ньютона (также известный как метод касательных) — это итерационный численный метод нахождения корня (нуля) заданной функции. Метод был впервые предложен
английским физиком, математико
пространства.
Описание метода.
Чтобы численно решить уравнение методом простой итерации, его необходимо привести к следующей форме: , где — сжимающее отображение.
Для наилучшей сходимости метода в точке очередного приближения должно выполняться условие . Решение данного уравнения ищут в виде , тогда:
В предположении, что точка
приближения «достаточно
С учётом этого функция определяется выражением:
Эта функция в окрестности корня осуществляет сжимающее отображение[1], и алгоритм нахождения численного решения уравнения сводится к итерационной процедуре вычисления:
По теореме Банаха последовательность приближений стремится к корню уравнения .
Основная идея метода заключается в следующем: задаётся начальное приближение вблизи предположительного корня, после чего строится касательная к исследуемой функции в точке приближения, для которой находится пересечение с осью абсцисс. Эта точка и берётся в качестве следующего приближения. И так далее, пока не будет достигнута необходимая точность.
Пусть — определённая на отрезке и дифференцируемая на нём вещественнозначная функция. Тогда формула итеративного исчисления приближений может быть выведена следующим образом:
где — угол наклона касательной в точке .
Следовательно искомое выражение для имеет вид:
Итерационный процесс начинается с некоего начального приближения (чем ближе к нулю, тем лучше, но если предположения о нахождении решения отсутствуют, методом проб и ошибок можно сузить область возможных значений,применив теорему о промежуточных значениях).
Иллюстрация метода Ньютона (синим изображена функция , нуль которой необходимо найти, красным — касательная в точке очередного приближения ). Здесь мы можем увидеть, что последующее приближение лучше предыдущего .
Пример:
Рассмотрим задачу о нахождении положительных , для которых . Эта задача может быть представлена как задача нахождения нуля функции . Имеем выражение для производной . Так как для всех и для , очевидно, что решение лежит между 0 и 1. Возьмём в качестве начального приближения значение , тогда:
Иллюстрация применения метода Ньютона к функции | |
График последовательных
|
График сходимости. |
Согласно способу практического определения скорость сходимости может быть оценена как тангенс угла наклона графика сходимости, то есть в данном случае равна двум.
Подчёркиванием отмечены верные значащие цифры. Видно, что их количество от шага к шагу растёт (приблизительно удваиваясь с каждым шагом): от 1 к 2, от 2 к 5, от 5 к 10, иллюстрируя квадратичную скорость сходимости.
Метод хорд.
Пусть дано уравнение , где - непрерывная функция, имеющая в интервале (a,b) производные первого и второго порядков. Корень считается отделенным и находится на отрезке [a,b].
Идея метода хорд состоит в том, что на достаточно малом промежутке [a,b] дугу кривой можно заменить хордой и в качестве приближенного значения корня принять точку пересечения с осью абсцисс. Рассмотрим случай (рис.1), когда первая и вторая производные имеют одинаковые знаки, т.е. .
Уравнение хорды - это уравнение прямой, проходящей через две точки (a, f(a)) и (b, f(b)).
Общий вид уравнения прямой, проходящей через две точки:
Подставляя в эту формулу значения, получим уравнение хорды AB:
Пусть x1 - точка пересечения хорды с осью x, так как y = 0, то
x1 может считаться приближенным значением корня.
Аналогично для хорды, проходящей через точки и , вычисляется следующее приближение корня:
В общем случае формулу метода хорд имеет вид:
Если первая и вторая производные имеют разные знаки, т.е. , то все приближения к корню выполняются со стороны правой границы отрезка (рис.2) и вычисляются по формуле:
Выбор формулы в каждом конкретном случае зависит от вида функции и осуществляется по правилу: неподвижной является такая граница отрезка изоляции корня, для которой знак функции совпадает со знаком второй производной. Формула (1) используется в том случае, когда . Если справедливо неравенство , то целесообразно применять формулу (2).
Итерационный процесс метода хорд продолжается до тех пор, пока не будет получен приближенный корень с заданной степенью точности. При оценке погрешности приближения можно пользоваться соотношением
Если обозначить через m наименьшее значение |f'(x)| на промежутке [a, b], которое можно определить заранее, то получим формулу для оценки точности вычисления корня:
где - заданная погрешность вычислений.
Список идентификаторов.
a – начало отрезка,
b – конец отрезка,
eps – погрешность вычислений,
x – искомое значение корня,
min – модуль значения производной функции в начале отрезка,
d – модуль значения производной функции в конце отрезка,
x0 – точка, в которой мы ищем производную.
******************************
Program kursovaia;
uses crt;
Var
a,b,eps,x,min: real;
{Вычисление данной функции}
Function fx(x:real): real;
begin
fx:=exp(x)-10*x;
end;
------------------------------
{Функция вычисления
{Для определения точности
Function proizv(x0,eps: real): real;
var
dx,dy,dy2: real;
begin
dx:=1;
Repeat
dx:=dx/2;
dy:=fx(x0+dx/2)-fx(x0-dx/2);
dy2:=fx(5*x0/4+dx)-2*fx(5*x0/
dy2:=dy2+fx(5*x0/4-dx);
Until abs(dy2/(2*dx))<eps;
proizv:=dy/dx;
end;
------------------------------
{Уточнение количества знаков после запятой}
Function utoch(eps:real): integer;
var
k: integer;
begin
k:=-1;
Repeat
eps:=eps*10;
k:=k+1;
Until eps>1;
utoch:=k;
end;
------------------------------
{Процедура определения
заданном промежутке}
Procedure minimum(a,b,eps: real; var min: real);
var
d: real;
begin
a:=a-eps;
b:=b+eps;
Repeat
a:=a+eps;
b:=b-eps;
min:=abs(proizv(a,eps));
d:=abs(proizv(b,eps));
If min>d Then min:=d
Until min <>0
end;
------------------------------
{Процедура уточнения корня
Procedure chord(a,b,eps,min: real; var x:real);
Var
x1: real;
begin
x1:=a;
Repeat
x:=x1-((b-x1)*fx(x1))/(fx(b)-
x1:=x
Until abs(fx(x))/min<eps
end;
------------------------------
{Основная программа}
Begin
clrscr;
Writeln ('Введите начало отрезка a, конец отрезка b');
Readln (a,b);
Writeln ('Введите погрешность измерений eps');
Readln (eps);
minimum(a,b,eps,min);
chord(a,b,eps,min,x);
Writeln ('Корень уравнения x= ',x:3:utoch(eps));
End.
******************************
После работы программы
для различных значений
0,11
0,111
0,1119
0,11183
0,111833
Результат вычислений в программе MathCAD дал следующее значение корня x:
x=0.112
График функции выглядит так:
Поведение функции вблизи точки пересеченья с осью ОХ выглядит так:
Алгоритм
Пользуясь
рекуррентной формулой (2) и формулой
для оценки точности вычисления, составим
процедуру уточнения корня
Procedure chord(a, b, eps, min : real; var x : real);
Здесь x:=x1-((b-x1)*fx(x1))/(fx(b)-
abs(fx(x))/min < eps – формула для оценки точности вычислений.
При вычислении производной функции
Function proizv(x0, eps : real) : real;
будем иметь в виду, что один из способов найти производную - это взять достаточно малые значения справа и слева на равном расстоянии от - точке, в которой мы хотим найти производную.
Таким образом,
вычисляется производная в
По значениям f' можно таким же способом найти производную от f', т.е. f''. Можно выразить f'' непосредственно через f(x):
Для производной третьего порядка можно использовать следующую формулу:
Здесь dx:=1 - первоначальная величина промежутка,
dx:=dx/2 – для уточнений делим промежуток на 2,
dy:=fx(x0+dx/2 -fx(x0-dx/2) – вычисление первой производной в точке x0 ,
dy2:=fx(5*x0/4+dx)-2*fx(5*x0/
Информация о работе Решение алгебраических уравнений методом касательных и хорд на QBasic