ВУЗ:
Составители:
Рубрика:
72
9. ПРИЛОЖЕНИЕ
Если для аппроксимации произвольной функции, заданной таблично па-
рами значений x
i
и y
i,
используется кубический полином
y(x)=a
0
+ a
1
·x + a
2
·x
2
+ a
3
·x
3
,
коэффициенты a
i
могут быть найдены из решения системы уравнений
c
0
·a
0
+ c
1
·a
1
+ c
2
·a
2
+ c
3
·a
3
= d
0 ,
c
1
·a
0
+ c
2
·a
1
+ c
3
·a
2
+ c
4
·a
3
= d
1 ,
c
2
·a
0
+ c
3
·a
1
+ c
4
·a
2
+ c
3
·a
5
= d
2 ,
c
3
·a
0
+ c
4
·a
1
+ c
5
·a
2
+ c
6
·a
3
= d
3
,
где
∑
=
=
3
1i
j
ii
xc
, j=0,1,2,…,6,
y
xd
i
i
k
ik
⋅=
∑
=
3
1
, k=0,1,2,3, i=1,2,…,n,
n
– число пар исходных значений x
i
и y
i
(не менее 3).
Для определения коэффициентов кубического полинома, аппроксими-
рующего функцию, заданную таблично, можно использовать программу
apr.exe (МГТУ «МАМИ», каф. «Тракторы»)
Текст прграммы (на языке Турбо Бейсик) приведен ниже.
cls
m=3 'Степень полинома
n=m+1 'Число коэффициентов
over=0
input "Число точек ввода ";nt
dim x(nt),y(nt),a(n),c(2*n),b(n),am(n,n)
'Ввод исходных данных:
for i=1 to nt
print "X(";i;") = ";
input;"",x(i)
print " Y(";i;") = ";
input "",y(i)
next i
'Вычисление коэффициентов исходной системы уравнений:
for j=0 to 2*n
c(j)=0
if j<=n then b(j)=0
next j
for i=1 to nt
r=y(i)
72 9. ПРИЛОЖЕНИЕ Если для аппроксимации произвольной функции, заданной таблично па- рами значений xi и yi, используется кубический полином y(x)=a0 + a1·x + a2·x2 + a3·x3, коэффициенты ai могут быть найдены из решения системы уравнений c0·a0 + c1·a1 + c2·a2 + c3·a3 = d0 , c1·a0 + c2·a1 + c3·a2 + c4·a3 = d1 , c2·a0 + c3·a1 + c4·a2 + c3·a5 = d2 , c3·a0 + c4·a1 + c5·a2 + c6·a3 = d3 , где 3 ci = ∑ xi , j j=0,1,2,…,6, i =1 3 d k = ∑ xi ⋅ y i , k k=0,1,2,3, i=1,2,…,n, i =1 n – число пар исходных значений xi и yi (не менее 3). Для определения коэффициентов кубического полинома, аппроксими- рующего функцию, заданную таблично, можно использовать программу apr.exe (МГТУ «МАМИ», каф. «Тракторы») Текст прграммы (на языке Турбо Бейсик) приведен ниже. cls m=3 'Степень полинома n=m+1 'Число коэффициентов over=0 input "Число точек ввода ";nt dim x(nt),y(nt),a(n),c(2*n),b(n),am(n,n) 'Ввод исходных данных: for i=1 to nt print "X(";i;") = "; input;"",x(i) print " Y(";i;") = "; input "",y(i) next i 'Вычисление коэффициентов исходной системы уравнений: for j=0 to 2*n c(j)=0 if j<=n then b(j)=0 next j for i=1 to nt r=y(i)