Полиномиальная интерполяция Гаусса, Ньютона, Стирлинга
Составление алгоритма и программного обеспечения для реализации конечноразностных интерполяционных формул Ньютона, Гаусса и Стирлинга. Описание метода полиномиальной интерполяции. Изучение метода оптимального исключения для решения линейных уравнений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.12.2013 |
Размер файла | 19,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Российской Федерации
Сибирский Государственный Технологический Университет
Факультет: Автоматизации и информационных технологий
Кафедра: Системотехники
Курсовая работа
Полиномиальная интерполяция Гаусса, Ньютона, Стирлинга
Руководитель: Ващенко Г.В.
Разработал: Русинов Д.В.
Содержание
Аннотация
Введение
1. Постановка задачи
2. Описание метода полиномиальной интерполяции
3. Блок-схема программного обеспечения
4. Исходные тексты основных процедур программы
5. Результаты численных экспериментов
Заключение
Список используемых источников
Аннотация
В данной курсовой работе представлены алгоритмы и программное обеспечение, реализующее решение полиномиального интерполирования методами Ньютона, Гаусса и Стирлинга.
Программное обеспечение разработано в среде программирования Delphi.
Введение
В данной курсовой работе были разработаны алгоритм и программа для решения задачи полиномиального интерполирования. В общем виде задача интерполирования формулируется следующим образом: для таблично заданной функции f требуется найти достаточно простую известную функцию p, удовлетворяющую соотношениям
p(xi)=yi (i=0,1,2, …, n)
1. Постановка задачи
Для таблично задаваемых функций требуется составить алгоритм и программное обеспечение для реализации конечноразностных интерполяционных формул Ньютона, Гаусса и Стирлинга.
2. Описание метода полиномиальной интерполяции
Пусть функция y=f(x) задана на сетке равноотстоящих узлов
xi=xo+ih,
где i=0, 1,…, n, и для неё построена таблица конечных разностей.
Будем строить интерполяционный многочлен Pn(x) в форме:
Pn(x)=a0+a1(x-x0)+a2(x-x0)(x-x1)+…+an(x-x0)(x-x1)…(x-xn-1)
3. Конструктивная схема программного обеспечения
1. Функция ввода:
Позволяет пользователю задавать размерность таблицы, выбирать крайние точки и задавать табличную функцию.
procedure TForm1.Button1Click(Sender: TObject);
begin
x0:=strtofloat(EditXo.text);
h:=(Strtofloat(EditXn.Text)-x0)/n;
For i:=0 to n do
y[i]:=strtofloat(setka.Cells[i+1,1]);
PN1:=PolyNuton1;
PN2:=PolyNuton2;
for i:=0 to n do
y[i-(n div 2)]:=y[i];
x0:=x0+(n div 2)*h;
PG1:=PolyGauss1;
PG2:=PolyGauss2;
PS:=PolyStirling;
With Polynoms do
begin
Cells[1,0]:=PN1; Cells[1,1]:=PN2;
Cells[1,2]:=PG1; Cells[1,3]:=PG2;
Cells[1,4]:=PS;
DrawGraph;
end;
2. Функция вычисления:
Function PolyNuton1:string;
Function PolyNuton2:string;
Function PolyGauss1:string;
функции вычисления полиномов в текстовом виде
Function PolyGauss2:string;
Function PolyStirling:string;
Function PolyN1(x:extended):extended;
Function PolyN2(x:extended):extended;
Function PolyG1(x:extended):extended;
функции вычисления полиномов как функции
Function PolyG2(x:extended):extended;
Function PolyS(x:extended):extended;
Функция вывода:
procedure TForm1.Button1Click(Sender: TObject);
begin
x0:=strtofloat(EditXo.text);
h:=(Strtofloat(EditXn.Text)-x0)/n;
For i:=0 to n do
y[i]:=strtofloat(setka.Cells[i+1,1]);
PN1:=PolyNuton1;
PN2:=PolyNuton2;
for i:=0 to n do
y[i-(n div 2)]:=y[i];
x0:=x0+(n div 2)*h;
PG1:=PolyGauss1;
PG2:=PolyGauss2;
PS:=PolyStirling;
With Polynoms do
begin
Cells[1,0]:=PN1; Cells[1,1]:=PN2;
Cells[1,2]:=PG1; Cells[1,3]:=PG2;
Cells[1,4]:=PS;
end;
DrawGraph;
end;
Procedure DrawGraph - процедура рисования графиков
4. Исходные тексты основных процедур программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Math, StdCtrls, Spin,StrUtils, ExtCtrls;
type
TArray=array[-100..200] of extended;
TForm1 = class(TForm)
Setka: TStringGrid;
SpinEditn: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
EditXo: TEdit;
Label3: TLabel;
EditXn: TEdit;
Button1: TButton;
Polynoms: TStringGrid;
Image1: TImage;
CheckN1: TCheckBox;
CheckN2: TCheckBox;
CheckG1: TCheckBox;
CheckG2: TCheckBox;
CheckS: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure EditXnExit(Sender: TObject);
procedure EditXoExit(Sender: TObject);
procedure SpinEditnKeyPress(Sender: TObject; var Key: Char);
procedure SpinEditnExit(Sender: TObject);
procedure PolynomsKeyPress(Sender: TObject; var Key: Char);
procedure CheckN1Click(Sender: TObject);
private
Function Fact(n:longint):longint; //факториал
Function C(n,k:integer):extended; //С из n по k
Function Delta(k:integer;y:Tarray;i:integer):extended; //Дельта к-ой степ. Yi
Procedure ZapX; //заполнить строку с x-ми
Function PolyNuton1:string;
Function PolyNuton2:string;
Function PolyGauss1:string;
Function PolyGauss2:string;
Function PolyStirling:string;
Function PolyN1(x:extended):extended;
Function PolyN2(x:extended):extended;
Function PolyG1(x:extended):extended;
Function PolyG2(x:extended):extended;
Function PolyS(x:extended):extended;
Procedure DrawGraph;
public
{ Public declarations }
end;
var
Form1: TForm1;
y:TArray;
n,i,j,k:integer;
h,x0,z,x,r:extended;
PN1,PN2,PG1,PG2,PS:string;
implementation
{$R *.dfm}
Procedure TForm1.DrawGraph;
var
scx,scy,miny,maxy:extended;
i:integer;
begin
x0:=strtofloat(EditXo.text);
h:=(Strtofloat(EditXn.Text)-x0)/n;
For i:=0 to n do
y[i]:=strtofloat(setka.Cells[i+1,1]);
scx:=(image1.Width-30)/n;
miny:=y[0];
maxy:=miny;
for i:=1 to n do
begin
If miny>y[i] then miny:=y[i];
If maxy<y[i] then maxy:=y[i];
end;
scy:=(Image1.Height-30)/(maxy-miny);
Image1.Canvas.FillRect(Rect(0,0,Width,Height));
With Image1.Canvas do
begin
Pen.Color:=clLime;
Pen.Style:=psSolid;
Pen.Width:=1;
for i:=0 to n do
begin
Moveto(20+round(scx*i),Image1.Height-15);
Lineto(20+round(scx*i),0);
TextOut(15+round(scx*i),Image1.Height-15,floatToStr(x0+i*h));
Moveto(15,Image1.Height-20-round(scy*(y[i]-miny)));
LineTo(Image1.Width,Image1.Height-20-round(scy*(y[i]-miny)));
TextOut(5,Image1.Height-27-round(scy*(y[i]-miny)),floatToStr(y[i]));
end;
end;
With Image1.Canvas do
begin
Pen.Color:=clblack;
Pen.Width:=3;
Moveto(20,Image1.Height-20-round(scy*(y[0]-miny)));
for i:=1 to n do
LineTo(20+round(scx*i),Image1.Height-20-round(scy*(y[i]-miny)));
pen.Width:=2;
For i:=21 to Image1.Width-10 do
begin
If CheckN1.Checked then
begin
Pen.Color:=clBlue;
Moveto(i-1,Image1.Height-20-round(scy*(PolyN1(x0+(i-21)*h/scx)-miny)));
Lineto(i,Image1.Height-20-round(scy*(PolyN1(x0+(i-20)*h/scx)-miny)));
end;
If CheckN2.Checked then
begin
Pen.Color:=clGreen;
Moveto(i-1,Image1.Height-20-round(scy*(PolyN2(x0+(i-21)*h/scx)-miny)));
Lineto(i,Image1.Height-20-round(scy*(PolyN2(x0+(i-20)*h/scx)-miny)));
end;
end;
for i:=0 to n do
y[i-(n div 2)]:=y[i];
x0:=x0+(n div 2)*h;
For i:=21 to Image1.Width-10 do
begin
If CheckG1.Checked then
begin
Pen.Color:=clRed;
Moveto(i-1,Image1.Height-20-round(scy*(PolyG1(x0-(n div 2)*h+(i-21)*h/scx)-miny)));
Lineto(i,Image1.Height-20-round(scy*(PolyG1(x0-(n div 2)*h+(i-20)*h/scx)-miny)));
end;
If CheckG2.Checked then
begin
Pen.Color:=rgb(50,200,150);
Moveto(i-1,Image1.Height-20-round(scy*(PolyG2(x0-(n div 2)*h+(i-21)*h/scx)-miny)));
Lineto(i,Image1.Height-20-round(scy*(PolyG2(x0-(n div 2)*h+(i-20)*h/scx)-miny)));
end;
If CheckS.Checked then
begin
Pen.Color:=clgray;
Moveto(i-1,Image1.Height-20-round(scy*(PolyS(x0-(n div 2)*h+(i-21)*h/scx)-miny)));
Lineto(i,Image1.Height-20-round(scy*(PolyS(x0-(n div 2)*h+(i-20)*h/scx)-miny)));
end;
end;
end;
end;
Procedure TForm1.ZapX;
begin
x0:=strtofloat(EditXo.text);
h:=(Strtofloat(EditXn.Text)-x0)/n;
For i:=1 to n+1 do
Setka.Cells[i,0]:=floattostr(x0+pred(i)*h);
end;
Function TForm1.Fact(n:integer):longint;
var i:integer;
begin
Result:=1;
For i:=1 to n do
Result:=Result*i;
end;
function Tform1.C(n,k:integer):extended;
begin
Result:=fact(n)/(fact(k)*fact(n-k));
end;
Function Tform1.Delta(k:integer;y:TArray;i:integer):extended;
var j:integer;
begin
result:=0;
For j:=0 to k do
Result:=result+intpower(-1,j)*C(k,j)*y[k+i-j];
end;
Function TForm1.PolyNuton1:string;
begin
Result:=floattostr(y[0]);
For i:=1 to n do
begin
z:=Delta(i,y,0)/(fact(i)*IntPower(h,i));
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr(z);
For j:=1 to i do
begin
z:=x0+pred(j)*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr(z)+')'
else Result:=Result+'(x'+floattostr(z)+')'
end;
end;
end;
Function Tform1.PolyN1(x:extended):extended;
begin
Result:=(y[0]);
For i:=1 to n do
begin
z:=Delta(i,y,0)/(fact(i)*IntPower(h,i));
if z=0 then continue;
r:=z;
For j:=1 to i do
begin
z:=x0+pred(j)*h;
r:=r*(x-z)
end;
Result:=Result+r;
end;
end;
function TForm1.PolyNuton2:string;
begin
Result:=floattostr(y[n]);
For i:=1 to n do
begin
z:=Delta(i,y,n-i)/(fact(i)*IntPower(h,i));
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr(z);
For j:=n downto n-pred(i) do
begin
z:=x0+j*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr(z)+')'
else Result:=Result+'(x'+floattostr(z)+')'
end;
end;
end;
Function Tform1.PolyN2(x:extended):extended;
begin
Result:=(y[n]);
For i:=1 to n do
begin
z:=Delta(i,y,n-i)/(fact(i)*IntPower(h,i));
if z=0 then continue;
r:=z;
For j:=n downto n-pred(i) do
begin
z:=x0+j*h;
r:=r*(x-z)
end;
Result:=Result+r;
end;
end;
function TForm1.PolyGauss1:string;
begin
Result:=floattostr(y[0]);
For i:=1 to n do
begin
z:=Delta(i,y,-(i div 2))/(fact(i)*IntPower(h,i));
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr(z);
For j:=-(i div 2)+1-i mod 2 to (i div 2) do
begin
z:=x0+j*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr(z)+')'
else Result:=Result+'(x'+floattostr(z)+')'
end;
end;
end;
Function Tform1.PolyG1(x:extended):extended;
begin
Result:=(y[0]);
For i:=1 to n do
begin
z:=Delta(i,y,-(i div 2))/(fact(i)*IntPower(h,i));
if z=0 then continue;
r:=z;
For j:=-(i div 2)+1-i mod 2 to (i div 2) do
begin
z:=x0+j*h;
r:=r*(x-z)
end;
Result:=Result+r;
end;
end;
function TForm1.PolyGauss2:string;
begin
Result:=floattostr(y[0]);
For i:=1 to n do
begin
z:=Delta(i,y,-(succ(i) div 2))/(fact(i)*IntPower(h,i));
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr(z);
For j:=-(i div 2) to (i div 2)-1+i mod 2 do
begin
z:=x0+j*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr(z)+')'
else Result:=Result+'(x'+floattostr(z)+')'
end;
end;
end;
Function Tform1.PolyG2(x:extended):extended;
begin
Result:=(y[0]);
For i:=1 to n do
begin
z:=Delta(i,y,-(succ(i) div 2))/(fact(i)*IntPower(h,i));
if z=0 then continue;
r:=z;
For j:=-(i div 2) to (i div 2)-1+i mod 2 do
begin
z:=x0+j*h;
r:=r*(x-z)
end;
Result:=Result+r;
end;
end;
function TForm1.PolyStirling:string;
begin
Result:=floattostr(y[0]);
For i:=1 to n do
begin
z:=(Delta(i,y,-(i div 2))+Delta(i,y,-(succ(i) div 2)))/(2*fact(i)*IntPower(h,i));
If not(odd(i)) then z:=z/2;
if z=0 then continue;
If (z>0) then Result:=Result+'+';
If z<>1 then Result:=Result+floattostr(z);
For j:=-(i div 2)+1-i mod 2 to (i div 2)-1+i mod 2 do
begin
z:=x0+j*h;
if z=0
then Result:=Result+'x'
else if z>0 then Result:=Result+'(x-'+floattostr(z)+')'
else Result:=Result+'(x'+floattostr(z)+')'
end;
If not(odd(i)) then
begin
z:=-2*x0;
If z=0 then Result:=result+'2x'
else
if z<0
then Result:=Result+'(2x'+floattostr(z)+')'
else Result:=Result+'(2x+'+floattostr(z)+')';
end;
end;
end;
Function Tform1.PolyS(x:extended):extended;
begin
Result:=(y[0]);
For i:=1 to n do
begin
z:=(Delta(i,y,-(i div 2))+Delta(i,y,-(succ(i) div 2)))/(2*fact(i)*IntPower(h,i));
If not(odd(i)) then z:=z/2;
if z=0 then continue;
r:=z;
For j:=-(i div 2)+1-i mod 2 to (i div 2)-1+i mod 2 do
begin
z:=x0+j*h;
r:=r*(x-z)
end;
If not(odd(i)) then r:=r*(2*(x-x0));
Result:=Result+r;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
x0:=strtofloat(EditXo.text);
h:=(Strtofloat(EditXn.Text)-x0)/n;
For i:=0 to n do
y[i]:=strtofloat(setka.Cells[i+1,1]);
PN1:=PolyNuton1;
PN2:=PolyNuton2;
for i:=0 to n do
y[i-(n div 2)]:=y[i];
x0:=x0+(n div 2)*h;
PG1:=PolyGauss1;
PG2:=PolyGauss2;
PS:=PolyStirling;
With Polynoms do
begin
Cells[1,0]:=PN1; Cells[1,1]:=PN2;
Cells[1,2]:=PG1; Cells[1,3]:=PG2;
Cells[1,4]:=PS;
end;
DrawGraph;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
n:=4;
With Polynoms do
begin
ColWidths[1]:=1593;
Cells[0,0]:='I полином Ньютона';
Cells[0,1]:='II полином Ньютона';
Cells[0,2]:='I полином Гаусса';
Cells[0,3]:='II полином Гаусса';
Cells[0,4]:='полином Стирлинга';
end;
With setka do
begin
Cells[0,0]:=' x';
Cells[0,1]:=' y';
zapX
end;
end;
procedure TForm1.EditXnExit(Sender: TObject);
begin
If StrTofloat(EditXn.Text)<StrTofloat(EditXo.Text) then
EditXn.Undo;
ZapX;
end;
procedure TForm1.EditXoExit(Sender: TObject);
begin
If StrTofloat(EditXn.Text)<StrTofloat(EditXo.Text) then
EditXo.Undo;
ZapX;
end;
procedure TForm1.SpinEditnKeyPress(Sender: TObject; var Key: Char);
begin
If not(key in ['0'..'9','-',#8,DecimalSeparator]) then key:=#0;
end;
procedure TForm1.SpinEditnExit(Sender: TObject);
begin
setka.ColCount:=SpinEditn.Value+1;
n:=SpinEditn.Value-1;
ZapX;
end;
procedure TForm1.PolynomsKeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
procedure TForm1.CheckN1Click(Sender: TObject);
begin
DrawGraph;
end;
end.5. Результаты численных экспериментов.
Хорошо обусловленные матрицы(Ввод пользователем)
№ |
Размерность матрицы |
Вектор невязки(r) |
Норма матрицы ||r||-равномерное |
|
1 |
3 |
r1=0,00001 r2=0 r3=0 |
||r||=101 |
|
2 |
4 |
r1=0 r2=0,00002 r3=0,00003 r4=0,00003 |
||r||=153 |
|
3 |
10 |
r1=0,00002 r2=0,00004r3=0,00003 r4=0,00006r5=0,00001 r6=0,00003r7=0,00012 r8=0,00001r9=0,00004 r10=0,00021 |
||r||=362 |
Хорошо обусловленные матрицы(случайный выбор)
№ |
Размерность матрицы |
Вектор невязки(r) |
Норма матрицы ||r||-равномерное |
Диапазон случайной величины |
|
1 |
3 |
r1=0 r2=0 r3=0 |
||r||=13 |
От 1 до 5 |
|
2 |
4 |
r1=0 r2=0 r3=0 r4=0 |
||r||=36 |
От 1 до10 |
|
3 |
10 |
r1=0,00014 r2=0,00004r3=0,00013 r4=0,00009r5=0,00032 r6=0,00001r7=0,00012 r8=0,00021r9=0,00002 r10=0,00022 |
||r||=472 |
От 1 до 100 |
Плохо обусловленные матрицы(Ввод пользователем)
№ |
Размерность матрицы |
Вектор невязки(r) |
Норма матрицы ||r||-равномерное |
|
1 |
3 |
r1=0,00001 r2=0,00021 r3=0,00003 |
||r||=1,45 |
|
2 |
4 |
r1=0,00012 r2=0,00002 r3=0,00005 r4=0,00021 |
||r||=2,67 |
|
3 |
10 |
r1=0,00003 r2=0,00032r3=0,00023 r4=0,00078r5=0,00005 r6=0,00036r7=0,00011 r8=0,00054r9=0,00262 r10=0,00050 |
||r||=3,49 |
Плохо обусловленные матрицы(заполнение по правилу 1/I+j)
№ |
Размерность матрицы |
Вектор невязки(r) |
Норма матрицы ||r||-равномерное |
|
1 |
3 |
r1=0 r2=0 r3=0 |
||r||=1,83 |
|
2 |
4 |
r1=0 r2=0 r3=0 r4=0 |
||r||=2,08 |
|
3 |
10 |
r1=0 r2=0r3=0 r4=0 r5=0 r6=0r7=0 r8=0r9=0 r10=0 |
||r||=2,92 |
Заключение
программный полиномиальный интерполяция линейный
В данной работе был разработан алгоритм и программа для решения уравнения вида A*х=B методом оптимального исключения. Метод оптимального исключения дает возможность решения систем линейных уравнений размерностью на два порядка выше, чем в обычных методах (как например методы Гаусса, Жордана-Гаусса и т. д), за счет возможности подзагрузки в оперативную память порции уравнений во время решения системы.
Численные эксперименты, проведенные над линейными системами с хорошо и плохо обусловленными матрицами, различных размерностей, показали, что, не смотря на сложность вычислительной схемы (алгоритма) метод дает ряд преимуществ перед обычными методами (методы Гаусса, Жордана-Гаусса и т. д), а именно уменьшается погрешность (вектор невязки) и возрастает скорость вычисления.
Численные эксперименты проведены на процессоре Pentium 4 с одноразрядной точностью(real).
Список используемых источников
1. Фаддеев Д.К., Фаддеева В.Н. Вычислительные методы линейной алгебры.-М.: Физматгиз, 1963.- 734 с.
2. Культин Н.Б. Основы программирования 0в Delphi 7. - СПб.: БХВ-Петербург, 2003. -608с.: ил.
3. Бобровский И.С. Delphi 7. Учебный курс. - СПб.: Питер, 2003. - 736 с.: ил.
Размещено на Allbest.ru
Подобные документы
Сущность метода Гаусса при решении систем линейных уравнений. Элементарные преобразования этого метода. Краткое описание среды визуальной разработки Delphi. Описание основных применяемых процедур и алгоритм роботы программы по решению уравнений.
курсовая работа [1,1 M], добавлен 29.08.2010Применение численного метода решения систем линейных алгебраических уравнений, используемых в прикладных задачах. Составление на базе метода матрицы Гаусса вычислительной схемы алгоритма и разработка интерфейса программы на алгоритмическом языке.
курсовая работа [823,9 K], добавлен 19.06.2023Разработка программного продукта для решения систем линейных алгебраических уравнений методом Гаусса с помощью ЭВМ. Математическое описание объекта моделирования, начальные и граничные условия. Алгоритм реализации задачи. Использование модуля CRT.
курсовая работа [269,6 K], добавлен 07.01.2016Автоматизация решения системы уравнения методом Гаусса (классического метода решения системы линейных алгебраических уравнений, остоящего в постепенном понижении порядка системы и исключении неизвестных) и решения уравнения методами хорд и Ньютона.
курсовая работа [578,2 K], добавлен 10.02.2011Постановка задачи, математические и алгоритмические основы решения системы линейных алгебраических уравнений. Решение системы данных уравнений методом Гаусса с выбором главного элемента по столбцу. Функциональные модели и блок-схемы решения задачи.
курсовая работа [428,9 K], добавлен 25.01.2010Характеристика методов решений систем линейных алгебраических уравнений, основные виды численных методов и применение программного продукта Delphi 5.0 как наиболее эффективного. Сущность методов Гаусса, Гаусса-Жордана и Якоби, особенности метода Зейделя.
курсовая работа [2,2 M], добавлен 25.06.2010Решение систем алгебраических линейных уравнений методом Гаусса. Вычисление обратной матрицы и определителя. Декомпозиция задачи. Схема взаимодействия интерфейсных форм. Описание процедур и функций. Тестирование разработанного программного продукта.
курсовая работа [1,1 M], добавлен 05.06.2012Матричная форма записи системы линейных уравнений, последовательность ее решения методом исключений Гаусса. Алгоритмы прямого хода и запоминания коэффициентов. Решение задачи о сглаживании экспериментальных данных с помощью метода наименьших квадратов.
курсовая работа [610,7 K], добавлен 25.06.2012Приведение системы линейных алгебраических уравнений к треугольному виду прямым ходом метода Гаусса. Применение обратного хода метода вращений. Создание алгоритма, блок-схемы и кода программы. Тестовый пример решения уравнения и его проверка в MathCad.
лабораторная работа [164,3 K], добавлен 02.10.2013Методы ветвей и границ первого и второго порядка. Оптимальный и пассивный поиск. Недостатки метода Ньютона. Метод золотого сечения. Примеры унимодальных функций. Динамическое и линейное программирование. Метод Жордана-Гаусса. Решение задачи коммивояжера.
курсовая работа [1,1 M], добавлен 20.07.2012