Курсовая (1018759), страница 2
Текст из файла (страница 2)
3. её первая производная f'(x) равномерно отделена от нуля;
4. её вторая производная должна быть равномерно ограничена.
Историческая справка
Метод был описан Исааком Ньютоном в рукописи «Об анализе уравнениями бесконечных рядов» (лат. «De analysi per aequationes numero terminorum infinitas» ), адресованной в 1669 году Барроу, и в работе «Метод флюксий и бесконечные ряды» (лат. «De metodis fluxionum et serierum infinitarum» ) или «Аналитическая геометрия» (лат. «Geometria analytica» ) в собраниях трудов Ньютона, которая была написана в 1671 году. В своих работах Ньютон вводит такие понятия, как разложение функции в ряд, бесконечно малые и флюксии (производные в нынешнем понимании). Указанные работы были изданы значительно позднее: первая вышла в свет в 1711 году благодаря Уильяму Джонсону, вторая была издана Джоном Кользоном в 1736 году уже после смерти создателя. Однако описание метода существенно отличалось от его нынешнего изложения: Ньютон применял свой метод исключительно к полиномам. Он вычислял не последовательные приближения xn, а последовательность полиномов и в результате получал приближённое решение x.
Впервые метод был опубликован в трактате «Алгебра» Джона Валлиса в 1685 году, по просьбе которого он был кратко описан самим Ньютоном. В 1690 году Джозеф Рафсон опубликовал упрощённое описание в работе «Общий анализ уравнений» (лат. «Analysis aequationum universalis» ). Рафсон рассматривал метод Ньютона как чисто алгебраический и ограничил его применение полиномами, однако при этом он описал метод на основе последовательных приближений xn вместо более трудной для понимания последовательности полиномов, использованной Ньютоном. Наконец, в 1740 году метод Ньютона был описан Томасом Симпсоном как итеративный метод первого порядка решения нелинейных уравнений с использованием производной в том виде, в котором он излагается здесь. В той же публикации Симпсон обобщил метод на случай системы из двух уравнений и отметил, что метод Ньютона также может быть применён для решения задач оптимизации путём нахождения нуля производной или градиента.
В 1879 году Артур Кэли в работе «Проблема комплексных чисел Ньютона — Фурье» (англ. «The Newton-Fourier imaginary problem » ) был первым, кто отметил трудности в обобщении метода Ньютона на случай мнимых корней полиномов степени выше второй и комплексных начальных приближений. Эта работа открыла путь к изучению теории фракталов.
Метод Веддля.
Метод базируется на применении к каждому из n элементарных отрезков [x1,x7] длиной h=(b-a)/n формулы:
где xi=x1+z(i-1), i=2,3,4,5,6,7, z=h/6.
Спецификация программ по методу Веддля и методу Ньютона.
Имя переменной, функции | Описание |
p1, p2 | Название программы |
E | Заданный класс точности |
c,d,nx,i,J1,J2 | Переменные |
F1 | Переменная вывода в файл |
t1 | 2-х мерный массив размерностью 5x5, в который производится запись конечных результатов вычисления. |
function fx | Функция вычисления заданной функции |
function mv | Функция вычисления интеграла выбранным методом. |
Программа по методу Веддля.
program p1;
uses crt;
const E=0.5;
var c,d,nx,i:integer;J1,J2:real;
t1:array [1..5,1..5] of real;
F1:text;
function fx(x:real):real;
begin
fx:=1/cos(3*x);
end;
function mv(a,b:real; n:integer):real;
var z,h:real;
xi:array [1..6] of real;
begin
h:=(b-a)/n;
z:=h/6;
for i:=1 to 6 do xi[i]:=a+z*i;
for i:=1 to n do mv:=mv+(3*z/10)*(fx(a)+5*fx(xi[1])+fx(xi[2])+6*fx(xi[3])+fx(xi[4])+5*fx(xi[5])+fx(xi[6]));
end;
begin
clrscr;
for c:=1 to 5 do
begin
for d:=1 to 5 do
begin
nx:=3;
repeat
begin
J1:=mv(c/20,(c+d)/20,nx);
nx:=2*nx;
J2:=mv(c/20,(c+d)/20,nx);
end;
until abs(J1-J2)<E;
t1[c,d]:=J2;
end;end;
for c:=1 to 5 do for d:=1 to 5 do writeln(t1[c,d]);
assign(F1,'C:\otch1.txt');
rewrite(F1);
for c:=1 to 5 do for d:=1 to 5 do writeln(F1,t1[c,d]);
close(F1);
readkey
end.
Программа по методу Ньютона.
program p2;
uses crt;
const E=0.5;
var c,d,nx,i:integer;J1,J2:real;
t1:array [1..5,1..5] of real;
F1:text;
function fx(x:real):real;
begin
fx:=1/cos(3*x);
end;
function mv(a,b:real; n:integer):real;
var z,h:real;
xi:array [1..6] of real;
begin
h:=(b-a)/n;
z:=h/3;
for i:=1 to 3 do xi[i]:=a+z*i;
for i:=1 to n do mv:=mv+(3*z/8)*(fx(a)+3*fx(xi[1])+3*fx(xi[2])+fx(xi[3]));
end;
begin
clrscr;
for c:=1 to 5 do
begin
for d:=1 to 5 do
begin
nx:=3;
repeat
begin
J1:=mv(c/20,(c+d)/20,nx);
nx:=2*nx;
J2:=mv(c/20,(c+d)/20,nx);
end;
until abs(J1-J2)<E;
t1[c,d]:=J2;
end;end;
for c:=1 to 5 do for d:=1 to 5 do writeln(t1[c,d]);
assign(F1,'C:\otch2.txt');
rewrite(F1);
for c:=1 to 5 do for d:=1 to 5 do writeln(F1,t1[c,d]);
close(F1);
readkey
end.
Литература.
1. Акулич И. Л. Математическое программирование в примерах и задачах: Учеб. пособие для студентов эконом. спец. вузов. — М.: Высш. шк., 1986.
2. Амосов А. А., Дубинский Ю. А., Копченова Н. П. Вычислительные методы для инженеров. — М.: Мир, 1998.
3. Епанешников А., Епанешников В. Программирование в среде Turbo Pascal 7.0 – 4-е изд., испр. И дополн. – М.: “Диалог-МИФИ”, 2000.
4. Фаронов В.В. Turbo Pascal. – СПб.: БХВ-Петербург, 2004.