Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

최적화 라이브 편집기 작업

최적화 라이브 편집기 작업이란?

최적화 라이브 편집기 작업은 fminbnd, fminsearch, fzerolsqnonneg 솔버에 대한 시각적 인터페이스를 제공합니다. 작업을 시작하려면 새 라이브 스크립트 버튼을 클릭하십시오. 그런 다음 삽입 탭을 클릭하고 작업 > 최적화를 선택합니다.

Optimize Live Editor task.

다변수 비선형 함수 최소화하기

이 예제에서는 최적화 라이브 편집기 작업을 사용하여 함수 f(x,y)=100(yx2)2+(ax)2을 최소화하는 방법을 보여줍니다(변수 a = π, 최적화 라이브 편집기 작업 사용).

유사한 최적화 문제를 설명하는 비디오는 How to Use the Optimize Live Editor Task를 참조하십시오.

  1. 탭의 파일 섹션에서 새 라이브 스크립트 버튼을 클릭합니다.

  2. 최적화 라이브 편집기 작업을 삽입합니다. 삽입 탭을 클릭한 다음 코드 섹션에서 작업 > 최적화를 선택합니다.

    Insert task Optimize

  3. 문제 데이터 입력에 사용하기 위해 섹션 나누기 버튼을 클릭합니다. 작업 위와 아래에 새 섹션이 나타납니다.

  4. 최적화 작업 위 섹션에서 다음 코드를 입력합니다.

    a = pi;
    x0 = [-1 2];
  5. 이 변수를 작업 공간에 배치하려면 Ctrl+Enter를 누르십시오.

  6. 작업의 문제 유형 지정 섹션에서 목적 함수 > 비선형 버튼을 클릭하고 제약 조건 > 제약 없음 버튼을 클릭합니다. 작업에 권장되는 솔버가 fminsearch라고 표시됩니다.

    참고

    Optimization Toolbox™가 있는 경우 이때 권장되는 솔버는 다르게 나타납니다. fminsearch를 선택하여 예제를 진행합니다.

  7. 문제 데이터 선택 섹션에서 목적 함수 > 로컬 함수를 선택한 다음 새로 만들기 버튼을 클릭합니다. 함수 스크립트가 작업 아래의 새 섹션에 나타납니다. 만들어진 코드를 편집하여 다음의 주석 없는 라인을 포함하도록 합니다.

    function f = objectiveFcn(optimInput,a)
    x = optimInput(1);
    y = optimInput(2);
    f = 100*(y - x^2)^2 + (a - x)^2;
    end
  8. 문제 데이터 선택 섹션에서 objectiveFcn을 로컬 함수로 선택합니다.

  9. 문제 데이터 선택 섹션의 함수 입력값에서 최적화 입력값 > optimInput고정 입력값: a > a를 선택합니다.

    Local function objectiveFcn, optimization input optimInput, fixed input a

  10. 초기점(x0) > x0을 선택합니다.

  11. 진행률 표시 섹션에서 플롯에 대해 목적 함수 값을 선택합니다.

  12. 솔버를 실행하려면 작업 창 오른쪽 상단에 있는 옵션 버튼을 클릭하고 섹션 실행을 선택하십시오.

    Run Section

    다음 플롯이 나타납니다.

    Plot showing values decreasing from 120 to 4e-11 in fewer than 150 iterations

  13. 해에 해당하는 점을 보려면 최적화 작업의 맨 위를 확인하십시오.

    Variables solution and objectiveValue are returned

    solutionobjectiveValue 변수가 작업 공간에 반환됩니다. 변수 값을 보려면 작업 아래에 섹션 나누기를 삽입하고 다음 코드를 입력하십시오.

    disp(solution)
    disp(objectiveValue)
  14. Ctrl+Enter를 눌러 섹션을 실행합니다.

    disp(solution)
        3.1416    9.8696
    disp(objectiveValue)
       3.9946e-11

스칼라 방정식 풀기

이 예제에서는 최적화 라이브 편집기 작업을 사용하여 cos(x) = x인 점 x를 찾는 방법을 보여줍니다.

  1. 탭의 파일 섹션에서 새 라이브 스크립트 버튼을 클릭합니다. 라이브 스크립트에 다음 코드 라인을 입력합니다.

    fun = @(x)cos(x) - x;
    x0 = 0;

    첫 번째 라인은 익명 함수 fun을 정의하는데, 이 함수는 cos(x) = x인 점 x에서 값 0을 취합니다. 두 번째 라인은 초기점 x0 = 0을 정의하며 여기서 fzero가 해 탐색을 시작합니다.

  2. Ctrl+Enter를 눌러 이들 변수를 MATLAB® 작업 공간에 넣습니다.

  3. 최적화 라이브 편집기 작업을 삽입합니다. 삽입 탭을 클릭한 다음 코드 섹션에서 작업 > 최적화를 선택합니다.

  4. 작업의 문제 유형 지정 섹션에서 솔버 > fzero를 선택합니다.

  5. 문제 데이터 선택 섹션에서 목적 함수 > 함수 핸들을 선택한 다음 fun을 선택합니다. 초기점(x0) > x0을 선택합니다.

    fzero with choices made

  6. 진행률 표시 섹션에서 플롯에 대해 목적 함수 값을 선택합니다.

    Plot function is Objective value.

  7. Ctrl+Enter를 눌러 솔버를 실행합니다.

    Plot of solution process, seven iterations with final five all nearly zero.

  8. 해 값을 보려면 삽입 탭에서 섹션 나누기 버튼을 클릭하여 작업 아래 새 섹션을 삽입하십시오. 새 섹션에서 solution을 입력하고 Ctrl+Enter를 누릅니다.

    solution
    solution = 0.7391

참고 항목

| |

관련 항목