Форум программистов, компьютерный форум CyberForum.ru

Создание ссылки на функцию и использования функции minimize_scalar - Python

Восстановить пароль Регистрация
 
ilya0610
1 / 1 / 0
Регистрация: 18.11.2013
Сообщений: 262
10.12.2016, 08:09     Создание ссылки на функцию и использования функции minimize_scalar #1
Здравствуйте, вопрос такой, как создать ссылку на функцию, в которой лежат некоторое количество функций и потом полученную функцию использовать, для применения minimize_scalar для максимизации по параметру L?
Вот пример самой функции
Python
1
2
3
4
5
6
7
8
9
def find_Length(L):
    n = 40
    H = 3
    nodes_all = node(n, L, H)
    el = elements(n)
    K = matrix_K(nodes_all, el)
    smech = force(K, nodes_all,L,n)
    stresses = find_stresses(nodes_all,smech,el)
    return (-1)*(abs(max(stresses)))
Создание ссылки:
Python
1
2
def find_L(L):
    return find_Length
Использование функции для максимизации:
Python
1
2
res = minimize_scalar(find_L, bounds = (1, 8), method='bounded')
print(res)
Только почему-то еще вылетает ошибка при использование minimize_scalar, с чем это может быть связано?
TypeError: unorderable types: function() <= function()
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2016, 08:09     Создание ссылки на функцию и использования функции minimize_scalar
Посмотрите здесь:

Создание функции для использования в виде Y = Fn(X)
Пример использования внешней ссылки в функции ДВССЫЛ MS Excel
C++ Ссылки & функции(Создать функцию, вычисляющую максимальный и минимальный элементы вектора)
Создание ссылки и возврат из функции C++
C++ Builder Создание ссылки на функцию
Assembler Создание DLL и использования его в математической функции
C++ Создать функцию вычисления степени числа с показателем (без использования функции pow)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vrm2
109 / 87 / 15
Регистрация: 03.12.2015
Сообщений: 132
Завершенные тесты: 1
12.12.2016, 00:59     Создание ссылки на функцию и использования функции minimize_scalar #2
Не совсем понятно, чего Вы хотите получить.

Функция, передаваемая в minimize_scalar должна возвращать скаляр. Поэтому следует передавать непосредственно функцию find_Length.

Либо можно исправить фукцию find_L, чтобы она возвращала скаляр. При этом новая функция может использовать любые другие функции. Но нужно вызвать их, а не возвращать ссылку на функции.

Python
1
2
def find_L(L):
    return find_Length(L) # возвращаем результат find_Length, а не саму функцию
ilya0610
1 / 1 / 0
Регистрация: 18.11.2013
Сообщений: 262
12.12.2016, 08:45  [ТС]     Создание ссылки на функцию и использования функции minimize_scalar #3
vrm2, у меня уже получилось, получилось вот так
Python
1
2
res = minimize_scalar(lambda L: find_Length(L), bounds = (1, 8), method='bounded')
print(res)
vrm2
109 / 87 / 15
Регистрация: 03.12.2015
Сообщений: 132
Завершенные тесты: 1
12.12.2016, 08:49     Создание ссылки на функцию и использования функции minimize_scalar #4
Можно и так:
Python
1
minimize_scalar(find_Length, bounds = (1, 8), method='bounded')
Yandex
Объявления
12.12.2016, 08:49     Создание ссылки на функцию и использования функции minimize_scalar
Ответ Создать тему
Опции темы

Текущее время: 15:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru