![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Bigben |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 22.9.2010 Город: Одесса Учебное заведение: Лучший) Вы: студент ![]() |
Помогите, пожалуйста, правильно завершить лаб. работу. Задание ниже :
(IMG:http://s57.radikal.ru/i155/1011/32/52a06bfd7a88t.jpg) Вот мой текст программы, который должен быть дополнен после места, выделенным красным. Там насколько я знаю нужно использовать точность, которую я ввожу, но как это сделать ? Подскажите, пожалуйста. Программа - 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 |
![]()
Сообщение
#2
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
можно задание перезалить? радикал упал чегой-то...
|
Vahappaday |
![]()
Сообщение
#3
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
вообще-то неулучшаемая оценка погрешности для метода прямоугольников рассчитывается через максимум второй производной на интервале интегрирования...
но 3-я производная... да и вторая.. тут будут очень забавные, посему предлагаю оценить через значение максимального прямоугольника. То есть максимальное абсолютное значение функции*величину шага должно быть меньше погрешности. При соблюдении такого условия заданная точность будет точно соблюдена. |
Bigben |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 22.9.2010 Город: Одесса Учебное заведение: Лучший) Вы: студент ![]() |
Хм, а могли бы вы показать как это сделать ?
В плане как код доделать? |
Vahappaday |
![]()
Сообщение
#5
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
Такс.... значение функции на заданном промежутке не превышает 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. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 28.5.2025, 22:46 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru