0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
1 | |
Оптимизация методом покоординатного спуска22.12.2014, 13:20. Показов 3529. Ответов 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
|
22.12.2014, 13:20 | |
Ответы с готовыми решениями:
26
Оптимизация методом покоординатного спуска Оптимизация методом покоординатного спуска (Гаусса-Зейделя) Оптимизации методом покоординатного спуска Минимизация функции методом покоординатного спуска |
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 14:01 [ТС] | 3 |
V усеченного конуса=1/3* π* h*(r1 в квадрате +r1·r2+r2 в квадрате)
0
|
22.12.2014, 14:07 | 4 |
этот объем V по условию равен 10 м3
вот у нас уже есть два выражения неприятность в том, что у усеченного конуса 3 параметра: r1, r2 и h может что-то зафиксировать, т.е. принять r1 = 1, а от этого искать значения двух других параметров?
0
|
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 14:23 [ТС] | 5 |
для чего два выражения? нам же нужна одна функция
0
|
22.12.2014, 14:30 | 6 |
я решил выразить одно через другое, подставить, найти производную и приравнять нулю... но похоже перемудрил
Значение объема задает ограничение на значения параметров. из него можно выразить h, подставить в формулу S, получить ф-цию от r1, r2 и искать минимум покоординатным спуском Смекаешь?
0
|
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 14:30 [ТС] | 7 |
нам нужно через объем выразить эти параметры и подставить их в формулу площадей.
0
|
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 14:36 [ТС] | 9 |
не, ну какая окончательная функция в итоге получается?
Добавлено через 3 минуты из формулы объема выразила h, подставила в формулу S, получила функцию от r1, r2 , умножила на стоимость боковой поверхности . прибавила площадь нижнего основания умноженную на его стоимость. а дальше не знаю)
0
|
22.12.2014, 14:50 | 10 | |||||
вот, гляди
*только ты забыла стоимость второго основания
НО при расчете получилось, что R1=R2, т.е. у нас не конус, а цилиндр! можно задать условие, например R1 = 5*R2 и найти соответствующие значения
0
|
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 14:52 [ТС] | 11 |
но нам не нужно учитывать верхнее основание)
0
|
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 15:24 [ТС] | 13 |
это уже готовый код? или что-то надо будет изменить?
и то есть не нужно высчитывать производные? Добавлено через 26 минут для реализации этого метода , мне из функции нужны взять коэффициенты. какие в данном случае коэффициенты?
0
|
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
|
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 16:38 [ТС] | 15 |
Вы вроде как использовали функцию из библиотеки, а мне самой надо реализовать этот алгорит оптимизации)
0
|
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 20:31 [ТС] | 17 |
у меня есть на примере 1 код. но там есть коэффициенты, дельта, и постоянный шаг. еще координаты сохраняются в массиве.
Добавлено через 2 часа 38 минут а почему вы не высчитываете производную?
0
|
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 293
|
|
22.12.2014, 21:54 [ТС] | 19 |
то есть, я могу воспользоваться вашим методом?
0
|
22.12.2014, 22:45 | 20 |
можешь
если не получится, я подскажу
0
|
22.12.2014, 22:45 | |
22.12.2014, 22:45 | |
Помогаю со студенческими работами здесь
20
Метод покоординатного спуска Метод покоординатного спуска Оптимизация методом Ньютона (нахождение точки минимума). Оптимизация кода Минимизация функции методом градиентного спуска с дроблением шага. Ошибка! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |