Main Content

방정식 풀이를 위한 문제 기반 워크플로

참고

Optimization Toolbox™는 방정식 풀이를 위한 두 가지 접근법을 제공합니다. 이 항목에서는 문제 기반 접근법을 설명합니다. 솔버 기반 최적화 문제 설정에서는 솔버 기반 접근법을 설명합니다.

연립방정식을 풀려면 다음 단계를 수행하십시오.

  • eqnproblem을 사용해 equation problem 객체를 만듭니다. 문제 객체는 방정식을 정의하는 컨테이너입니다. equation problem 객체는 문제와, 문제 변수에 존재하는 범위를 정의합니다.

    예를 들어, 방정식 문제를 만듭니다.

    prob = eqnproblem;
  • optimvar을 사용하여 명명된 변수를 만듭니다. 최적화 변수는 방정식을 설명하는 데 사용하는 기호 변수입니다. 변수 정의에 범위를 포함합니다.

    예를 들어, 하한이 0이고 상한이 1'x'라는 변수로 구성된 15×3 배열을 만듭니다.

    x = optimvar('x',15,3,'LowerBound',0,'UpperBound',1);
  • 문제 변수에 방정식을 정의합니다. 예를 들어, 다음과 같이 입력합니다.

    sumeq = sum(x,2) == 1;
    prob.Equations.sumeq = sumeq;

    참고

    다항식이나 유리식, 기본 함수(예: exp)로 구성되지 않은 비선형 함수가 있는 경우에는 fcn2optimexpr을 사용하여 해당 함수를 최적화 표현식으로 변환하십시오. Convert Nonlinear Function to Optimization Expression 항목과 Supported Operations for Optimization Variables and Expressions 항목을 참조하십시오.

    필요한 경우, 방정식의 추가 파라미터를 작업 공간 변수로 포함합니다. 문제 기반 접근법에서 추가 파라미터 전달하기 항목을 참조하십시오.

  • 비선형 문제의 경우, 구조체에 최적화 변수 이름 필드를 지정하여 초기점을 설정합니다. 예를 들어, 다음과 같이 입력합니다.

    x0.x = randn(size(x));
    x0.y = eye(4); % Assumes y is a 4-by-4 variable
  • solve를 사용하여 문제를 풉니다.

    sol = solve(prob);
    % Or, for nonlinear problems,
    sol = solve(prob,x0)

추가로 이런 기본 단계에서, show 또는 write를 사용하여 문제를 풀기 전에 문제 정의를 검토할 수 있습니다. Change Default Solver or Options에 설명된 대로 optimoptions를 사용하여 solve에 대한 옵션을 설정합니다.

경고

문제 기반 접근법은 목적 함수, 비선형 등식, 비선형 부등식에서 복소수 값을 지원하지 않습니다. 함수 계산에 중간값으로라도 복소수 값이 포함될 경우, 최종 결과가 올바르지 않을 수 있습니다.

참고

최적화 문제에서는 모든 이름이 고유해야 합니다. 특히 변수 이름, 목적 함수 이름, 제약 조건 함수 이름은 모두 달라야 합니다.

다항식을 사용한 기본 방정식 풀이 예제를 보려면 문제 기반 접근법을 사용하여 비선형 다항 연립방정식 풀기 항목을 참조하십시오. 일반 비선형 예제는 문제 기반 접근법을 사용하여 비선형 연립방정식 풀기 항목을 참조하십시오. 더 광범위한 예제는 비선형 연립방정식 항목을 참조하십시오.

참고 항목

| | | | | |

관련 항목