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

Python: научные вычисления

Войти
Регистрация
Восстановить пароль
 
ilya0610
1 / 1 / 0
Регистрация: 18.11.2013
Сообщений: 302
#1

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

10.12.2016, 08:09. Просмотров 233. Ответов 3
Метки нет (Все метки)

Здравствуйте, вопрос такой, как создать ссылку на функцию, в которой лежат некоторое количество функций и потом полученную функцию использовать, для применения 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
Посмотрите здесь:
Пример использования внешней ссылки в функции ДВССЫЛ MS Excel
C++ Builder Создание ссылки на функцию
Создание функции для использования в виде Y = Fn(X)
Assembler Создание DLL и использования его в математической функции
Создание ссылки и возврат из функции C++
C++ Создать функцию вычисления степени числа с показателем (без использования функции pow)
C++ Ссылки & функции(Создать функцию, вычисляющую максимальный и минимальный элементы вектора)
Visual Basic .NET решение задачи двумя способами без использования функции и с использованием функции
Вычислить x, без использования функции и с использованием функции Visual Basic .NET
C++ Записать функцию без использования указателей
Переписать функцию без использования библиотеки <stdarg.h> C (СИ)
C# Переписать функцию без использования битового сдвига

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vrm2
160 / 138 / 31
Регистрация: 03.12.2015
Сообщений: 226
Завершенные тесты: 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
Сообщений: 302
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
160 / 138 / 31
Регистрация: 03.12.2015
Сообщений: 226
Завершенные тесты: 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
Ответ Создать тему
Опции темы

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