함수의 로컬 최대 값을 찾으려면 fminsearch를 사용하고 싶습니다.fminsearch를 사용하여 로컬 최대 값을 찾는 방법은 무엇입니까?
fminsearch를 사용하여 함수의 음수 반환 값에 대한 "검색"을 사용하여 최대 값을 찾을 수 있습니까? 예를 들어
: 그것은 가능
function f = myfun(x,a)
f = x(1)^2 + a*x(2)^2;
a = 1.5;
x = fminsearch(@(x) -1 * myfun(x,a),[0,1]);
인가?
갱신 1 : 내 질문이 명확 (아래 몇 가지 의견을 다음) 만드는 정교한하기 위해서 - 난이 업데이트 추가 해요 : 그렇게하는 것이 가능하다면 요구에 의해
을, 나는 그것이 인 의미 fminsearch
함수의 올바른 사용 - fminsearch
을 사용하여 최대를 찾으려면 의도 한 용도입니까?
갱신 2 :에 대한 같은 질문 적 관심 - 아래의 정답 외에도이 여기 https://www.mathworks.com/help/matlab/math/optimizing-nonlinear-functions.html#bsgpq6p-10
극대화 기능 의 설명서입니다은 fminbnd 및 fminsearch 솔버는 목표를 최소화하려고 시도 기능. 최대화 문제가있는 경우 즉, 형태의 문제가있는 경우, g (x) = -f (x)를 정의하고 g를 최소화하십시오.
예를 들어, X = 5 부근
tan(cos(x))
의 최대 값을 찾기 위해 평가 :
[x fval] = fminbnd(@(x)-tan(cos(x)),3,8)
x = 6.2832
fval = -1.5574
최대가 1.5574합니다 ( 보고의 부정 fval), x = 6.2832에서 발생합니다. 이 대답은 5 자릿수 자릿수이므로 최대 값은 tan (1) = 1.5574이므로 x = 2π = 6.2832에서 발생합니다.
은 당신이 할 수있는 네, 또한입니다! – obchardon
그것이 가능한 것은 무엇을 의미합니까? 코드를 실행 했습니까? 그렇다면 작동합니까? 그렇지 않다면 오류가 무엇입니까? 그것이 작동한다면 당신은 무엇을 요구하고 있습니까? – Dan
내 말은 - fminsearch를 적절하게 사용하는 것입니까? fminsearch를 사용하여 최대를 찾는 용도입니까? – DeJaVo