|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.05.2008, 10:20 | #1 |
Регистрация: 19.05.2008
Сообщений: 6
|
VB6.0 График зависимости погрешности от количества отрезков интегрирования.
В чем косяк?=( От меня требовалось: Для двух методов построить на одном графике зависимость разности между точным решением, и результатом, полученным по методу (ось у), от количества разбиений N (ось х), N изменяется на интервале [ 10,200] с шагом 10.
Private Sub Command1_Click() Dim s As Double Dim h As Double Dim n As Long Dim n1 As Long a = Val(Form2.Text1.Text) b = Val(Form2.Text2.Text) Picture1.Scale (0, 60)-(215, -5) Picture1.Line (0, 0)-(215, 0) Picture1.Line (10, 0)-(10, 60) Label3.Visible = True Label4.Visible = True j = 0 For n = 10 To 200 Step 10 'Метод трапеций h = (b - a) / n s = 0 X1 = a For i = 1 To n - 1 X1 = X1 + h s = s + F(X1) Next F1 = h * (F(a) + F(b) + 2 * s) / 2 'Метод Симпсона n1 = 2 * n h = (b - a) / n1 s = 0 x = a C = 1 For i = 1 To n1 - 1 x = x + h s = s + (3 + C) * F(x) C = -C Next F2 = h * (F(a) + F(b) + s) / 3 'Точное решение F3 = Abs(Log(Log(b)) - Log(Log(a))) НИЖЕ - СОБСТВЕННО КУСОК, КОТОРОГО НЕ ПОНИМАЮ Et(j) = Abs(F1 - F3) * 100000 es(j) = Abs(F2 - F3) * 100000000 j = j + 1 Next n n = 10 For i = 0 To j Picture1.Line (n, Et(i))-(n + 10, Et(i + 1)), vbRed Picture1.Line (n, es(i))-(n + 10, es(i + 1)), vbBlue Picture1.Line (n, 0)-(n, -1.5) Picture1.Print n n = n + 10 If n = 210 Then Exit For Next For i = 0 To 60 Step 5 Picture1.Line (8, i)-(10, i) Picture1.Print i Next End Sub ЧТО ПОЛУЧАЕТСЯ...В приведенном коде метод трапеций заменили на метод левых прямоугольников. Зависимость метода Симпсона вычерчивается, а вторая получается вертикальной чертой с краю справа...Смущает...Не могу найти косяк!!Вопрос: Et(j) = Abs(F1 - F3) * 100000 es(j) = Abs(F2 - F3) * 100000000 Чем обусловлено количество этих нулей?Ведь если его поменять,существенно изменяется наклон графика... Последний раз редактировалось XenoS; 22.05.2008 в 10:41. |
22.05.2008, 10:22 | #2 |
Регистрация: 19.05.2008
Сообщений: 6
|
Модуль к моей программе
Public Et(200) As Double
Public es(200) As Double Public b As Integer Public a As Integer Public Function F(x) F = (Sin(x)) ^ 2 'Функция End Function Public Function Q(x) Q = (x - Sin(2 * x) / 2) / 2 'Производная End Function |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Литература в помощь при работе с базами данных | Speeker | БД в Delphi | 15 | 10.07.2014 09:39 |
Подсчитать количества знака в числе | valerij | Microsoft Office Excel | 5 | 17.08.2008 16:52 |
Подсчет количества и частоты | Ensoph | Помощь студентам | 6 | 08.05.2008 10:16 |
диапазон double и погрешности вычислений | ilyagoo | Общие вопросы C/C++ | 4 | 13.12.2007 17:29 |
Нахождение количества понедельников в XX веке | Omedus | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 28.11.2007 22:17 |