함수 m=fenduanhanshu(t)
m=t.*(t>=0 & t1 & t2)
【설명】
Matlab에서 위 함수의 m=t.*(t>=0 & t1 & t2) 표현식의 연산 규칙은 불리언 표현식이 참일 때 불리언 표현식의 값이 1이 된다는 것입니다. , 작업에 참여하고, 그렇지 않으면 0을 취하고 작업에 참여합니다.
예를 들어 표현식의 (t>=0 & t=0 & t1 & t2)이 참이 아닌 경우 0을 사용하여 연산에 참여하므로 이때는 m=t.*1 +(-t+2) *0+0.1.*0=t.
Matlab의 이러한 디자인은 사용자가 과학적인 계산을 쉽게 수행하고, 코드 양을 줄이고, 개발 효율성을 향상시킵니다. 개인적으로 사용을 적극 권장합니다.
최대값은 최소값 문제로 변환될 수 있습니다. 예: % 최소값 f(x) = -x1*x2*x3을 계산합니다. 시작점은 x = [10;10;10]이며 제약 조건은 다음과 같습니다.
% 0 ≤ x1 + 2*x2 + 2*x3 ≤ 72.
% –x1–2*x2–2*x3 ≤ 0
% 1. 목적함수% 함수 f = myfun(x)
를 작성하세요.% f = -x(1) * x(2) * x(3);% 2. 제약 조건
% –x1–2*x2–2*x3 ≤ 0
% x1 + 2*x2 + 2*x3≤ 72
% 3. 제약조건 행렬을 구성합니다
% A = [-1 -2 -2 ...
;% 1 2 2];
% b = [0;72];% 4. 최적화 계산% x0 = [10;10;10];
% [x,fval] = fmincon(@myfun,x0,A,b);% 5. 결과
%x
% x =
% 24.0000
% 12.0000
% 12.0000
%
%
%fval
% fval =
% -3.4560e+03
%
%
% A*x-b
% 답변 =
-72
다변수 함수의 최적화 문제는 간단하게 작성할 수 없습니다.
MATLAB 자체는 최적화에 적합하지 않습니다. Lingo, 1stopt 등의 도구를 사용하는 것이 좋습니다.
다음은 1stopt 도구를 사용한 결과입니다.
1. 코드:
매개변수 x=[1.8,2,2],y=[.46,.90];
최소;
함수 (-256.926x+572.13)*(y*(0.867+0.037*y+0.05*x)*252-17.784*y);
2. 결과:
반복 횟수: 25
계산 시간(시:분:초:밀리초): 00:00:00:141
계산 중단 원인: 수렴 기준 도달
최적화 알고리즘: 공액 그래디언트 방법 + 일반 전역 최적화 방법
함수 표현: (-256.926*x+572.13)*(y*(0.867+0.037*y+0.05*x)*252-17.784*y)
목적함수 값(최소): 6170.8801616352
x: 2
년: 0.46
위 내용은 MATLAB에서 조각별 함수의 극한 지점을 실현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!