Помощь - Поиск - Пользователи - Календарь
Полная версия: Лабораторная работа по информатике (Visual Basic) > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Bigben
Помогите, пожалуйста, правильно завершить лаб. работу. Задание ниже :

Изображение

Вот мой текст программы, который должен быть дополнен после места, выделенным красным. Там насколько я знаю нужно использовать точность, которую я ввожу, но как это сделать ? Подскажите, пожалуйста. Программа - Visual Basic 6

Private Sub Form_Load()
t = 0.1
For i = 1 To 6
Combo1.AddItem (t)
t = t / 10
Next
Combo1.Text = Combo1.List(0)
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "exit"
End
Case "run"
1:
m = Slider1.Value
Ii1 = 0
iter = 1
If Combo1.Text = Combo1.List(0) Then t = 0.1
If Combo1.Text = Combo1.List(1) Then t = 0.01
If Combo1.Text = Combo1.List(2) Then t = 0.001
If Combo1.Text = Combo1.List(3) Then t = 0.0001
If Combo1.Text = Combo1.List(4) Then t = 0.00001
If Combo1.Text = Combo1.List(5) Then t = 0.000001
h = (1.5 - 0.5) / m
2: For x = 1 To m - 1
Ii1i = h / (Cos(x) ^ 2 + Exp(x) * Abs(x + Log(x)))
Ii1 = Ii1 + Ii1i
Next
If Abs(Ii1i) > t Then
h = h / 2

End If

Label7.Caption = Str(Ii1)
Case "rect"
MsgBox ("Метод выбран.")
Case "trap"
MsgBox ("Выбранный метод не поддерживается.")
Case "simpson"
MsgBox ("Выбранный метод не поддерживается.")
Case "help"

End Select
End Sub
Vahappaday
можно задание перезалить? радикал упал чегой-то...
Vahappaday
вообще-то неулучшаемая оценка погрешности для метода прямоугольников рассчитывается через максимум второй производной на интервале интегрирования...
но 3-я производная... да и вторая.. тут будут очень забавные, посему предлагаю оценить через значение максимального прямоугольника. То есть максимальное абсолютное значение функции*величину шага должно быть меньше погрешности. При соблюдении такого условия заданная точность будет точно соблюдена.
Bigben
Хм, а могли бы вы показать как это сделать ?
В плане как код доделать?
Vahappaday
Такс.... значение функции на заданном промежутке не превышает 1.0457.
Если кто-то из математиков поможет найти абсолютный максимум (он же единственный локальный) было бы здорово.
Но будем исходить из этого.
Функция строго положительна на заданном промежутке, отсюда можем сказать, что ошибка для любого из прямоугольников не будет превышать величины h*1.0457.
Отсюда получаем h*1.0457<=t*(1/1.0457).
h = t/(1.0457^2).
Таким образом мы нашли максимально допустимый шаг.
Находим целое количество шагов и округляем его вверх.
m = -Int(-1/h) '-Int(-x) - это округление вверх в VB.
Для такого количества шагов рассчитываем новую величину шага
h=1/m
Вот с этим шагом и рассчитываем. Дальше разберетесь?

Осторожно, у меня тут в многих местах единички только потому, что у Вас промежуток равен 1.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.