Вы можете использовать уже существующую функцию x = fminbnd(fun, x1, x2)
, которая дает вам мин для дескриптора функции fun
в диапазоне от x1
и x2
. Чтобы получить максимум, вы можете просто использовать отрицательный результат своего дескриптора функции.
Ваша функция может выглядеть так:
function [min, max] = fminmax(f, lowerbound, upperbound)
min = fminbnd(f, lowerbound, upperbound);
max = fminbnd(@(x) -f(x), lowerbound, upperbound);
end
Вы не хотите использовать ActionListener, потому что событие срабатывает только при нажатии кнопки. Вместо этого вы можете использовать ItemListener, чтобы событие генерировалось, когда элемент был выбран или отменен (нажав другой переключатель). Что-то вроде:
radioButton2.addItemListener( new ItemListener()
{
public void itemStateChanged(ItemEvent e)
{
JRadioButton button = (JRadioButton)e.getSource();
component1.setEnabled( button.isSelected() );
component2.setEnabled( button.isSelected() );
}
});