![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mfuntik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 21.2.2012 Где: Беларусь Репутация: нет Всего: нет |
Здравствуйте. Необходима помощь!
Есть задача: Спроектировать призматическую емкость без крышки, дно которого имеет форму равностороннего треугольника и объемом 1 куб.м. так, чтобы на ее изготовление было израсходовано как меньше листового материала. Решила эту задачу методом Лагранжа в Маткаде. Не могу написать её на С++. Заранее спасибо за ответ. |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
А что тут можно вообще в чем-то писать?
Пусть сторона основания равна x, высота призмы - h. Прощадь основания равна S=sqrt(3)/4*x^2, общая площадь поверхности S+3*x*h, объем S*h=1 (все для простоты считаем в метрах). Отсюда общая площадь S+3*x/S. Дифференцируем ее по x и приравниваем производную к нулю (это минимум, поскольку при x->0 и x->infty результат очевидно уходит на +infty). Итого получаем уравнение x^3=8. Итого x=2 метра, h=1/sqrt(3), т.е. примерно 0.58 метра. Все. Места для применения C++, извините, в упор не видно. |
|||
|
||||
| mfuntik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 21.2.2012 Где: Беларусь Репутация: нет Всего: нет |
Да я сама прекрасно понимаю, что программно решать её нет никакого смысла! Но таково задание, к сожалению((
Достаточно найти уравнение площади поверхности, от неё 2 производных (по x и y) и одно ограничение по объему... Но... нужно на с++((( |
|||
|
||||
| Фантом |
|
||||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
Так что именно надо делать-то? Можно тупо насчитать сетку значений площади поверхности и объема для всевозможных вариантов стороны основания и высоты, и найти минимум площади при равном единице объеме. Можно сделать более разумную задачу, выразив площадь через одну переменную, после чего численно найти минимум (опять-таки - как? перебором? градиентным спуском? еще как-то?). Можно аналитически найти производную, приравнять к нулю и численно решить уравнение (совсем смешно, но тоже можно, причем тоже разными методами). Проблема в том, что задача совершенно тривиальна, поэтому непонятно, в каком месте следует остановиться и отключить мозг. По-хорошему, автор задания должен был бы это сообщить. Ну вот Вам, например, наиболее тупой вариант - полный перебор по двупараметрической сетке.
|
||||
|
|||||
| mfuntik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 21.2.2012 Где: Беларусь Репутация: нет Всего: нет |
Вы знаете, в этом и вся тупость, что задача математически на листке решается за 5 минут. Но требуют нарисовать ответ на С++ - приходится исполнять.
Огромное спасибо вам за вариант решения! По мне, так для этой задачи этого вполне достаточно! Ещё раз большое спасибо! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |