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

PDF / MMS

.pdf
Скачиваний:
40
Добавлен:
07.01.2014
Размер:
34.53 Кб
Скачать

1: program MMS; 2:

3:const

4:maxn=10;

5:

6:type

7:matrix = array [1..maxn,1..maxn] of real;

8:vector = array[1..maxn] of real;

9:

10:var

11:ns,i,j:integer;

12:x:real;

13:ss:matrix;

14:as,bs,xs,ys:vector;

16:procedure gauss_method( N : integer; var A : matrix; var B,X : vector );

17:var

18:m:real;

19:i,j,k,l:integer;

20:begin

21:for k:=1 to n-1 do

22:for i:=k+1 to n do begin

23:m:=a[i,k]/a[k,k];

24:b[i]:=b[i]-m*b[k];

25:for j:=k to n do a[i,j]:=a[i,j]-m*a[k,j];

26:end;

27:for j:=n downto 1 do begin

28:m:=b[j];

29:for l:=n downto j+1 do m:=m-a[j,l]*x[l];

30:x[j]:=m/a[j,j];

31:end;

32:end;

33:

34:procedure mnk2_method(N: integer; var X,Y,A: vector);

35:var

36:i,j,k:integer;

37:s1,s2,s3,s4,s5,s6,s7:real;

38:begin s1:=0; s2:=0; s3:=0; s4:=0; s5:=0; s6:=0; s7:=0;

39:for i:=1 to n do

40:begin

41:s1:=s1+x[i]; s2:=s2+x[i]*x[i]; s3:=s3+x[i]*x[i]*x[i];

42:s4:=s4+x[i]*x[i]*x[i]*x[i]; s5:=s5+y[i]; s6:=s6+x[i]*y[i];

43:s7:=s7+x[i]*x[i]*y[i];

44:end;

45: ss[1,1]:=n;

ss[1,2]:=s1;

ss[1,3]:=s2;

bs[1]:=s5;

46:

ss[2,1]:=s1; ss[2,2]:=s2;

ss[2,3]:=s3;

bs[2]:=s6;

47:

ss[3,1]:=s2;

ss[3,2]:=s3;

ss[3,3]:=s4;

bs[3]:=s7;

48:gauss_method(3,ss,bs,as);

49:end;

50:

51:begin

52:WriteLn('-- Интерполяция по методу МНК --');

53:Write(' Введите количество экспериментально полученных точек : ');

54:ReadLn(ns);

55:for j:=1 to ns do

56:begin

57:Write(' Введите : X(',j,') = '); readln(xs[j]);

58:Write(' Введите : Y(',j,') = '); readln(ys[j]);

59:end;

60:mnk2_method(ns,xs,ys,as);

61:WriteLn(' Решение : A(0) = ',as[1]:7:3);

62:WriteLn(' Решение : A(1) = ',as[2]:7:3);

63:WriteLn(' Решение : A(2) = ',as[3]:7:3);

64:WriteLn(' Проверка :');

65:Write(' Введите X = '); ReadLn(x);

66:WriteLn(' Y (',x:7:3,') = ',(as[1]+as[2]*x+as[3]*x*x):7:3);

67:ReadLn;

68:end.

69:

Соседние файлы в папке PDF