Автор работы: Пользователь скрыл имя, 05 Декабря 2011 в 16:37, курсовая работа
В курсовом проекте рассмотрена автоматизация решений алгебраических уравнений. Автоматизация решений алгебраических уравнений методом половинного деления основана на нахождении абсолютной погрешности приближения и выявлении условий окончания итерационного процесса на каком-либо шаге при вычислении корня с точностью.
Введение
1.Общая часть
1.1 Постановка задачи
1.2 Описание математической модели
1.3 Обоснование и описание метода реализации
2.Специальная часть
2.1 Описание алгоритма
2.2 Описание программы
2.3 Руководство системного программиста
2.4 Руководство программиста
2.5 Руководство оператора
2.6 Интерпретация и анализ результатов
Заключение
Список используемой литературы
Приложение
1.Листинг программы
2.Результат решения программы 3.Контрольный пример
if (fa*fc)<0 then b11:=c1
goto Q;
end;
Application.MessageBox(PChar('
end;
procedure TForm1.Button3Click(Sender: TObject);
label R;
begin
e:=StrToFloat(Edit11.Text);
a11:=a1;
b11:=b1;
s:=1;
R:
fa:=a*(a11*a11*a11)+b*(a11*
fb:=a*(b11*b11*b11)+b*(b11*
if abs(b11-a11)>e then begin
a11:=b11-(b11-a11)*fb/(fb-fa);
b11:=a11-(a11-b11)*fa/(fa-fb);
s:=s+1;
goto R;
end;
Application.MessageBox(PChar('
end;
procedure TForm1.Button4Click(Sender: TObject);
label Z;
Label K;
begin
e:=StrToFloat(Edit11.Text);
fx:=3*a*(a1*a1)+b*a1+c;
fpx2:=(6*a*a1)+2*b;
s:=0;
if (fx*fpx2)<0 then x[0]:=a1
else x[0]:=b1;
fx:=a*(x[0]*x[0]*x[0])+b*(x[0]
K: if (Abs(fx)>e) then begin
fx:=a*(x[s]*x[s]*x[s])+b*(x[s]
fpx:=(3*a*(x[s]*x[s]))+(2*b*x[
x[s+1]:=x[s]-fx/fpx;
s:=s+1;
goto K;
end;
x[s]:=RoundTo(x[s],-6);
Application.MessageBox(PChar('
end;
procedure TForm1.Button5Click(Sender: TObject);
label Exi;
begin
e:=StrToFloat(Edit11.Text);
fx:=3*a*(a1*a1)+b*a1+c;
fpx2:=(6*a*a1)+2*b;
s:=0;
if (fx*fpx2)>0 then x0:=a1
else x0:=b1;
fa:=a*(a1*a1*a1)+b*(a1*a1)+c*
fb:=a*(b1*b1*b1)+b*(b1*b1)+c*
s:=1;
fx:=a*(x0*x0*x0)+b*(x0*x0)+c*
fpx0:=(3*a*(x0*x0))+(2*b*x0)+
fpx:=(3*a*(a1*a1))+(2*b*a1)+c;
if (fb-fa=0) or (fx=0) or (fpx0=0) then begin
Application.MessageBox(PChar('
goto Exi;
end;
x11:=x0-(fx/fpx0);
x12:=a1-((b1-a1)*(fa/(fb-fa)))
e1:=(x11+x12)/2;
a11:=a1;
b11:=b1;
while abs(x12-x11)>2*e do
begin
s:=s+1;
a11:=x11;
b11:=x12;
fa:=a*(a11*a11*a11)+b*(a11*
fb:=a*(b11*b11*b11)+b*(b11*
fpx:=(3*a*(a11*a11))+(2*b*a11)
x11:= a11-(fa/fpx);
x12:= a11-((b11-a11)*(fa/(fb-fa)));
e1:=(x11+x12)/2;
end;
e1:=RoundTo(e1,-6);
Application.MessageBox(PChar('
Exi:
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
Button2.Enabled:=false;
Button3.Enabled:=false;
Button4.Enabled:=false;
Button5.Enabled:=false;
Button6.Enabled:=false;
Button7.Enabled:=false;
panel1.visible:=false;
panel2.visible:=false;
panel3.visible:=false;
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
Button2.Enabled:=false;
Button3.Enabled:=false;
Button4.Enabled:=false;
Button5.Enabled:=false;
Button6.Enabled:=false;
Button7.Enabled:=false;
panel1.visible:=false;
panel2.visible:=false;
panel3.visible:=false;
end;
procedure TForm1.Edit3Change(Sender: TObject);
begin
Button2.Enabled:=false;
Button3.Enabled:=false;
Button4.Enabled:=false;
Button5.Enabled:=false;
Button6.Enabled:=false;
Button7.Enabled:=false;
panel1.visible:=false;
panel2.visible:=false;
panel3.visible:=false;
end;
procedure TForm1.Edit4Change(Sender: TObject);
begin
Button2.Enabled:=false;
Button3.Enabled:=false;
Button4.Enabled:=false;
Button5.Enabled:=false;
Button6.Enabled:=false;
Button7.Enabled:=false;
panel1.visible:=false;
panel2.visible:=false;
panel3.visible:=false;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Application.MessageBox(PChar('
end;
end.
Приложение 2
Результаты работы программы
Информация о работе Автоматизация решения алгебраических уравнений. Метод половинного деления