Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
20.06.2014
Размер:
93.59 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

Коломенский институт (филиал)

Государственного образовательного учреждения

Высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ»

____________________________________________________

Кафедра автоматики и электроники в машиностроении

Отчёт

по лабораторной работе №3

на тему: «Программирование итерационных алгоритмов решения

нелинейных уравнений»

по дисциплине:

«Программирование и основы алгоритмизации»

Выполнил: студент группы УТС-11

Осипов А. А. (№11147)

Аудитория №210, ПК №12

16.05.12г.

Принял: преподаватель

Филоненко Ирина Николаевна

г. Коломна, 2012г.

Задание.

Вариант

Уравнение

Метод

3

x4+7x3-x+12=0

Ньютона, ε = 10-3

Блок-схема:

Код программы:

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;

type

TTask4 = class(TForm)

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Button2: TButton;

Chart1: TChart;

Series1: TLineSeries;

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

GroupBox2: TGroupBox;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Button3: TButton;

Button4: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Task4: TTask4;

implementation

{$R *.dfm}

function f1(x:real):real;

begin

f1:=x*x*x*x+7*x*x*x-x+12;

end;

function f2(x:Real):Real;

begin

f2:=4*x*x*x+21*x*x-1;

end;

procedure TTask4.Button1Click(Sender: TObject);

var

e,x,y,y_:real;

begin

x:=StrToFloat(Edit1.Text);

e:=StrToFloat(Edit2.Text);

repeat

y:=f1(x);

y_:=f2(x);

if y_=0 then exit;

x:=x-y/y_;

until abs(f1(x))<e;

Edit3.Text:=FloatToStr(x);

end;

procedure TTask4.Button2Click(Sender: TObject);

var

a,b,h,y:real;

begin

a:=StrToFloat(Edit4.Text);

b:=StrToFloat(Edit5.Text);

h:=StrToFloat(Edit6.Text);

while a<=b do

begin

y:=f1(a);

Chart1.Serieslist[0].addXY(a,y,' ',clred);

a:=a+h;

end;

end;

procedure TTask4.Button4Click(Sender: TObject);

begin

close;

end;

procedure TTask4.Button3Click(Sender: TObject);

begin

Edit1.Clear;

Edit2.Clear;

Edit3.Clear;

Edit4.Clear;

Edit5.Clear;

Edit6.Clear;

Chart1.SeriesList[0].Clear;

end;

end.