Borrar filtros
Borrar filtros

constrainted regularization to solve ill conditioned problems?

11 visualizaciones (últimos 30 días)
I am trying to solve a matrix equation of the form Ax = b (solving for x with known A and b).
prior to trying regularisation I was using lsqlin (https://uk.mathworks.com/help/optim/ug/lsqlin.html) with the constraints lsqlin(C,d,[],[],[],[],lb,ub) where lb and ub are lower and upper bounds for the allowed values of my output vector. Some (but not all) of my vector values in x should not have negative values. My results are ill-conditioned. I was wondering if anyone is aware of any type of regularisation (e.g. Tikhonov) that has lb or ub constraints such that I can make some (but not all) of my values in x non-negative?
For context:
I have tried using Tikhonov regularisation (the example code given here: https://uk.mathworks.com/matlabcentral/fileexchange/130259-arls-automatically-regularized-least-squares?s_tid=prof_contriblnk - the response from 15 Mar 2024). The issue is that this code does not have any constraints.

Respuesta aceptada

Matt J
Matt J el 2 de Mayo de 2024
Editada: Matt J el 2 de Mayo de 2024
To implement Tikhonov regularisation in lsqlin,
C=...
d=...
lb=...
ub=...
beta=0.0001; %regularization weight
I=eye(numel(lb));
C=[C;beta*I];
d(height(C))=0;
x = lsqlin(C,d,[],[],[],[],lb,ub)
  2 comentarios
Matt J
Matt J el 2 de Mayo de 2024
This scheme can also be modified to accomodate second order TV regularization,
I=diff(eye(numel(lb)));
Sebastian Pearson
Sebastian Pearson el 2 de Mayo de 2024
Thanks that's super helpful, it looks like it's working! Just to future people looking at this, I think that d should be the vector you had before (without regularisation), with the zeros of height "I" (I=eye(numel(lb));) concatenated on the end.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Linear Least Squares en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by