# Setting up a problem in linprog

조회 수: 2 (최근 30일)
Deepa Maheshvare 2022년 7월 7일
댓글: Deepa Maheshvare 2022년 7월 7일
This is a follow up to my previous question posted here
I want to define an absolute error loss function of the following form
% Loss Function (absolute error loss)
%% input curves
scale = 1.5;
x1 = [0,4,6,10,15,20]*scale;
y1 = [18,17.5,13,12,8,10];
x2 = [0,10.5,28]*scale;
y2= [18.2,10.6,10.3];
%% y2 is the target function and y1 is the function to be shifted
f = y1;
g = interp1(x2,y2,x1);
%% linprog inputs
% x = linprog(f,A,b)
% i = 1:length(x1)
A = [fi - 1; -fi -1];
x = [a ui];
b = [gi -gi];
% obj = sum_i u_i (function to minimize)
%% solve system
I am not sure how to set this up and solve this sytem in MATLAB's linprog

댓글을 달려면 로그인하십시오.

### 채택된 답변

Torsten 2022년 7월 7일
편집: Torsten 2022년 7월 7일
I think the whole procedure only makes sense if x1 is a subset of x2, but here we go:
scale = 1.5;
x1 = [0,4,6,10,15,20]*scale;
y1 = [18,17.5,13,12,8,10];
x2 = [0,10.5,28]*scale;
y2= [18.2,10.6,10.3];
%% y2 is the target function and y1 is the function to be shifted
f = y1;
g = interp1(x2,y2,x1);
ff = [0,ones(size(x1))];
A = [f.',-eye(numel(x1));-f.',-eye(numel(x1))];
b = [g.',-g.'];
sol = linprog(ff,A,b);
Optimal solution found.
a = sol(1)
a = 1.0111
% Compare with least-squares solution
a2 = sum(f.*g)/sum(f.^2)
a2 = 0.9895
And the next step is
min: max_i ( abs( a*f_i - g_i ) )
? :-)
##### 댓글 수: 3이전 댓글 1개 표시이전 댓글 1개 숨기기
Torsten 2022년 7월 7일
Is x just [a u1 u2 u3 u4 u5 u6] ?
Yes.
Then ff^T*x yields sum_i ui.
Yes.
min: max_i ( abs( a*f_i - g_i ) )
sorry, could not understand what you are pointing to.
Besides the two norms you used until now, you can try as a third approach to find "a" that minimizes the maximal deviation of a*f from g:
min: max_i ( abs (a*f_i - g_i) )
Was just a joke :-)
Deepa Maheshvare 2022년 7월 7일
:-)

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Introduction to Installation and Licensing에 대해 자세히 알아보기

R2021a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by