Смекни!
smekni.com

Программирование системы уравнений (стр. 4 из 4)

8 Разработка программы решения системы уравнения методом Гаусса при помощи TurboPascal

programGauss;

const

N=3;

A:array[1..N,1..N] of real = ((9.1, 5.6, 7.8),

(3.8, 5.1, 2.8),

(4.1, 5.7, 1.2));

B:array[1..N] of real = (9.8,

6.7,

5.8);

type

matrtype=array[1..N,1..N+1] of real;

var

i,j:byte;

matr:matrtype;

procedure Gausse(var matr:matrtype; N:byte);

var i,j,k:byte;

begin

for i:=1 to N-1 do

for j:=i+1 to N do

for k:=N+1 downto i do

matr[j,k]:=matr[j,k]-matr[i,k]/matr[i,i]*matr[j,i];

for i:=N downto 1 do

begin

for j:=i+1 to N do

Matr[i,N+1]:=Matr[i,N+1]-Matr[i,j]*Matr[j,N+1];

Matr[i,N+1]:=Matr[i,N+1]/Matr[i,i];

end;

end;

begin

clrscr;

writeln('reshenie sistemi iz ',N,' linear yravnenii');

for i:=1 to N do

begin

writeln('vvodim yravnenie',i,':');

for j:=1 to N do

begin

write('A[',i

,',',j,']=');

read(A[i,j]);

end;

write('B[',i,']=');

readln(B[i]);

end;

writeln('Sistema linear yravnenii');

for i:=1 to N do

begin

for j:=1 to N do

write(A[i,j]:5:2);

writeln(B[i]:5:2);

end;

for i:=1 to N do

begin

for j:=1 to N do

matr[i,j]:=A[i,j];

matr[i,N+1]:=B[i];

end;

Gausse(matr,N);

writeln('reshenie sistemi yravnenii:');

for i:=1 to N do

writeln('X',i,'=',matr[i,N+1]:5:2);

readkey;

end.

9 Разработка программы решения уравнения методом Ньютона при помощи TurboPascal

uses crt;

var

a,b,Exp,s : real;

i : integer;

function Func(x : real) : real;

begin

Func:=2*x*x*x-3*x*x-12*x+10;

end;

function PFunc(x : real) : real;

begin

PFunc:=6*x*x-6*x-12;

end;

Begin

clrscr;

Writeln('Vvedite verhnij predel:');

readln(b);

Writeln('Vvedite to4nost'':');

readln(Exp);

i:=0;

repeat

a:=b-Func(b)/PFunc(b);

s:=b;

b:=a;

i:=i+1;

Writeln('Shag ',s:5:2,' X-',a:5:2,' f(x)=',Func(b));

until(abs(a-s)>Exp);

Writeln('Otvet: ',b:5:2);

readln;

end.

10 Разработка программы решения уравнения методом Хорд при помощи TurboPascal

program hord;

var x,a,b,eps,s:real;

function f(x:real):real;

begin

f:=2*x*x*x-3*x*x-12*x+10;

end;

begin

write('vvedite levuiu granicu');

readln(a);

write('vvedite pravuiu granicu');

readln(b);

write('vvedite epsilon');

readln(eps);

while f(b)-f(a)>=eps do

begin

s:=b-f(b)/(f(b)-f(a))/(b-a);

a:=b; b:=s;

end;

writeln(s:5:2);

readln;

end.


Заключение

В соответствии с заданием курсовой работы была осуществлена программная реализация задачи. В ходе выполнения работы были получены навыки программирования системы уравнений.


Список используемых источников

1) Блашкин И.И., Буров А.А. Новые возможности Turbo-Pascal 7.1. — Спб.: Изд-во “Макет”, 2005.

2) Бородич Ю.С. и др. Паскаль для персональных компьютеров: Справ. Пособие/ Ю.С. Бородич, А.Н. Вальвачев, А.И.Кузьмич. — Мн.: Выш. Шк.: БФ ГИТМП “НИКА”, 2001.

3)Васильев П.П. Турбо Паскаль — мой друг: М.: Компьютер, ЮНИТИ, 2006.

4) Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT, AT: Пер. с англ./ Предисл. Н.В.Гайского. — М.: Финансы и статистика, 2001.

5) Зуев Е.А. Язык программирования Turbo Pascal 7.1. — М.: Унитех, 2005.