Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Численное дифференцирование и интегрирование. Численное дифференцирование для равномерно расположенных узлах с интерполяцией реализуется следующими формулами (для 3Стр 1 из 3Следующая ⇒
Численное дифференцирование для равномерно расположенных узлах с интерполяцией реализуется следующими формулами (для 3. 4 и 5 узлов):
- центральная точка и от неё , где - шаг узлов. Формулы различной точности для первой производной:
Формулы численного дифференцирования (производные в центральном узле)
Для заданных формул представлена программа на QBasic 4.5
5 CLS 10 np = 6: DIM ct(np) 11 DIM st0(10) 20 ct(0) = 6.235: ct(1) = 1.7777: ct(2) = 2.8888: ct(3) = 3.1111 30 ct(4) = 7.3333: ct(5) = 1.555: ct(6) = 9.125 ' FOR i = 0 TO 6: PRINT " "; ct(i): NEXT i 40 DEF fnA (x) 50 p = 0: FOR i = 0 TO 6: p = p + ct(i) * x ^ i: NEXT i 60 fnA = p 70 END DEF ' 80 DEF fnB (x) 90 p = 0: FOR i = 1 TO 6: p = p + ct(i) * i * x ^ (i - 1): NEXT i 100 fnB = p 110 END DEF ' 120 DEF fnC (x) 130 p = 0: FOR i = 2 TO 6: p = p + ct(i) * i * (i - 1) * x ^ (i - 2): NEXT i 140 fnC = p 150 END DEF ' 160 x0 = 1.5: x1 = 1.55: h =.2 170 w = (x1 - x0) / h ' 180 t = x0 - 2 * h: y1 = fnA(t) 190 t = x0 - h: y2 = fnA(t) 200 t = x0: y3 = fnA(t) 210 t = x0 + h: y4 = fnA(t) 220 t = x0 + 2 * h: y5 = fnA(t) ' 230 R1 = w -.5: R2 = -2 * w: R3 = w +.5 240 DY3 = (R1 * y2 + R2 * y3 + R3 * y4) / h 250 PRINT " x1 = "; x1; " DY3 = "; DY3; "; toch = "; fnB(x1); " " 260 z1 = -(3 * w ^ 2 - 6 * w + 2) / 6: z2 = (3 * w ^ 2 - 4 * w - 1) / 2 270 z3 = -(3 * w ^ 2 - 2 * w - 2) / 2: z4 = (3 * w ^ 2 - 1) / 6 280 DY4 = (z1 * y2 + z2 * y3 + z3 * y4 + z4 * y5) / h 290 PRINT " x1 = "; x1; " DY4 = "; DY4; " toch = "; fnB(x1) 300 u1 = (2 * w ^ 3 - 3 * w ^ 2 - w + 1) / 12 310 u2 = -(4 * w ^ 3 - 3 * w ^ 2 - 8 * w + 4) / 6 320 u3 = (2 * w ^ 3 - 5 * w) / 2 330 u4 = -(4 * w ^ 3 + 3 * w ^ 2 - 8 * w - 4) / 6 340 u5 = (2 * w ^ 3 + 3 * w ^ 2 - w - 1) / 12 350 DY5 = (u1 * y1 + u2 * y2 + u3 * y3 + u4 * y4 + u5 * y5) / h 360 PRINT " x1 = "; x1; " DY5 = "; DY5; " toch = "; fnB(x1) ' 370 DZ5 = (-y5 + 8 * y4 - 8 * y2 + y1) / 12 / h 380 PRINT " x0 = "; x0; " DZ5 = "; DZ5; " toch = "; fnB(x0) 381 D2Y3 = (y4 - 2 * y3 + y2) / h / h 390 D2Y5 = (-y5 + 16 * y4 - 30 * y3 + 16 * y2 - y1) / 12 / h / h 400 PRINT " x0 = "; x0; " D2Y3 = "; D2Y3; " D2Y5 = "; D2Y5; " toch = "; fnC(x0) ' 410 FOR i = 0 TO 10: st(i) = 0!: NEXT i 420 xp = x0 - 3 * h 430 FOR k = 0 TO 6: t = xp + h * k: st0(k) = fnA(t): NEXT k 440 DP7 = (st0(6) - 9 * st0(5) + 45 * st0(4) - 45 * st0(2) + 9 * st0(1) - st0(0)) / 60 / h 450 PRINT " x0 = "; x0; " DP7 = "; DP7; " toch= "; fnB(x0) ' 460 D2P7 = (2 * st0(6) - 27 * st0(5) + 270 * st0(4) - 490 * st0(3) + 270 * st0(2) - 27 * st0(1) + 2 * st0(0)) / 180 / h ^ 2 470 PRINT " x0 = "; x0; " D2P7 = "; D2P7; " toch= "; fnC(x0) 480 END
|