Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Программа интерполяции по формуле Лагранжа ⇐ ПредыдущаяСтр 4 из 4
CLS PRINT "Интерполяционная формула Лагранжа"
INPUT "Введите число точек N="; N
DIM X(N), F(N) FOR I = 0 TO N PRINT "[X("; I; "), F ("; I; : INPUT ")]="; X(I), F(I) NEXT I
SCREEN 9 'границы экрана LG = -20 'левая PG = 20 'правая NG = -20 'нижняя VG = 20 'веохняя WINDOW (LG, NG)-(PG, VG)
FOR I = 0 TO N PSET (X(I), F(I)) CIRCLE (X(I), F(I)), .1, 12 NEXT I
‘оси координат LINE (0, -10)-(0, 10) LINE (-10, 0)-(10, 0)
INPUT "вычислить значение функции для X = "; X INPUT "с точностью Toch = "; Toch
FOR J = 0 TO N - 1 FOR I = J + 1 TO N F(I) = ((X - X(J)) * F(I) - (X - X(I)) * F(J)) / (X(I) - X(J)) NEXT I NEXT J
PSET (X, F(N - 1)) CIRCLE (X, F(N - 1)), .1
F1 = F(N)
F1 = FIX(F1) + CINT((F1 - FIX(F1)) / Toch) * Toch
IF F1 > VG THEN LOCATE 3, 5: PRINT "Выход за верхнюю границу": GOTO 50 IF F1 < NG THEN LOCATE 3, 5: PRINT "Выход за нижнюю границу" 50 LOCATE 4, 5: PRINT "F"; "("; X; ") ="; F1
END
Решение систем линейных уравнений
Метод Гаусса.
Это метод решения системы линейных уравнений, состоящий в том, что последовательным исключением неизвестных систему
приводят к эквивалентной системе с треугольной матрицей:
Решение матрицы находят по рекуррентным формулам:
Дана система:
Построим определители
Результаты вычислений:
x 1 = 25,515 x 2 = 31,070 x 3 = 38,665 x 4 = -5,160
Программа решения системы линейных уравнений по методу Гаусса
CLS PRINT "Решение системы линейных уравнений по методу Гаусса" INPUT "Количество уравнений N = "; N
DIM A(N, N + 1), X(N)
PRINT "Ввод коэффициентов уравнений:" FOR I = 1 TO N FOR K = 1 TO N + 1 IF K = N + 1 THEN PRINT "правая часть:" PRINT "A ("; I; ","; K; : INPUT ")="; A(I, K) NEXT K NEXT I
INPUT "точность Toch = "; Toch
FOR I = 1 TO N FOR K = 1 TO N + 1 IF K = N + 1 THEN PRINT "правая часть:" PRINT "A ("; I; ","; K; ")="; A(I, K) NEXT K NEXT I
U = 0 10 U = U + 1: K = U 20 IF A(K, U) <> 0 THEN 30 K = K + 1: IF K <= N THEN 20 PRINT "система не определена" END
30 IF K = U THEN 40 FOR M = U TO N + l T = A(U, M) A(U, M) = A(K, M) A(K, M) = T NEXT M 40 FOR J = N + 1 TO U STEP -1 A(U, J) = A(U, J) / A(U, U) NEXT J M = N + 1 IF K + 1 > N THEN 50 FOR I = K + 1 TO N FOR J = U + 1 TO M A(I, J) = A(I, J) - A(I, U) * A(U, J) NEXT J NEXT I 50 IF U <> N THEN 10 FOR I = N TO 1 STEP -1 X(I) = A(I, M) IF I = 1 THEN 60 FOR K = I - 1 TO 1 STEP -1 A(K, M) = A(K, M) - A(K, I) * X(I) NEXT K 60 NEXT I
PRINT "Решение системы равно:" FOR I = 1 TO N X(I) = FIX(X(I)) + CINT((X(I) - FIX(X(I))) / Toch) * Toch PRINT "X ("; I; ")="; X(I) NEXT I
Оптимизация. Методы поиска для функции одной переменной
Дана целевая функция:
Вычислим функцию следующими методами:
Метод деления пополам Ответ: Х = 9,682417Е-02 F = 2,351603Е-05 CLS 10 PRINT "ВВЕДИТЕ ИНТЕРВАЛ" 'NPUT "(A, B)="; A, B ‘A = 0: B = 1 E1 = .00001 X = B: GOSUB 40: F1 = F: IF F = 0 THEN 50 X = A: GOSUB 40: IF F = 0 THEN 50 IF SGN(F1) = SGN(F) THEN GOTO 10 20 X = (A + B) / 2: GOSUB 40 IF SGN(F1) = SGN(F) THEN B = X: F1 = F: GOTO 30 A = X 30 IF ABS(A - B) > E1 THEN 20 X = (A + B) / 2: GOSUB 40: GOTO 50 40 F = -6 + 61 * X + 10 * X ^ 2: RETURN 50 PRINT "X ="; X: PRINT "F = "; F END
Метод простой итерации CLS 'INPUT "X ="; X ‘X = -1 E1 = .0000000001# N = 100 FOR i = 1 TO N GOSUB 500 IF (F - X) < X * E1 THEN 1000 X = F NEXT i PRINT " нет точности" STOP 500 F = -6 + 61 * X + 10 * X ^ 2 RETURN 1000 PRINT " X ="; X: END
Х = 9,682421Е-02
Метод хорд
INPUT "НАЧАЛЬНОЕ ПРИБЛИЖЕНИЕ X1=";X1 Е1=1Е—8 Н=1E—4 100 Х = Х1: GOSUB 500: Y = F Х = Х1+Н: GOSUB 500 Y = Y * Н / (F —Y) Х1 =Х1 — Y IF ABS (Y)>E1 THEN 100 Х = Х1: GOSUB 500 GOTO 1000 F = -6 + 61 * X + 10 * X ^ 2 RETURN 1000 PRINT "КОРЕНЬ. X="; X1 END
Х = 9,682424Е-02
|
Последнее изменение этой страницы: 2019-04-10; Просмотров: 189; Нарушение авторского права страницы