Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Выч мат для заочников.doc
Скачиваний:
51
Добавлен:
08.03.2015
Размер:
565.76 Кб
Скачать

Приложение 2 Оформление титульного листа

Федеральное агентство по образованию

Рыбинская государственная авиационная технологическая академия

имени П. А. Соловьева

Кафедра ВС

Специальность

КОНТРОЛЬНАЯ РАБОТА

по курсу: «Вычислительная математика»

Вариант №

Пояснительная записка

Студент гр. И. О. Фамилия

шифр подпись

Руководитель: И. О. Фамилия

Рыбинск 2009

Приложение 3 Примеры реализации программ на Бейсике

1.1. Один шаг лагранжевой интерполяции выполняется за счет двух циклов, начинающихся со строки 3340 и заканчивающихся строкой 3440 программы на бейсике.

1000 REM *************************************************

1010 REM * ЭТА ПРОГРАММА НАХОДИТ ПРОМЕЖУТОЧНЫЕ

1020 REM * ЗНАЧЕНИЯ ПО ТАБЛИЦЕ ЗНАЧЕНИЙ

1030 REM * МЕТОДОМ ИНТЕРПОЛЯЦИИ ПО ЛАГРАНЖУ

1040 REM**************************************************

1120 REM ** ЗАДАНИЕ ТАБЛИЦЫ **

1135 М = 5

1140 DIM X(6),Y(6)

1150 PRINT "-------------------"

1155 PRINT "X Y

1157 PRINT "-------------------"

1160 FOR I = 0 ТО М

1180 READ X(I),Y(I)

1185 PRINT X(I); TAB(10); Y(I)

1190 NEXT I

1210 DATA 10.,0.17365,20.,.34202

1220 DATA 30.,0.50000,40.,.64279

1230 DATA 50.,0.76604,60.,.86603

1240 PRINT "____________"

1260 X1 = 3.

1270 REM *НАХОЖДЕНИЕ ИНТЕРПОЛЯЦИОННЫХ ЗНАЧЕНИЙ

1300 GOSUB 3000

1330 REM ** ПЕЧАТЬ ОТВЕТА **

1420 PRINT "ПРИ Х = ";Х1

1425 PRINT "Y = ";Y1

1440 STOP

3000 REM **************************************************

З010 REM * ЭТА ПОДПРОГРАММА ИСПОЛЬЗУЕТ

3020 REM * ИНТЕРПОЛЯЦИЮ ПО ЛАГРАНЖУ ДЛЯ

3030 REM * ПОЛУЧЕНИЯ ПРОМЕЖУТОЧНЫХ ЗНАЧЕНИЙ

3040 REM * ФУНКЦИИ ПО ТАБЛИЦЕ ЗНАЧЕНИЙ

3060 REM * ПАРАМЕТРЫ:

3080 REM * Х(I) – МАССИВ ЗНАЧЕНИЙ

3090 REM * АРГУМЕНТА

3110 REM * Y(I) – МАССИВ ЗНАЧЕНИЙ

3120 REM * ФУНКЦИИ

3140 REM * M – ДЛИНА МАССИВОВ X, Y

3160 REM * X1 – ВХОДНОЕ ЗНАЧЕНИЕ X

3180 REM * Y1 – НАЙДЕННОЕ

3190 REM * ЗНАЧЕНИЕ ФУНКЦИИ

3210 REM **************************************************

3330 Y1 = 0

3340 FOR J = 0 ТО М

3350 Z1 = 1.

3355 Z2 = 1.

3370 FOR I = 0 ТО М

3380 IF I = J GOTO 3410

3390 Zl = Zl * (X1 – X(I))

3400 Z2 = Z2 * (X(J) – X(I))

3410 NEXT I

3430 Yl = Yl + Y(J) * Zl / Z2

3440 NEXT J

3460 RETURN

4000 END

Основным преимуществом лагранжевой интерполяции являются ее простота и быстрота. Недостаток программы – для того чтобы найти интерполяционное значение для другого значения х, требуется перезапуск.

2.1. Ниже следует программа на бейсике, которая реализует для него метод наименьших квадратов. Для решения системы уравнений программа использует модификацию метода Холесского.

1000 RЕМ **************************************************

1010 RЕМ *ЭТА ПРОГРАММА НАХОДИТ ПОЛИНОМИАЛЬНУЮ

1020 REM * АППРОКСИМАЦИЮ НАБОРА ДАННЫХ МЕТОДОМ

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

1040 RЕМ **************************************************

1100 RЕМ " ЗАДАНИЕ ТАБЛИЦЫ "

1120 LET N = 9

1125 LET K1 = 5

1130 DIM X(10), Y(10)

1140 DIM A(6,7), C(6)

1150 PRINT «ЗНАЧЕНИЯ ВХОДНЫХ ДАННЫХ»

1160 PRINT “-------------------"

1170 PRINT “Т ЭНЕРГИЯ"

1180 PRINT « ГРАД С ДЖОУЛИ»

1190 PRINT -------------------"

1200 FOR I = 1 ТО N

1210 READ X(I), Y(I)

1220 PRINT X(I); TAB(10); Y(I)

1230 NEXT I

1240 DATA – 100., 4.06, – 75., 6.78

1250 DATA – 50., 9.49, – 25., 16.27

1260 DATA 0., 40.67, 25, 97.62

1270 DATA 50., 146.43, 75., 151.85

1280 DATA 100., 162.70

1290 PRINT "-----------------"

1310 REM ** НАХОЖДЕНИЕ КОЭФФИЦИЕНТОВ **

1330 GOSUB 3000

1360 REM ** ЗАПИСЬ ОТВЕТА "

1380 PRINT

1385 PRINT "ДЛЯ ПОЛИНОМА"

1390 PRINT "ПОРЯДКА "; K1 – 1

1400 PRINT "КОЭФФИЦИЕНТЫ РАВНЫ"

1410 PRINT "-----------------"

1420 FOR I = 1 TO K1

1430 PRINT "C(” ; I; ")="; C(I)

1440 NEXT I

1450 PRINT "-----------------"

1470 STOP

3000 REM ***********************************************

3010 REM НАХОЖДЕНИЕ ПОЛИНОМИАЛЬНОЙ АППРОКСИМАЦИИ

3020 REM ПО НАБОРУ ЗАДАННЫХ ТОЧЕК МЕТОДОМ

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

3050 REM РЕЗУЛЬТИРУЮЩИЙ ПОЛИНОМ БУДЕТ ИМЕТЬ ВИД:

3070 REM Y = С(1) + С(2) * X + С(3) * Х2 +

3090 RЕМ ПАРАМЕТРЫ:

3110 RЕМ Х(I) – МАССИВ ЗНАЧЕНИЙ АРГУМЕНТА НА ВХОДЕ

3120 RЕМ ОТ Х(1) ДО X(N)

3140 REM Y(I) – МАССИВ ЗНАЧЕНИЙ ФУНКЦИИ НА ВХОДЕ

3150 RЕМ ОТ Y(l) ДО Y(N)

3170 REM N – ЧИСЛО ЗАДАННЫХ ТОЧЕК

3190 RЕМ С(1) – МАССИВ ИСКОМЫХ КОЭФФИЦИЕНТОВ

3210 REM K1 – ЧИСЛО КОЭФФИЦИЕНТОВ

3230 RЕМ **************************************************

3530 RЕМ " ЗАГРУЗКА МАССИВА А "

3540 FOR L = 1 ТО K1

3550 FOR M = 1 ТО K1

3560 LET S1 = 0

3565 LET S2 = 0

3570 FOR I = 1 TO N

3580 LET S1 = S1 + Х(I)^(L – 1) * X(I)^(M – 1)

3590 LET S2 = S2 + Х(I)^(L – 1) * Y(I)

3600 NEXT I

3610 LET A(L,M) = S1

3620 LET A(L,K1 + 1) = S2

3630 NEXT M

3640 NEXT L

3660 REM ** РЕШЕНИЕ СИСТЕМЫ МЕТОДОМ ХОЛЕССКОГО

3700 LET R = K1

3705 LET С = K1 + 1

3710 GOSUB 4000

3730 RETURN

4000 REM **************************************************

4010 REM ЭТА ПОДПРОГРАММА ПРИМЕНЯЕТ МЕТОД

4020 RЕМ ХОЛЕССКОГО К МАТРИЦЕ ВИДА:

4040 REM A (R,C), ГДЕ R – СТРОКИ, С – СТОЛБЦЫ

4060 RЕМ С ЧАСТИЧНЫМ ВЫБОРОМ ГЛАВНОГО ЭЛЕМЕНТА

4070 RЕМ **************************************************

4130 RЕМ **МЕТОД ВЫБОРА ГЛАВНОГО ЭЛЕМЕНТА **

4160 FOR К = 1 ТО R

4190 RЕМ **НАХОЖДЕНИЕ ГЛАВНОГО ЭЛЕМЕНТА **

4210 LET Р = А(К,К)

4215 LET I1 = К

4220 FOR L = K+1 TO R

4230 IF ABS (A(L,K)) < ABS (P) THEN GOTO 4260

4240 LET P = A(L,K)

4250 LET I1 = L

4260 NEXT L

4270 IF I1 = К THEN GOTO 4380

4300 REM " ЗАМЕНА СТРОК **

4330 FOR L1 = 1 TO С

4340 LET Т = A(K,L1)

4350 LET А(К,L1) = А(ПДЛ)

4360 LET А(I1,L1) = Т

4370 NEXT L1

4380 NEXT К

4410 RЕМ ** ВЫЧИСЛЕНИЕ ПЕРВОЙ СТРОКИ **

4430 FOR J = 2 ТО С

4440 LET A(1,J) = A(1,J) / A(1,1)

4450 NEXT J

4480 REM ** ВЫЧИСЛЕНИЕ СТРОК **

4500 FOR L = 2 TO R

4530 REM " ВЫЧИСЛЕНИЕ L-ТОГО СТОЛБЦА **

4550 FOR I = L TO R

4560 LET S = 0.

4570 FOR К = 1 TO L – 1

4580 LET S = S + A(I,K) * A(K,L)

4590 NEXT К

4600 LET A(I,L) = A(I,L) – S

4610 NEXT I

4640 REM " ВЫЧИСЛЕНИЕ L-ТОЙ СТРОКИ **

4660 FOR J = L+1 TO С

4670 LET S = 0.

4680 FOR К = 1 TO L -1

4690 LET S = S + A(L,K) * A(K,J)

4700 NEXT К

4710 LET A(L,J) = (A(L,J) – S) / A(L,L)

4720 NEXT J

4730 NEXT L

4760 REM *ПОЛУЧЕНИЕ ЗНАЧЕНИЯ С(I) ОБРАТНОЙ ПОДСТАНОВКОЙ 4780 \

4790 LET C(R) = A(R,C)

4800 FOR M = 1 TO R – 1

4810 LET I = R – M

4820 LET S = 0.

4830 FOR J = 1 + 1 TO R

4840 LET S = S + A(I,J) * C(J)

4850 NEXT J

4860 LET C(I) = A(I,C) – S

4870 NEXT M

4880 RETURN

5000 END