|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
||||||
Минимизация двумерным методом Ньютона Функции Химмельблау и Розенброка16.09.2017, 21:29. Показов 6992. Ответов 22
Доброго дня суток! Очень нужна ваша помощь! Необходимо минимизировать методом Ньютона функции Розенброка и Химмельблау , т.е.
Написал код,но для этих двух функций он не работает. Как его оптимизировать под эти функции? спасибо заранее4
0
|
||||||
| 16.09.2017, 21:29 | |
|
Ответы с готовыми решениями:
22
Минимизация Методом Ньютона уравнения с двумя переменными Нахождения максимума функции методом Ньютона Как найти максимум функции методом Ньютона? |
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
||||||
| 17.09.2017, 11:34 | ||||||
|
Ты что-то непонятное написал какие-то циклы страшные, там один цикл - итерации методом Ньютона, матрица 2 на 2 - ее легко инвертировать, функции хорошие, метод сходится с любого приближения, вот моя реализация. Только вывожу результат в файлы, а не на консоль. Может якобиан градиента проверить стоит ибо в спешке считал, но вроде все нормально сходится.
Поправил опечатку.
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 17.09.2017, 15:33 [ТС] | |
|
не компилится к сожалению...ошибок море выдал (
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|
| 17.09.2017, 15:43 | |
|
IcebergLife, Что за ошибки? Тут особо никаких ошибок быть не может.
1
|
|
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 17.09.2017, 15:47 [ТС] | |
|
ну вот пример :
23 cтрока ostream не является членом std, os необъявленный идентификатор, и тд... и так в многих строчка в основном что например os необъявленный идентификатор и endl,ofstream и ostream не является членом std
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|
| 17.09.2017, 15:53 | |
|
Если VS, добавь #include "stdafx.h" первой строчкой, может поможет
1
|
|
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 17.09.2017, 16:08 [ТС] | |
|
да я два инклуда добавил не помогает
#include "stdafx.h" #include <stdio.h> Добавлено через 1 минуту и добавил using namespace std; Добавлено через 1 минуту а все, спасибо. добавил в самое начало - заработало. Добавлено через 2 минуты еще вопрос. если мне нужно привязать к критерию остановы e<=0.1,0.01,0,001 , как это в программу внедрить? Добавлено через 9 минут еще вопрос. если мне нужно привязать к критерию остановы e<=0.1,0.01,0,001 , как это в программу внедрить?
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
||||||
| 17.09.2017, 16:14 | ||||||
|
Всмысле тебе нужно задавать значение e?
Тогда функция будет такой:
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 17.09.2017, 16:25 [ТС] | |
|
спасибо еще раз! большущее!
0
|
|
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 21.09.2017, 11:01 [ТС] | |
|
Дорогой друг,привет еще раз. Опять нужна твоя помощь. очень. по этому коду.
можно ли кроме точек x1 и x2,которые есть рассмотреть другие варианты? почему именно эти выбираются? когда я считал функцию розенброка параметр точности е не влияет вообще ни на что почему то... для функции Химмельблау ситуация аналогична и у этой функции 4 минимума и надо как то остальные рассмотреть... спасибо заранее
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|||||||
| 21.09.2017, 11:08 | |||||||
Теоретически тебе нужно приближенно найти точку вблизи нужного минимума и передать методу, он уточнит ее значение до заданного e. Как найти начальное значение - я не знаю.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 21.09.2017, 11:12 [ТС] | |
|
мб e не влияет потому что вообще элементы матрицы неправильно посчитаны? или исключено?
а как помимо функции розенброка посчитать это все для простой квадратичной функции (x1)^2 + (x2)^2 ?
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|||||||
| 21.09.2017, 11:33 | |||||||
|
Добавлено через 10 минут IcebergLife, вот смотри: я запускаю с другого начального приближения для химмельблау:
Iteration: 9 (x1,x2) = 3.58443 -1.84813 Functions value: 1.57772e-29 Т.е. метод Ньютона он только уточняет значения, начальное приближение нужно находить другим способом, можно просто перебирать из некоторой области пробные точки. Добавлено через 7 минут Я понял! Тебе нужно брать начальные приблоижения из разных координатных четвертей (x,x) (-x,x), (x,-x), (-x,-x) и ты получишь все точки! И самое главное исправь в функции newton_minimization строчку if(f.gradient().x1 <= e && f.gradient().x2 <= e) { на строчку if(fabs(f.gradient().x1) <= e && fabs(f.gradient().x2) <= e) {, это моя ошибка
0
|
|||||||
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 21.09.2017, 11:44 [ТС] | |
|
woldemas, да, e это точность и как я понимаю она должна влиять.... сейчас попробую пересчитать все.
и вопрос. можешь еще добавить в код для функции (x1)^2 + (x2)^2 такой же расчет? сделал бы сам да до сих пор не въезжаю как считать якобиана матрицу
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
||||||||||||
| 21.09.2017, 12:42 | ||||||||||||
|
Ну так и быть. Добавляешь этот класс:
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 22.09.2017, 11:39 [ТС] | |
|
Мне сказали что надо выбирать точки так...
Для Розенброка: одна вблизи минимума, вторая на противоположном крае дна оврага, по одной на склонах оврагов, одна удаленная от оврага точка, Для Химмельблау: по одной вблизи с каждым из минимумов, между каждой парой минимумов, в центре четырех минимумов, удаленная точка, 2. Не понимаю, что определяет точность е, на что она влияет, на координаты точки минимума, на значение ф-ции должна быть хочется заданная точность...т.е. Е=0.1 точно изменяется с десятков 0.001 с сотен и тд...
0
|
|
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 22.09.2017, 12:20 [ТС] | |
|
Вот во вложении скрин...ешка (точность ни на что не повлияла)..
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
||
| 22.09.2017, 12:58 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 18
|
|
| 22.09.2017, 13:04 [ТС] | |
|
Оно посути должно влиять например там про 0.1 3.100000 а при 0.001 3.1230000 ( это я пример привёл) мб это е как то по другому в коде нужно сделать . Примерно понимаю что но не понимаю как в коде реализовать
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|||||||
| 22.09.2017, 13:12 | |||||||
1
|
|||||||
| 22.09.2017, 13:12 | |
|
Помогаю со студенческими работами здесь
20
Ошибка в программе интерполяция функции методом Ньютона Интерполяция функции одной переменной методом Ньютона (Pascal -> C++) Минимизация функции методом ломаных Минимизация функции методом ломаных
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение/ Перевод
https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs
. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|