2012-01-20 7 views
0

lsqcurvefit 함수를 사용하여 곡선에 맞게 싶습니다. 그것은이 문제와 같은 것입니다 :동적 제약 조건이있는 MatLab 곡선 적합성

y = a1 * x + a2 * z 
s.t 
a1 > 0 
a2 > 0 
a1 + a2 <= some number 

이러한 동적 제약 조건을 가질 수 있습니까? 아니면 다른 패키지를 사용해야합니까?

답변

1

lsqlin은 제한 조건이 선형 동등성 또는 불평등 인 한 문제의 도구입니다. 선형 케이스를 설명 했으므로 이것이 올바른 해결책입니다.

비선형 제약 조건이있는 예제를 보여 주었다면 fmincon (Marcin이 제안한 것처럼)을 사용해야했지만 완전히 선형 문제가 발생하면 과도합니다. 물론 fmincon은 사용자의 목표가 제약 조건에서 선형 최소 자승이라는 것을 모르기 때문에 fmincon은 상당히 효율적이지 않습니다.

마지막으로 fmincon을 사용하려면 잔차의 제곱의 합으로 목표를 정의해야합니다. lsqlin은 문제 클래스를 해결하도록 명시 적으로 설계되었으므로이 후자의 단계는 lsqlin에는 필요하지 않습니다.

+1

이 맞다. 필자는 단지 당신에게 이상한 제약 조건이있을 경우를 대비해 fmincon으로 할 수 있다고 비판했다. – Marcin

1

fmincon 아마도 원하는 것입니다. 제약 조건은 별도의 함수이므로 방정식으로 표현할 수있는 한 제약 조건을 제한없이 포함 할 수 있습니다.

+1

필자는 필자의 대답에서 fmincon은 제약 조건이 비선형 인 경우에만 적절할 것이라고 지적했습니다. 그렇지 않으면 lsqlin이 가장 좋습니다. –

관련 문제