Building PCE issues

Hi UQLab community,

I’ve meet an issue while building PCE surrogate from simulation data along a wide range of frequencies. I don’t know why UQlab crashes and/or if my data miss some informations to that end.
Please find below the UQLab report while crashing (the used script… if asked).
Is it possible to fix or to avoid this problem?

Thank you in advance,

— Calculating the PCE coefficients with least-squares. —
Warning: Warning: numerical instability!! Gamma for LAR iteration 10 was set to 0 to prevent

In uq_lar (line 268)
In uq_PCE_lars (line 60)
In uq_PCE_calculate_coefficients_regression (line 197)
In uq_PCE_calculate_coefficients (line 47)
In uq_calculateMetamodel (line 18)
In uq_initialize_uq_metamodel (line 358)
In uq_core_module/run_initialization_script (line 208)
In uq_core_model/add_module (line 101)
In uq_createModel (line 91)
Inner matrix dimensions must agree.
Error in uq_blockwise_inverse (line 26)
SCinv = 1/(D - CAinvB);
Error in uq_lar (line 214)
M = uq_blockwise_inverse(M,x,x’,r) ;
Error in uq_PCE_lars (line 60)
lar_results = uq_lar(Psi, Y, lar_options);
Error in uq_PCE_calculate_coefficients_regression (line 197)
lars_results = uq_PCE_lars(univ_p_val, current_model);
Error in uq_PCE_calculate_coefficients (line 47)
Error in uq_calculateMetamodel (line 18)
success = uq_PCE_calculate_coefficients(current_model);
Error in uq_initialize_uq_metamodel (line 358)
success = uq_calculateMetamodel(current_model);

Hi @geofflo,

Welcome to UQWorld! :slight_smile:

This sounds very similar to an issue another user had recently. Have a look here: After update receiving error in uq_blockwise_inverse

The fact that the algorithm ends up in this part of the code (where a regressor that was added by LARS has to be removed again) hints at some problem with your data: it does not contain enough information to properly build a PCE.

I hope this helps, good luck!


Thank you @nluethen,
This update fixed in part my problem and allow me to continue some analysis…

Best regards,

Dear UQLab comminuty,

I’m wondering why the evaluation of my PCE surrogate give NAN responses to my validation data (see code below).
After building PCE along wide range of frequencies, I need to use them to predict the behavior of my model. But I’m surprised to get NANs as results provided by the PCE (using uq_evalModel(…) command).
Is it possible to help me understand why it doesn’t work?

Thank you in advance,

m =0; Nsimuls = size(ExpDes_Valid,1);
YPCE_indu = cell(Nfreq,1); YPCE_resi = cell(Nfreq,1);
for kk = 1:Nfreq
m = m+1;
YPCE_indu{kk} = uq_evalModel(PCE_Indu2{kk},ExpDes_Valid);
YPCE_resi{kk} = uq_evalModel(PCE_Resi2{kk},ExpDes_Valid);