Программа на языке Бейсик - Составление программы для решения системы уравнений

    10 REM 20 DIM A(20,20),B(20),X(20) 30 READ N 40 FOR I=1 TO N: FOR J=1 TO N 60 READ A(I, J) : NEXT J 80 READ B(I) : NEXT I 90 REM Vibor elementa 100 FOR K=1 TO N-1 110 IF A(I, K)> 120 FOR I=K+1 TO N 130 IF A(I, K)> 140 NEXT I 150 PRINT " Net korni sistemi" :GOTO 440 160 FOR J=K TO N 170 A1=A(I, J): A(I, J)=A(K, J):A(K, J)=A1 180 NEXT J 190 A1=B(I): B(I)=B(K):B(K)=A1 200 FOR I=K+1 TO N 210 A(K, I)=A(K, I)/A(K, K) 220 NEXT I 230 B(K)=B(K)/A(K, K) 240 FOR I=K+1 TO N: FOR J=K+1 TO N 260 A(I, J)=A(I, J) - A(K, J)*A(I, K) 270 NEXT J 280 B(I)=B(I)-A(I, K)*B(K) 290 NEXT I, K 300 X(N)=B(N)/A(N, N) 310 FOR I=N-1 TO 1 STEP -1 320 X(I)=B(I) 330 FOR J=I+1 TO N 340 X(I)=X(I)-A(I, J)*X(J) 350 NEXT J, I 352 PRINT " Korni sistemi: " 360 FOR I=1 TO N 370 PRINT " x(";USING "##";I; 380 PRINT " )=";USING "###.####";X(I) 390 NEXT I 400 DATA 3 402 REM Koeffisienti sistemi: 410 DATA 2,7,13,0 420 DATA 3,14,12,18 430 DATA 5,25,16,39 440 END

RUN

Korni sistemi:

X(1)= -4.0001

X(2)= 3.0000

X(3)= -1.0000

Программа Maple 7

Решения системы уравнений с n неизвестными известным методом Гаусса

> with(LinearAlgebra):

A := <<2,3,5>|<7,14,25>|<13,12,16>>;

> B := <0,18,39>;

> GaussianElimination(A);

> GaussianElimination(A,'method'='FractionFree');

>ReducedRowEchelonForm(<A|b>);

ПРОГРАММА РЕШЕНИЯ СИСТЕМЫ УРАВНЕНИЙ С N НЕИЗВЕСТНЫМИ ИЗВЕСТНЫМ МЕТОДОМ ГАУССА НА ЯЗЫКЕ ПАСКАЛЬ

TYPE MAT=ARRAY [1 ..20,1..21] OF REAL;

VEC=ARRAY [1..20] OF REAl;

VAR A:MAT;

X:VEC;

I, N:INTEGER;

S:REAL;

PROCEDURE MATR(N:INTEGER; VAR A:MAT);

VAR I, J:INTEGER;

BEGIN FOR I:=1 TO N DO

FOR J:=1 TO N+1 DO BEGIN

WRITE('A',I:2,j:2,'='); READLN(A[I, j])

END;

END;

PROCEDURE GAUSS(N:INTEGER; VAR A:MAT; VAR X:VEC;VAR S:REAL);

VAR I, j,K, L,K1,N1:INTEGER;

R: REAL;

BEGIN N1:=N+1;

FOR K:=1 TO N DO BEGIN K1:=K+1; S:=A[K, K]; J:=K;

FOR I:=K1 TO N DO BEGIN R:=A[I, K];

IF ABS(R)>ABS(S) THEN BEGIN S:=R; j:=I END

END;

IF 5=0.0 THEN EXIT;

IF j<>K THEN FOR I:=K TO N1 DO BEGIN

R:=A[K, I]; A[K, I]:=A[j, I]; A[j, I]:=R; END;

FOR J:=K1 TO N1 DO A[K, J]:=A[K, J]/S;

FOR I:=K1 TO N DO BEGIN R:=A[I, K];

FOR j:=K1 TO N1 DO A[I, j]:=A[I, j]-A[K, J]*R;

END

END;

IF S<>0.0 THEN

FOR I:=N DOWNTO 1 DO BEGIN S:=A[I, N1];

FOR J:=I+1 TO N DO S:=S-A[I, J]*X[J];

X[I]:=S

END

END;

BEGIN

REPEAT WRITE('N='); READLN(N); MATR(N, A); GAUSS(N, A,X, S);

IF S<>0.0 THEN FOR I:=1 TO N DO WRITELN('X',1:2,'=',X[I]:4:2)

ELSE WRITELN('DET=0')

UNTIL FALSE

END.

МЕТОД НАИМЕНЬШИХ КВАДРАТОВ

Рассмотрим применение метода наименьших квадратов для частного случая, широко используемого на практике. В качестве эмпирической функции рассмотрим многочлен

F(x) =

Пусть данные некоторого эксперимента представлены в виде таблицы значений переменных x и y :

Можно поставить задачу об отыскании аналитической зависимости между x и у, т. е. некоторой формулы у=f(х), явным образом выражающей у как функцию х. Естественно требовать, чтобы график искомой функции y=f(x) изменялся плавно и не слишком уклонялся от экспериментальных точек {,у). Поиск такой функциональной зависимости называют "сглаживанием" экспериментальных данных. Задачу о сглаживании экспериментальных данных можно решать используя метод наименьших квадратов. Согласно методу наименьших квадратов указывается вид эмпирической формулы

Y(x)=f(x, B0,B1,...,BN)

Где B0, B1 ,..., BN - числовые параметры.

Наилучшими значениями параметров B0, B1 ,..., BN (которые обозначим B0,' B1',..., BN ') считаются те, для которых сумма квадратов уклонений функции F(x, B0,B1,...,BN) от экспериментальных точек (xI ;yI) является минимальной, т. е. функция

В точке (B0, B1 ,..., BN) достигает минимума. Отсюда, используя необходимые условия экстремума функции нескольких переменных, получаем систему уравнений для определения параметров B0, B1 ,..., BN :

(1)

(i=1,2,3, ..., n)

Если система имеет единственное решение B0,' B1',..., BN 'то оно является искомым и аналитическая зависимость между экспериментальными данными определяется формулой

Y=f(x) = f(x, B0,' B1',..., BN ')

Заметим, что в общем случае система нелинейно.

Похожие статьи




Программа на языке Бейсик - Составление программы для решения системы уравнений

Предыдущая | Следующая