4. Текст программы
Program ApprF;
Uses Crt;
const n=3;
type
mass=array[1..5]of real;
mass1=array[1..3,1..3] of real;
mass2=array[1..3] of real;
var
X,Y,E,y1,delta : mass;
A: mass1;
B,x1: mass2;
big,r,sum,temp,maxD,Q:real;
i,j,k,l,num : byte;
Procedure VVOD(var E: mass);
Begin
For i:=1 to 5 do
read(E[i]);
writeln;
End;
Function FI( i ,k : integer): real;
Begin
if i=1 then FI:=1;
if i=2 then FI:=Sin(x[k]);
if i=3 then FI:=Cos(x[k]);
End;
Procedure PEREST(i:integer;var a:mass1;var b:mass2);
begin
big:=0;
num:=0;
for l:= i to 3 do
if abs(a[l,i]) > big then
begin
big:=a[l,i]; writeln ( big:6:4);
num:=l;
end;
if big=0 then
writeln(Перестановка уравнений);
if num<>i then
for j:=i to 3 do
begin
temp:=a[i,j];
a[i,j]:=a[num,j];
a[num,j]:=temp;
end;
temp:=b[i];
b[i]:=b[num];
b[num]:=temp;
end;
Begin
writeln(__________________);
writeln(Введите значения Х);
VVOD(X) ;
writeln(__________________);
writeln(‚Введите значения Y);
VVOD(Y);
writeln(___________________);
For i:=1 to 3 do
For j:=1 to 3 do
begin
A[i,j]:=0;
For k:=1 to 5 do
begin A[i,j]:= A[i,j]+FI(i,k)*FI(j,k); write(a[i,j]:7:5); end;
end;
writeln(________________________);
writeln(Матрица Коэффициентов Ai,j);
writeln(__________________________);
For i:=1 to 3 do
begin
For j:=1 to 3 do
write (A[i,j]:5:2, );
writeln;
end;
For i:=1 to 3 do
begin
B[i]:=0;
For j:=1 to 5 do
B[i]:=B[i]+Y[j]*FI(i,j);
end;
writeln;
readkey;
writeln(__________________________);
writeln(`Матрица Коэффициентов Bi );
writeln(_________________________);
For i:=1 to 3 do
write(B[i]:5:2, );
writeln;
for i:=1 to 2 do
begin
PEREST(i,a,b);
for k:=i+1 to 3 do
begin
Q:=a[k,i]/a[i,i]; writeln(g=,Q);
a[k,i]:=0;
for j:=i+1 to 3 do
a[k,j]:=a[k,j]-Q*a[i,j]; writeln(a=,a[k,j]);
b[k]:=b[k]-Q*b[i]; writeln(b=,b[k]);
end;
end;
x1[n]:=b[n]/a[n,n];
write(x1[n]);
for i:=2 downto 1 do
begin
sum:=b[i];
for j:=i+1 to 3 do
sum:=sum-a[i,j]*x1[j];
x1[i]:=sum/a[i,i];
end;
writeln(__________________________);
writeln (Значение коэффициентов );
writeln(_________________________);
for i:=1 to 3 do
writeln( C,i,=,x1[i]);
k:=1;
for i:=1 to 5 do
begin
y1[i]:= x1[k]*FI(k,i) + x1[k+1]*FI(k+1,i) + x1[k+2]*FI(k+2,i);
delta[i]:=abs (y[i]-y1[i]);
writeln;
writeln (y1[i]);
end;
for i:=1 to 3 do
write (x1[i]:7:3);
writeln;
maxD:=delta[1];
for i:=1 to 5 do
if delta[i]>maxD then maxD:=delta[1];
writeln (max Delta= , maxD:5:3);
End.
- 1. Цель работы
- 2. Методические указания
- 2.1 Методические рекомендации по аппроксимации методом наименьших квадратов
- 2.2 Постановка задачи
- 2.3 Методика выбора аппроксимирующей функции
- 2.4 Общая методика решения
- 2.5 Методика решения нормальных уравнений
- 2.6 Рекомендации по выбору формы записи систем линейных алгебраических уравнений
- 2.7 Методика вычисления обратной матрицы
- 3. Ручной счет
- 3.1 Исходные данные
- 3.2 Система нормальных уравнений
- 3.3 Решение систем методом обратной матрицы
- 4. Текст программы
- 5. Результаты машинного расчета
- 11. Аппроксимация методом наименьших квадратов.
- 5.Подгонка или аппроксимация; метод наименьших квадратов
- Аппроксимация данных с использованием метода наименьших квадратов
- Аппроксимация экспериментальных данных аппроксимация методом наименьших квадратов
- Тема 2. Аппроксимация функций методом наименьших квадратов.
- Аппроксимация методом наименьших квадратов Постановка задачи аппроксимации
- 8.2. Интерполирование. Аппроксимация методом наименьших квадратов. Равномерное приближение. Поточечная аппроксимация табличных данных по методу наименьших квадратов.
- Аппроксимация функции методом наименьших квадратов
- 3.3. Аппроксимация данных методом наименьших квадратов