Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 4

Нахождение экстремумов методом равномерного поиска

23.11.2015, 13:12. Показов 2344. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Очень надеюсь на вашу помощь
Суть задания: Необходимо составить программу, которая будет находить экстремумы функции исходя из исходных данных
Алгоритм такой:
1) Задаём интервал, по которому будет происходить поиск (по иксу вроде как)
2) Далее вычисляем точки X(i) с помощью формулы X(i)=(A(нулевое)+i)*((B(нулевое)-A(нулевое))/(N+1) При этом i=1 .. N
3) Вычисляем значения функции в N найденных точках: F(x(i)), i=1..N
4) Среди точек x(i),i=1..N найти такую, в которой функция принимает минимальное значение
5) Вывод найденных экстремумов

Собственно по поводу программы
Задаем А, Б, N(кол-во повторений цикла вроде как и саму функцию
Как поставить цикл вроде понял, фор от еденицы до заданной Эн
Проблема в функции
Как можно вбить в TextBox функцию таким образом, чтобы он ее решил? Все попытки в результате приводят к тому что он просто читает функцию как текст. Пробовал с помощью вот этого фрагмента, но команды Set как таковой нет ._.
Цитата Сообщение от girya24kg Посмотреть сообщение
Private Sub Command1_Click()
Set objScript = CreateObject("MSScriptControl.ScriptCont rol")
objScript.Language = "VBScript"
On Error Resume Next
objScript.AddCode ("Function UserFunc(x)" & _
* * * * * * * * "UserFunc = " & Text1.Text & _
* * * * * * * * "End Function")
If Err Then MsgBox "Неверный синтаксис функции!": Exit Sub
For x = -10 To 10 Step 0.001
' * *Debug.Print x, objScript.Run("UserFunc", x)
* *Picture1.PSet (x * 1000, 2000 + 1000 * objScript.Run("UserFunc", x)), vbRred
Next x
End Sub
Другие варианты вообще никак не помогли. Кто может помочь разобраться? Если не со всей программой то именно с Текстбоксом
Заранее благодарен за помощь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2015, 13:12
Ответы с готовыми решениями:

Составить программу решения уравнение методом итерации (равномерного поиска) на Java
Составить программу решения уравнение методом итерации (равномерного поиска) x^2-sinx=0 на отрезке ,эпсилон = 0,01 вот схема

Нахождение компоненты сильной связности методом поиска в ширину
Нахождение компоненты сильной связности методом поиска в ширину Прошу помочь с описанием словесного алгоритма... нужно для...

Нахождение основного дерева в графе методом поиска в глубину.
УСЛОВИЕ: Разработайте программу нахождения основного дерева в графе методом поиска в глубину! Посмотрите и найдите ошибку пожалуйста! ...

2
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.11.2015, 01:29
как-то так
Visual Basic
1
2
3
4
5
6
7
8
9
    For p = -Xk / 2 To Xk / 2 Step 0.01
                st = Replace(Text1.Text, "x", p)
                st = Replace(st, ",", ".")
                On Error Resume Next
                q = objScript.Eval(st)
                If objScript.Error.Number > 0 Then GoTo 1
                Picture1.PSet (p + Xk / 2, Yk / 2 - q), RGB(0, 0, 255)
1
  Next p
Добавлено через 1 минуту
у меня в текстбоксе формула
sin(2*x)+tan(x/3)+10*x+x^2
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
24.11.2015, 10:57
Alex77755, а попробуйте вот такую функцию: exp(0.01*x)*sin(3*x)

Лучше заранее распарсить формулу:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Parse(Formula As String, Lex() As String)
    tmp$ = ""
    p% = 1
    For i% = 1 To Len(Formula)
        s$ = Mid$(Formula, i%, 1)
        Select Case (s$)
               Case "(", ")", "+", "-", "/", "*", "^"
                    If Len(tmp$) > 0 Then
                       Lex(p%) = tmp$
                       p% = p% + 1
                    End If
                    Lex(p%) = s$
                    tmp$ = ""
               Case Else
                    tmp$ = tmp$ + s$
        End Select
    Next i%
    If Len(tmp$) > 0 Then
       Lex(p%) = tmp$
       p% = p% + 1
    End If
End Sub
А тогда:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 Parse Text1.Text,Lex
 
 For p = -Xk / 2 To Xk / 2 Step 0.01
      St$=""
      for i%=1 to Ubound(Lex,1)
          if Lex(i%)="" then exit for
          if Lex(i%)="x" then
            St$=St$ & Cstr(p)
          else
            St$=St$ & Lex(i%)
          end if
      next i% 
      On Error Resume Next
      q = objScript.Eval(St$)
      If objScript.Error.Number > 0 Then GoTo 1
      Picture1.PSet (p + Xk / 2, Yk / 2 - q), RGB(0, 0, 255)
1
  Next p
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2015, 10:57
Помогаю со студенческими работами здесь

Нахождение экстремумов последовательностей
Определить наименьшее из значений A^2_i - A^2_{i-1} Прошу помочь; желателен еще и алгоритм. Спасибо.

Нахождение экстремумов числового ряда
Ребята доброго времени суток, нужна ваша помощь в составлении программы, сам вообще не понимаю как ее сделать для диплома. нахождение...

Нахождение экстремумов в одномерных массивах
Дан массив A ( N ) = ( a1, a2, …, aN ). Поменять местами наибольший и наименьший элементы массива.

Нахождение экстремумов вектора-строки
Доброго времени суток. У меня такой вопрос.Есть вектор строка(синусоида с высокочастотными искажениями),надо найти в нем точки...

Нахождение локальных экстремумов сложной кривой
Имеется массив данных по которым строится зависимость. Необходимо найти локальные максимумы их величину и количество. Пробовал использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru