3.1 Блок-схема алгоритма. Описание исходных данных и результатов.
| ||||
|
Исходные данные, а именно:
m-число узлов аппроксимации.
n - степень аппроксимирующего многочлена.
X - вектор узлов аппроксимации.
Y - вектор значений аппроксимируемой функции.
Все эти значения мы заносим в файл jan.dat, который работает только на чтение и файловой переменной является f1.
Результаты:
Все результаты выводятся в файл jan.res, работающий на запись и имеющий файловую переменную f2.
Первоначально в этот файл выводятся исходные данные, которые берутся из файла jan.dat, но при этом уже с описанием, то есть не просто числа, а скоментарием, что они означают.
Затем выводятся результаты вычисления, проведенной машиной, при этом все результаты отформатированы:
Выводится матрица С системы линейных уравнений для аппроксимации вместе с вектором правых частей. Затем выводится решение этой системы уравнений, что является вектором коэффициентов аппроксимирующего многочлена по возрастанию степени. И в конце выводится вектор погрешности аппроксимации Z.
4.1 Листинг программы, исходных данных и результатов.
program approx;
uses crt,gausstpu;
const nm=20;
type vect1=array[1..nm] of real;
var c:matr;
a,b:vect;
x,y,z:vect1;
n,i,j,m:integer;
f1,f2:text;
procedure Create_BC(n,m:integer; var x,y:vect1; var c:matr; var b:vect);
var i,j:integer;
r:vect;
begin
for i:=1 to n do
r[i]:=1;
for j:=1 to m+1 do begin
c[1,j]:=0;
b[j]:=0;
for i:=1 to n do begin
c[1,j]:=c[1,j]+r[i];
b[j]:=b[j]+r[i]*y[i];
end;
for i:=1 to n do
r[i]:=r[i]*x[i];
end;
for i:=1 to m do begin
for j:=1 to m do
c[i+1,j]:=c[1,j+1];
c[i+1,m+1]:=0;
for j:=1 to n do
c[i+1,m+1]:=c[i+1,m+1]+r[j];
for j:=1 to n do
r[j]:=r[j]*x[j];
end;end;
begin
assign(f1,'jan.dat');reset(f1);
assign(f2,'jan.res');rewrite(f2);
readln(f1,n);writeln(f2,'Число узлов аппроксимации n=',n:3);
readln(f1,m);writeln(f2,'Степень многочлена m=',m:2);
writeln(f2,'Вектор узлов аппроксимации x[i]');
for i:=1 to n do begin
read(f1,x[i]);
write(f2,x[i]:4:2,' ');
end;
writeln(f2);
writeln(f2,'Вектор значений аппроксимируемой функции y[i]');
for i:=1 to n do begin
read(f1,y[i]);
write(f2,y[i]:4:2,' ');
end;
Create_BC(n,m,x,y,c,b);
writeln(f2);
writeln(f2,'Матрица системы линейных уравнений для аппроксимации и вектор правых частей);
for i:=1 to m+1 do begin
for j:=1 to m+1 do
write(f2,c[i,j]:8:1);writeln(f2,b[i]:8:1);end;
gauss(m+1,c,b,a);
for i:=1 to n do begin
z[i]:=0;
for j:=m+1 downto 1 do
z[i]:=z[i]*x[i]+a[j];
z[i]:=z[i]-y[i];end;
writeln(f2);
writeln(f2,'Вектор коэфициентов аппроксимирующего многочлена по возрастанию);
writeln(f2,'степени (m+1 элементов)');
for i:=1 to m+1 do
writeln(f2,'a[',i:1,']=',a[i]:6:2);
writeln(f2,'Вектор погрешности аппроксимации в узлах X);
for i:=1 to n do
writeln(f2,'z[',i:1,']=',z[i]:5:3);
close(f1);close(f2);
end.
Исходный файл jan.dat:
10
2
1 6 0 3 8 2 12 9 2 5
9 4 13 7 3 9 3 1 4 2
Файл результатов jan.res:
Число узлов аппроксимации n=10
Степень многочлена m=2
Вектор узлов аппроксимации x[i]
1.00 6.00 0.00 3.00 8.00 2.00 12.00 9.00 2.00 5.00
Вектор значений аппроксимируемой функции y[i]
9.00 4.00 13.00 7.00 3.00 9.00 3.00 1.00 4.00 2.00
Матрица системы линейных уравнений для аппроксимации и вектор правых частей
10.0 48.0 368.0 55.0
48.0 368.0 3354.0 159.0
368.0 3354.0 33428.0 1023.0
Вектор коэфициентов аппроксимирующего многочлена по возрастанию степени (m+1 элементов)
a[1]= 11.66
a[2]= -2.31
a[3]= 0.13
Вектор погрешности аппроксимации в узлах X
z[1]=0.479
z[2]=-1.381
z[3]=-1.343
z[4]=-1.070
z[5]=-1.247
z[6]=-1.430
z[7]=-0.244
z[8]=0.723
z[9]=3.570
z[10]=1.454
... [a,b]. Теперь мы можем рассматривать функции в произвольных нормированных пространствах. III. Методы аппроксимации 3.1 Приближение функций многочленами. Алгебраическим многочленом степени n называется функция - действительные числа, называемые коэффициентами. Алгебраические многочлены являются простейшими функциями. Они непрерывны при любом x. Производная многочлена- так же многочлен, степень ...
... u(x1, x2) в пяти точках сетки, а именно в точках (x1i, x2j), (x1i± 1, x2j), (x1i, x2 j± 1). Указанное множество точек называется шаблоном разностного оператора. Возможны разностные аппроксимации оператора Лапласа и на шаблонах, содержащих большее число точек. 2. Исследование аппроксимации и сходимости 2.1. Аппроксимация дифференциального уравнения. Ранее рассматривалась краевая задача (k(x) ...
... PRINT X, Y NEXT X END XC= 10 Х Y 1.3 -6.56 5.4 -3.77 9.5 -1.84 13.6 .1 17.7 2.29 21.8 4.31 25.9 5.86 30 8.82 34.1 11.33 38.2 11.27 S=-1.594203 АППРОКСИМАЦИЯ ФУНКЦИЕЙ. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ. В инженерной деятельности часто ...
... считать, что построенная эмпирическая формула наиболее точно отражает эмпирические данные. 3. Расчет коэффициентов аппроксимации в Microsoft Excel. Вариант №22 Функция y=f(x) задана таблицей 1 Таблица 1 Исходные данные. 12.85 154.77 9.65 81.43 7.74 55.86 5.02 24.98 1.86 3.91 12.32 145.59 9.63 80.97 7.32 ...
0 комментариев