Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
1

Оптимизация методом покоординатного спуска

22.12.2014, 13:20. Просмотров 1573. Ответов 26
Метки нет (Все метки)

код программы есть. осталось найти минимизируемую функцию.
Бункер для хранения зерна, для его лучшей сохранности, должен иметь форму усеченного конуса. Основание изготавливается из плит стоимостью 100 руб/м2, а остальная часть (боковые стенки) изготавливается из листового металла стоимостью 150 руб/м2. Дать модель оптимальной конструкции бункера для хранения 10 м3 зерна, обеспечивающую минимальную стоимость его изготовления.

Добавлено через 21 минуту
вот все, что я сделала:
S=pi*r1^2*100+pi*(r1+r2)*l*150=pi*r1^2*100+pi*(r1+r2)*sqrt((r2-r1)^2+h^2)*150 - стоимость но без учёта по объёму равному 10м3.
Есть мысли, что нужно как-то всё в этой формуле выразить через объём. Но вот как, это вопрос, который не даёт покоя.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2014, 13:20
Ответы с готовыми решениями:

Оптимизация методом покоординатного спуска
clear all; clc; format long; g = 0.5; % постоянная шага d = 0.01; % дельта % Начальная точка...

Оптимизация методом покоординатного спуска (Гаусса-Зейделя)
Есть рабочий вариант: clear all; clc; % Значения коэффициентов c1 = -2; c2 = -1; c12 = 1; ...

Оптимизации методом покоординатного спуска
Есть код: clear all; clc; g = 0.05; % постоянная шага d = 0.01; % дельта % Начальная точка x1...

Минимизация функции методом покоординатного спуска
Приветствую всех, кто зашел в эту тему. Друзья, прошу помочь разобраться с реализацией метода...

Метод покоординатного спуска
Друзья, имеется матлабовский файл, в котором реализован прогноз на базе нечетких лингвистических...

26
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 13:56 2
А формула объема?
0
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 14:01  [ТС] 3
V усеченного конуса=1/3* π* h*(r1 в квадрате +r1·r2+r2 в квадрате)
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 14:07 4
этот объем V по условию равен 10 м3
вот у нас уже есть два выражения неприятность в том, что у усеченного конуса 3 параметра: r1, r2 и h может что-то зафиксировать, т.е. принять r1 = 1, а от этого искать значения двух других параметров?
0
22.12.2014, 14:07
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 14:23  [ТС] 5
для чего два выражения? нам же нужна одна функция
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 14:30 6
я решил выразить одно через другое, подставить, найти производную и приравнять нулю... но похоже перемудрил
Значение объема задает ограничение на значения параметров. из него можно выразить h, подставить в формулу S, получить ф-цию от r1, r2 и искать минимум покоординатным спуском Смекаешь?
0
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 14:30  [ТС] 7
нам нужно через объем выразить эти параметры и подставить их в формулу площадей.
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 14:32 8
*у тебя формула не площади, а стоимости, т.к. оно уже умножено на цену. Вот это и нужно минимизировать.
0
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 14:36  [ТС] 9
не, ну какая окончательная функция в итоге получается?

Добавлено через 3 минуты
из формулы объема выразила h, подставила в формулу S, получила функцию от r1, r2 , умножила на стоимость боковой поверхности . прибавила площадь нижнего основания умноженную на его стоимость. а дальше не знаю)
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 14:50 10
вот, гляди
*только ты забыла стоимость второго основания
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
clear, clc
 
syms r1 r2 h
 
P = pi*r1^2*100 + pi*r2^2*100 + pi*(r1+r2)*sqrt((r2-r1)^2+h^2)*150;
h0 = solve(1/3*pi*h*(r1^2+r1*r2+r2^2)-10 ,h) % выражаем h из объема
P = subs(P,h, h0) % подставляем в формулу цены
 
F = @(x) double( subs(P,[r1 r2],x.*(x>0)) ); % функция
 
ezsurf(P,[0 5 0 5]) % рисуем
R = fminsearch(F,[3, 3]);
R1 = R(1)
R2 = R(2)
h = double(subs(h0,[r1 r2],R)) % высота
Оптимизация методом покоординатного спуска


НО при расчете получилось, что R1=R2, т.е. у нас не конус, а цилиндр! можно задать условие, например R1 = 5*R2 и найти соответствующие значения
0
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 14:52  [ТС] 11
но нам не нужно учитывать верхнее основание)
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 14:54 12
Азалия96, почему? дождик будет капать ^___^"
*если так, то убери кусочек pi*r2^2*100 в строке 5, тогда радиусы будут немного разными
0
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 15:24  [ТС] 13
это уже готовый код? или что-то надо будет изменить?
и то есть не нужно высчитывать производные?

Добавлено через 26 минут
для реализации этого метода , мне из функции нужны взять коэффициенты. какие в данном случае коэффициенты?
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 16:21 14
коэф-тов нет и не будет
а производные можно рассчитать численно

Добавлено через 11 минут
если тебе удобней работать с функцией вида F(x1,x2), то можно записать:
F = @(x1,x2) double( subs(P,[r1,r2],[x1,x2]) );
тогда производная в точке [xk1,xk2] по первой переменной:
dFdr1 = (F(xk1+h,xk2)-F(xk1-h,xk2))/(2*h);
а по второй:
dFdr2 = (F(xk1,xk2+h)-F(xk1,xk2-h))/(2*h);
гдe h=1e-8; - очень малое приращение.
0
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 16:38  [ТС] 15
Вы вроде как использовали функцию из библиотеки, а мне самой надо реализовать этот алгорит оптимизации)
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 17:46 16
да, я использовал fminsearch, чтобы показать возможность решения а ты вместо нее поставь свой алгоритм
0
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 20:31  [ТС] 17
у меня есть на примере 1 код. но там есть коэффициенты, дельта, и постоянный шаг. еще координаты сохраняются в массиве.

Добавлено через 2 часа 38 минут
а почему вы не высчитываете производную?
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 21:15 18
формула производной будет длинной
я тебе вывел функцию, а метод поиска минимума роли не играет. Дельта и шаг подбираются опытным путем
0
Азалия96
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
22.12.2014, 21:54  [ТС] 19
то есть, я могу воспользоваться вашим методом?
0
Зосима
4963 / 3335 / 313
Регистрация: 02.04.2012
Сообщений: 6,220
Записей в блоге: 16
Завершенные тесты: 1
22.12.2014, 22:45 20
можешь
если не получится, я подскажу
0
22.12.2014, 22:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2014, 22:45

Метод покоординатного спуска
Помогите кто-нибудь реализовать метод покоординатного спуска на MATLAB вот некоторые материалы...

Оптимизация методом Ньютона (нахождение точки минимума). Оптимизация кода
MATLAB только начал осваивать. Попытался реализовать нахождение точки минимума методом Ньютона...

Минимизация функции методом градиентного спуска с дроблением шага. Ошибка!
Уважаемые товарищи! Не могу справиться с задачей( Минимизация функции методом градиентного спуска с...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru