Hi,
thanks for the great forum first of all. I am fairly new to the use of OSQP, so I fear this could be a duplicate of another question or something obvious, but I could not find an answer to my problem until now…
I am working on a simple problem of the form
min 1/2*x’Px
s.t. Ax=b
lb<=x<=ub
I have three implementations of the problem: one in Python, and 2 in Matlab (in the first, I have defined P and A_eq to be sparse
, in the second they are just normal Matlab matrices).
To ensure reproducibility of the optimal solution found, I have set adaptive_rho_interval=50
(as suggested in other posts like this one).
However,I observe that:
- the solution obtained in Python is exactly the same as the one found in Matlab without the use of the sparse matrices
- the solution found in Matlab using the sparse matrices is different.
Is there any reason for this to be happening?
I copy my two scripts in the following, to reproduce the issue. To make the code more readable, I specify the values of the vectors/matrices used at the bottom of the question.
Thank you very much in advance.
Matlab code:
w = [ones(1,33), 0.01*ones(1,8), 10*ones(1,9)];
lb = [zeros(1,33), -6*ones(1,17)];
ub = [ones(1,33), 6*ones(1,17)];
%% use OSQP without sparse matrices
% rewrite the cost function as x'Px
P = diag(2*w);
prob = osqp;
A_eq_osqp = [A_eq; eye(50)];
lb_osqp = [B_eq; lb'];
ub_osqp = [B_eq; ub'];
% Setup workspace
prob.setup(P, [], A_eq_osqp, lb_osqp, ub_osqp, 'verbose', 0, 'adaptive_rho_interval', 50);
% Solve problem
res = prob.solve();
x_osqp = res.x;
%% then use OSQP with sparse matrixes
% rewrite the cost function as x'Px
P = sparse(diag(2*w));
prob = osqp;
A_eq_osqp = sparse([A_eq; eye(50)]);
lb_osqp = [B_eq; lb'];
ub_osqp = [B_eq; ub'];
% Setup workspace
prob.setup(P, [], A_eq_osqp, lb_osqp, ub_osqp, 'verbose', 0, 'adaptive_rho_interval', '50');
% Solve problem
res_sparse = prob.solve();
x_osqp_sparse = res_sparse.x;
%% Plot the comparison
h = figure;
set(gca,'fontsize',15,'LineWidth',2)
hold on
plot(x_osqp, 'LineWidth',2)
plot(x_osqp_sparse, 'LineWidth',2)
legend( "OSQP","OSQP sparse")
xlabel("optimization variables")
grid on
Python code:
import numpy as np
import osqp
from scipy import sparse
lb = np.concatenate((np.zeros((1, 33)), -6*np.ones((1, 17))), axis=1)
ub = np.concatenate((np.ones((1, 33)), 6*np.ones((1, 17))), axis=1)
## SOLVE with OSQP
w = np.concatenate((np.ones((1, 33)), 0.01*np.ones((1, 8)), 10*np.ones((1, 9))), axis=1)
P = sparse.csc_matrix(2*np.diagflat(w))
A_eq_osqp = sparse.csc_matrix(np.concatenate((A_eq, np.eye(50)), axis=0))
lb_osqp = np.concatenate((np.transpose(np.atleast_2d(B_eq)), np.transpose(lb)), axis=0)
ub_osqp = np.concatenate((np.transpose(np.atleast_2d(B_eq)), np.transpose(ub)), axis=0)
prob = osqp.OSQP()
prob.setup(P=P, A=A_eq_osqp, l=lb_osqp, u=ub_osqp, verbose=False, adaptive_rho_interval=50)
res = prob.solve()
x_opt = res.x
Matrices (in Python format):
B_eq = np.array([-4.18274179e+00, 1.56056756e+01, -1.67703208e+00, 2.02253004e+00,
1.02790865e+01, -2.01405712e+00, -3.32916514e+02, -1.75742282e+02,
1.15009521e+02, 4.65990026e+01, 1.47867987e+03, -2.88275491e+02,
-3.45840577e+03, -1.02597422e+03, 3.26288535e+03, 2.15487771e+02,
4.83631402e+02])
A_eq = np.array([[ 5.59696010e+01, 1.50303950e+02, -1.45080962e+01,
2.42435057e+01, -3.82537529e+01, -1.74936497e+01,
-1.67269744e+01, 3.02613145e+01, 4.94917744e+01,
3.89645168e+01, 7.09048417e+00, 5.96168902e-01,
-3.68276595e+01, 6.75212395e+00, -3.33314640e+00,
-1.14602731e+01, -2.54238971e+00, 7.14121399e+00,
-6.43876344e+01, -2.35359455e+01, -1.96299142e+01,
-5.77662614e+01, -4.17765699e+01, -5.76682147e+01,
-2.15573061e+01, 2.54067375e+01, 2.92530478e+01,
2.91631734e+01, 1.14630510e+00, 1.51251526e+01,
-3.23904168e+01, 1.25577904e+01, 1.32951586e+01,
0.00000000e+00, 8.16171599e+00, 3.78787898e-01,
6.93423802e-02, -3.28678201e+00, 4.69479355e+00,
-1.04163405e+01, -5.20524024e+00, 7.47774401e-01,
-7.28333260e-01, 1.02762678e+00, -1.25265004e+00,
1.52868387e-01, -6.24779521e-01, 3.34824541e+00,
-3.38433639e-01, -1.25840458e+00],
[ 9.09582169e+01, 1.63531562e+02, 6.76170202e+01,
1.33191732e+01, -2.25146109e+01, -5.07062625e+01,
-2.53086586e+01, 1.52858727e+01, 8.91711589e+00,
-4.85496152e+00, 2.74820618e-01, -2.67000408e+01,
2.70874680e+01, -2.57143726e+01, 9.40861332e+00,
6.22547423e+00, -1.60467598e+00, -2.00925151e+01,
-8.72455807e+01, -7.72219459e+01, 3.12429213e+01,
1.00761797e+00, -2.93258428e+00, -4.31498382e+01,
1.65764127e+00, 5.06411469e-01, 1.19956345e+00,
5.12911789e+00, -3.93200936e+00, -8.94446923e+00,
3.04401658e+01, -1.48532904e+01, -4.05740054e+00,
0.00000000e+00, 9.00894203e+01, 8.62533437e-01,
-3.02129033e-01, 5.15449646e+00, -6.03256683e+00,
1.52103142e+01, 3.97113168e+00, -8.24642840e-03,
-1.60241294e+00, -8.25109025e-03, -2.35388001e+00,
7.69915963e-01, -3.60953781e-01, -3.05457080e+00,
-3.11945796e-01, 2.93483957e+00],
[-2.64304368e+01, -3.75791071e+01, -4.32392637e+01,
-1.64330601e+00, -2.29284875e+01, 6.91498438e+00,
7.88296426e+00, 6.64366892e+00, 2.58614223e+01,
2.22087541e+01, -1.56378002e+01, 2.25859506e+00,
5.70481270e+00, 4.63595901e+01, -2.46712070e+00,
-1.65873343e+00, 9.41470813e-02, -3.78942980e+00,
1.22474566e+01, 1.00907158e+01, -1.25874862e+01,
8.32541724e+00, 1.43847572e+01, 8.77119704e+00,
1.65252624e+00, -6.57435713e+00, -6.32623303e+00,
-4.91451054e+00, 2.20485665e+00, 7.74582129e-01,
-9.45285413e+00, 6.42224285e+00, -1.57417553e+01,
0.00000000e+00, 8.62533437e-01, 3.89261632e+01,
-5.32711510e+00, 4.02778649e+01, -1.15754841e-02,
-6.36171464e+00, -1.16622010e+00, 6.63528588e-02,
5.92702363e-01, 1.89214110e-01, 6.00798690e-01,
-8.51544134e-01, 1.70608004e-01, 1.34644497e-01,
8.78530619e-01, -5.63808869e-01],
[ 1.39320090e+01, 2.17753630e+01, 1.75438569e+01,
1.26064865e+00, 5.10024411e+00, -5.68810356e+00,
-4.01495865e+00, -9.84012010e-01, -7.07972527e+00,
-7.00903546e+00, 2.82540439e+00, -3.72159134e+00,
2.82127628e+00, -1.23576933e+01, 1.61707095e+00,
1.24101635e+00, -1.44714732e-01, -1.18097950e+00,
-9.86890590e+00, -9.18557582e+00, 8.40653743e+00,
-7.98601645e+00, -7.86574071e+00, -5.25340618e+00,
-2.42297255e+00, 4.14220225e+00, 4.80808019e+00,
5.81284187e+00, -1.29874740e+00, -8.70402649e-01,
6.83730917e+00, -3.56906654e+00, 2.40007564e+00,
0.00000000e+00, -3.02129033e-01, -5.32711510e+00,
2.57663980e+00, -5.57203128e+00, 7.84180607e-02,
3.47884895e+00, 7.16475810e-01, -2.63912852e-02,
-2.83735155e-01, -6.37045277e-02, -3.38898118e-01,
2.98176099e-01, -7.00572434e-02, -5.11760777e-01,
-2.40398705e-01, 7.90729389e-01],
[-5.65885023e+00, -2.62141145e+01, 1.26392703e+01,
-6.11153343e+00, 6.74770847e+00, -2.35867549e+00,
2.02527226e+00, -6.97327795e+00, -1.27405885e+01,
-1.19666730e+01, -5.38716790e+00, 9.29615423e-02,
7.52143553e+00, 1.09931190e+01, 2.29071178e+00,
4.17351601e+00, 6.20836291e-01, -4.13897635e+00,
1.11865272e+01, -5.51154619e-01, 1.57854692e+00,
4.72942689e+00, 5.60214941e+00, 1.29847795e+01,
1.49192341e+00, -2.89388152e+00, -2.81548854e+00,
-1.69210417e+00, 4.92187879e-02, -1.68909176e+00,
3.48041650e+00, -6.40185494e-01, -6.25592243e+00,
0.00000000e+00, 4.12359717e-01, 3.22222919e+00,
-4.45762502e-01, 2.71684425e+01, -5.20432583e-02,
2.34556449e-01, 4.42126371e-01, -2.51494367e-01,
2.42638232e-02, -3.34971779e-01, 7.06358356e-02,
-2.31293472e-03, 1.67533989e-01, -5.63923553e-01,
2.51754003e-01, 3.36401086e-01],
[ 1.41381939e+01, 3.36153502e+01, -6.11489588e+00,
4.13190786e+00, -2.21753252e+01, -1.19125069e+01,
-3.67163478e+00, 9.93555685e+00, 2.03528576e+01,
1.35576594e+01, 1.76768039e+00, 3.38570879e+00,
-1.74330017e+01, 8.55020676e+00, 3.90818094e-01,
-7.67298711e-01, -2.97023955e-01, 4.40551283e+00,
-6.55371206e+00, 8.46566359e-01, -1.16659488e+01,
-2.48641366e+01, -1.70374967e+01, -1.03763373e+01,
-9.48256563e+00, 1.06267211e+01, 1.23050182e+01,
1.21469520e+01, 9.36693074e-01, 7.29529216e+00,
-1.67207486e+01, 7.03729678e+00, 4.79738001e+00,
0.00000000e+00, -6.03256683e+00, -1.15754841e-02,
7.84180607e-02, -6.50540729e-01, 2.94416952e+00,
-6.29308032e+00, -2.63321692e+00, 7.12959429e-02,
-1.61562011e-01, 1.57308895e-01, -4.06475771e-01,
-2.69074020e-01, -3.53862812e-02, 1.67742308e+00,
-5.47275019e-02, -7.83837835e-01],
[-2.65557494e+03, -3.82523880e+03, -4.57117733e+03,
-2.03599151e+02, -2.84158717e+03, 4.39636953e+02,
8.10552402e+02, 8.04778150e+02, 3.00376849e+03,
2.47319756e+03, -1.18924855e+03, 6.82788341e+02,
-5.03247487e+02, 4.42235874e+03, -2.60472355e+02,
-1.67613995e+02, 2.45857206e+01, -5.22182214e+00,
1.77543950e+03, 1.62077993e+03, -2.17391055e+03,
1.15598418e+03, 1.60315553e+03, 9.68504357e+02,
2.68076381e+02, -7.59436193e+02, -8.16528029e+02,
-9.04824753e+02, 3.31464334e+02, 3.21345339e+02,
-3.79037261e+03, 8.11243847e+02, -1.30495087e+03,
0.00000000e+00, -6.40965175e+01, 2.37080945e+01,
-1.13494062e+01, 1.21319116e+01, -6.46248044e+00,
5.67130918e+02, -3.54120459e+02, 3.93475236e+00,
6.10210565e+01, 1.75290056e+01, 5.73721147e+01,
-9.81246585e+01, 2.08877083e+01, 1.20108050e+02,
8.03968723e+01, -1.66980834e+02],
[-3.44918148e+02, 4.15357569e+02, -2.42169445e+03,
2.04760396e+02, -2.40330272e+03, -3.72517496e+02,
1.33098258e+02, 9.33406447e+02, 2.46563911e+03,
1.89174479e+03, -3.98073573e+02, 3.61226707e+02,
-8.86123781e+02, 2.11321131e+03, -1.20762754e+02,
-1.60967141e+02, -1.55120541e+01, 1.29648130e+02,
6.06167423e+01, 4.89865614e+02, -1.45333495e+03,
-3.91875375e-01, 3.45192266e+02, -2.86976890e+02,
-8.16102409e+01, -1.08961179e+02, -1.13649665e+02,
-2.10049138e+02, 1.95004969e+02, 3.72012721e+02,
-2.42764500e+03, 6.03924174e+02, -3.68277519e+02,
0.00000000e+00, -3.30043610e-01, 7.56856441e+00,
-2.54818111e+00, -1.67485890e+02, 6.29235582e+00,
1.29935653e+02, -3.04253341e+01, 8.74392556e+00,
1.75290056e+01, 1.99618495e+01, 3.15352228e+00,
-5.49954216e+01, 4.75592055e+00, 1.17821473e+02,
3.26098024e+01, -1.18375096e+02],
[-3.99258173e+03, -7.20567513e+03, -8.37684572e+02,
-4.26467770e+02, 5.17678609e+03, 4.01145460e+03,
9.82568237e+02, -1.85623326e+03, -3.75187556e+03,
-1.91627377e+03, 1.18538033e+02, -5.01441815e+02,
2.69161819e+03, -2.73935856e+03, -4.84470918e+02,
-4.02809778e+02, 1.85604503e+01, -1.72239804e+01,
1.88709614e+03, 1.44722174e+03, 2.76893816e+03,
1.76367722e+03, 8.80751299e+02, 1.49381555e+03,
7.65325031e+02, -6.56864642e+02, -7.46042365e+02,
-5.38992095e+02, -3.18590616e+02, -1.04188949e+03,
3.69897937e+03, -1.38719905e+03, -2.34481483e+02,
0.00000000e+00, -9.41552003e+01, 2.40319476e+01,
-1.35559247e+01, 3.53179178e+01, -1.62590308e+01,
8.70479203e+02, -7.80288447e+02, 1.46616947e+01,
5.73721147e+01, 3.15352228e+00, 1.23989637e+02,
6.20811834e+01, -8.77204845e+00, -2.93896020e+02,
-2.62800383e+01, 2.27870993e+02],
[-3.00949702e+02, -1.63708525e+02, -1.05706867e+02,
1.21147389e+02, 9.71599998e+02, 7.36847045e+02,
4.15315927e+01, -1.96462736e+02, -5.60182593e+02,
-2.11321779e+02, 2.56840337e+02, -1.75969415e+02,
3.53675075e+02, -1.16168714e+03, -1.25928168e+02,
-1.74016035e+02, -1.74768510e+01, 9.85623309e+01,
-1.70767562e+02, 1.00107669e+02, 6.80982468e+02,
2.10136294e+01, -1.78266933e+02, -2.01836963e+02,
4.98916274e+01, 5.39641037e+01, 4.86078992e+01,
7.59034275e+01, -9.30043848e+01, -1.70831862e+02,
9.25806920e+02, -3.14013348e+02, 2.24124499e+02,
0.00000000e+00, -3.29857136e-01, 2.65411435e+00,
-1.05565141e+00, -1.25747183e+02, 2.85183771e+00,
1.13762635e+02, -1.03652654e+02, 9.56166507e+00,
3.93475236e+00, 8.74392556e+00, 1.46616947e+01,
1.98268863e+01, -8.30451922e+00, -5.12887024e+01,
-1.84813570e+01, 5.16671588e+01],
[ 1.00206816e+03, -1.63027030e+03, 1.48815571e+04,
-1.45395744e+02, 2.18426416e+04, 7.25911798e+03,
-8.29530070e+02, -7.00881417e+03, -1.92466911e+04,
-1.32453209e+04, 4.67403390e+03, -3.62804449e+03,
7.75346087e+03, -2.24050314e+04, -1.27885730e+02,
-3.03661230e+02, -5.44071040e+01, 7.83653741e+00,
-2.45921280e+03, -2.77314698e+03, 1.41178776e+04,
-4.09653796e+02, -4.00679185e+03, -3.66076499e+02,
6.87258463e+02, 1.37191692e+03, 1.38652867e+03,
2.16435270e+03, -1.92576255e+03, -3.47308175e+03,
2.21059407e+04, -6.04936014e+03, 4.32537781e+03,
0.00000000e+00, 3.07966385e+01, -3.40617654e+01,
1.19270440e+01, -1.15646736e+00, -1.07629608e+01,
-1.62446078e+02, -4.19044966e+02, 1.98268863e+01,
-9.81246585e+01, -5.49954216e+01, 6.20811834e+01,
4.98371426e+02, -9.75578642e+01, -1.08827386e+03,
-3.55767229e+02, 1.11707520e+03],
[-3.73888964e+02, -2.89656038e+02, -2.72648920e+03,
-9.16377381e+01, -4.10558688e+03, -1.40855059e+03,
2.19044084e+02, 1.22516309e+03, 3.50664891e+03,
2.36604606e+03, -1.00463904e+03, 7.25620044e+02,
-1.38102622e+03, 4.56315942e+03, 5.71233576e+01,
1.27666277e+02, 2.28433190e+01, -6.59179590e+01,
7.38326916e+02, 5.80678165e+02, -2.74277043e+03,
2.30501533e+02, 9.28749259e+02, 3.38740258e+02,
-8.36998650e+01, -3.47577909e+02, -3.55382914e+02,
-4.94750012e+02, 3.79873838e+02, 6.42239764e+02,
-4.26617876e+03, 1.17015538e+03, -9.54075013e+02,
0.00000000e+00, -1.44381513e+01, 6.82432014e+00,
-2.80228973e+00, 8.37669945e+01, -1.41545125e+00,
4.06043541e+01, 6.76324085e+01, -8.30451922e+00,
2.08877083e+01, 4.75592055e+00, -8.77204845e+00,
-9.75578642e+01, 2.22416161e+01, 2.02939483e+02,
7.41321272e+01, -2.14766661e+02],
[ 3.52393984e+03, 1.38271344e+04, -2.93081146e+04,
1.06869134e+03, -5.12196398e+04, -1.99427991e+04,
2.87292544e+02, 1.68569619e+04, 4.42720803e+04,
2.96807362e+04, -9.16186661e+03, 8.43657060e+03,
-2.06694505e+04, 4.86565991e+04, 8.02271263e+02,
9.61158457e+02, 7.23783504e+01, 6.05812518e+02,
2.66551630e+03, 4.41641204e+03, -3.28755458e+04,
-3.41038809e+03, 5.46148651e+03, -1.69784368e+03,
-3.10261553e+03, -1.03088405e+03, -8.33279767e+02,
-2.73458591e+03, 4.34933710e+03, 8.92558376e+03,
-4.89568918e+04, 1.46222661e+04, -7.50237809e+03,
0.00000000e+00, -1.22182832e+02, 5.38577987e+00,
-2.04704311e+01, -2.81961777e+02, 6.70969231e+01,
-2.57649126e+03, -3.14988244e+02, -5.12887024e+01,
1.20108050e+02, 1.17821473e+02, -2.93896020e+02,
-1.08827386e+03, 2.02939483e+02, 2.71448743e+03,
7.33270616e+02, -2.61383735e+03],
[-1.42965572e+03, -4.50069510e+02, -1.06961183e+04,
-1.00440586e+02, -1.50829794e+04, -4.80131843e+03,
7.93298417e+02, 4.69685040e+03, 1.32408871e+04,
9.12887438e+03, -3.55645493e+03, 2.56305016e+03,
-4.98060938e+03, 1.62753680e+04, 7.68438318e+01,
2.62102010e+02, 5.58025549e+01, -1.99767524e+02,
2.18621328e+03, 2.05214978e+03, -9.95820597e+03,
1.36259988e+03, 3.70253944e+03, 7.89555819e+02,
-1.06011833e+02, -1.47215010e+03, -1.55287311e+03,
-2.11758985e+03, 1.38682325e+03, 2.25932757e+03,
-1.57186096e+04, 4.17615667e+03, -3.43824931e+03,
0.00000000e+00, -1.24778318e+01, 3.51412248e+01,
-9.61594821e+00, 1.25877002e+02, -2.18910007e+00,
4.37554270e+02, 4.89331267e+02, -1.84813570e+01,
8.03968723e+01, 3.26098024e+01, -2.62800383e+01,
-3.55767229e+02, 7.41321272e+01, 7.33270616e+02,
2.66719151e+02, -7.92908252e+02],
[-9.21269280e+02, -9.17428911e+03, 3.14175457e+04,
-6.84594421e+02, 5.08763395e+04, 1.86082847e+04,
-1.01975455e+03, -1.65116208e+04, -4.42704299e+04,
-2.99872378e+04, 9.53043733e+03, -8.50848197e+03,
1.89104863e+04, -4.89095553e+04, -5.27762565e+02,
-8.18855822e+02, -9.75634813e+01, 2.08074755e+02,
-3.06385145e+03, -4.19410041e+03, 3.37998413e+04,
-6.34183021e+03, -1.26231027e+04, 4.50922367e+02,
-4.12980600e+02, 5.30342083e+03, 5.93231268e+03,
8.56333587e+03, -4.66686846e+03, -7.64616764e+03,
5.03936396e+04, -1.42696875e+04, 8.72821553e+03,
0.00000000e+00, 1.17393583e+02, -2.25523548e+01,
3.16291756e+01, 1.68200543e+02, -3.13535134e+01,
6.17136842e+02, -5.77579317e+03, 5.16671588e+01,
-1.66980834e+02, -1.18375096e+02, 2.27870993e+02,
1.11707520e+03, -2.14766661e+02, -2.61383735e+03,
-7.92908252e+02, 2.84438699e+03],
[-1.57736080e+03, -2.54230456e+03, -1.34791575e+03,
-1.23694287e+02, 5.57106714e+02, 1.09386884e+03,
4.22469826e+02, -2.29220784e+02, -1.42973979e+02,
1.75304934e+02, -3.93082521e+02, -3.22897566e+02,
1.50145844e+03, 8.86526570e+01, -1.72977640e+02,
-1.20289652e+02, 3.59716251e-01, -4.02613833e+02,
2.46907886e+02, 4.18777919e+01, 5.93447972e+02,
2.71230152e+03, 2.02983909e+03, 5.33303481e+02,
9.96168444e+02, -1.21336473e+03, -1.39762950e+03,
-1.42225355e+03, -1.06043029e+01, -6.23623882e+02,
-1.01665292e+03, -5.99948346e+02, -9.98741463e+02,
0.00000000e+00, 3.04206283e+01, -1.27234293e+01,
6.95769791e+00, 5.86391123e+00, -1.25861606e+01,
2.13210216e+03, 3.69989216e+03, 5.68813175e+00,
2.83565459e+01, 6.49678267e+00, 4.35239601e+01,
-8.12230391e+00, 2.03021770e+00, -1.28824563e+02,
2.18777135e+01, 3.08568421e+01],
[ 1.24074437e+03, 2.21627245e+03, 2.46614588e+02,
1.21950004e+02, -1.67634843e+03, -1.28683431e+03,
-3.02374437e+02, 5.89376836e+02, 1.20861973e+03,
6.15893992e+02, 4.11995702e+02, -1.66825881e+02,
6.54948646e+02, -1.31369101e+03, 9.86289503e+01,
1.14815226e+02, -1.31953111e+01, -7.96529307e+02,
-2.04551397e+03, -2.06308764e+03, -1.21966569e+03,
9.25794751e+03, 6.49265755e+03, -4.41939486e+02,
3.36716906e+03, -3.93761294e+03, -4.79359932e+03,
-5.70846715e+03, 3.22561601e+02, -1.04554194e+03,
-4.18505052e+03, -1.75571583e+02, -9.27348826e+02,
0.00000000e+00, 7.94226337e+00, -2.33244021e+00,
1.43295162e+00, 1.10531593e+01, -5.26643384e+00,
3.69989216e+03, 2.13774746e+04, -5.18263272e+00,
-1.77060229e+01, -1.52126670e+00, -3.90144224e+01,
-2.09522483e+01, 3.38162043e+00, -1.57494122e+01,
2.44665634e+01, -2.88789659e+02]])