Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2016, 16:12   #1
sergsergio
Новичок
Джуниор
 
Регистрация: 23.03.2016
Сообщений: 1
По умолчанию не получается запустить программу

привет всем, кто шарит в бейсике, помогите пожалуйста. нужно найти четыре значения а0,а1,а2,а3.
есть программа по которой надо это сделать, у меня не получается.

Зависимость nн=f(nт), представленную в таблице массивами точек, ап-

проксимируем кубическим полиномом
nн = а0 + а 1• nт+ а2• nт2+ а3• nт3.

nд=nн
1425,301
1423,706
1454,888
1579,964
1913,64
2056,352
2595,04

nm
0
213,5559
727,444
1090,175
1588,321
1768,462
2465,288

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 = ∑xij , j=0,1,2,…,6, (цифра 3 вверху символа ∑, i=1 внизу)
i=1
3
d k = ∑xik ⋅ yi , k=0,1,2,3, i=1,2,…,n,
i=1
n – число пар исходных значений xi и yi (не менее 3).



Текст прграммы (на языке Турбо Бейсик) приведен ниже.

Код:
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)
 
73



f=1

for j=1 to 2*n-1 c(j)=c(j)+f f=f*x(i)
if j<=n then b(j)=b(j)+r r=r*x(i) end if

next j next i
for i=1 to n k=i

for j=1 to n am(i,j)=c(k) k=k+1 next j

if ABS(am(i, i)) < 1E-35 then over = -1

exit for end if
next i
'Решение системы линейных уравнений методом Гаусса: if NOT over then
for i=1 to n-1 for j=i+1 to n
if ABS(am(i, i)) < 1E-35 then over = -1

exit for end if
am(j,i)=-am(j,i)/am(i,i) for k=i+1 to n

am(j,k)=am(j,k)+am(j,i)*am(i,k) next k
b(j)=b(j)+am(j,i)*b(i) next j
next i

for i=1 to n

if ABS(am(i, i)) < 1E-35 then over = -1 next i
end if

if NOT over then a(n -1)=b(n)/am(n,n) for i=n-1 to 1 step -1
 
74



h=b(i)

for j=i+1 to n h=h -a(j-1)*am(i,j) next j a(i-1)=h/am(i,i) next i

print "Коэффициенты полинома" for i=0 to n-1

print "a(";i;") = ";a(i) next i
' Расчет погрешности аппроксимации e=0

for i=1 to nt s=y(i) r=1

for j=1 to n s=s-r*a(j-1) r=r*x(i) next j e=e+s*s next i e=SQR(e/nt)



print " Погрешность аппроксимации Е=";e else

cls locate 8
print " ПОТЕРЯ ПОРЯДКА ПРИ ВЫЧИСЛЕНИИ КОЭФФИЦИЕНТОВ" print " Повторите ввод с другими координатами,"

print " или увеличьте число точек." end if

Последний раз редактировалось Аватар; 23.03.2016 в 17:00.
sergsergio вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается запустить jquery-1.7.2.min.js с сайта через WebBrowser Тёма_) C# (си шарп) 0 15.12.2013 02:56
Запустить программу foxes Общие вопросы Delphi 8 06.05.2012 08:14
Не могу запустить программу Володя22 Общие вопросы C/C++ 2 27.03.2010 22:22
Не получается запустить проект adreano Помощь студентам 4 27.07.2009 11:26
Как запустить программу? egordark Общие вопросы .NET 4 18.11.2008 18:17