What do you get from cond(m)? Den torsdag den 15. januar 2015 skrev ShaoWei Teo <[email protected]>:
> Hi group, > > I am using Julia v0.3.4. I would like to find the inverse of matrices, > lets say the 15X15 matrix:- > m = > 2.69E-05 -2.25E-05 1.25E-05 -2.30E-05 -1.09E-05 > 9.02E-06 -1.42E-05 -4.29E-06 1.47E-05 > 2.11E-06 -2.27E-06 1.61E-06 2.15E-05 1.42E-05 > -4.05E-05 > -2.25E-05 0.000247072 -7.98E-06 2.24E-05 6.45E-05 > 5.80E-06 8.79E-05 9.02E-05 -3.00E-06 > 0.000103897 7.80E-05 1.98E-06 0.000156923 8.07E-06 > 4.72E-05 > 1.25E-05 -7.98E-06 4.21E-05 -3.97E-05 -4.36E-05 > 3.42E-05 -8.94E-05 -5.93E-05 3.43E-05 > -3.79E-05 6.44E-06 6.72E-06 2.05E-05 4.11E-05 > -7.26E-05 > -2.30E-05 2.24E-05 -3.97E-05 0.000106283 5.56E-05 > -2.98E-05 9.56E-05 6.94E-05 -3.99E-05 > 5.84E-05 -7.42E-05 2.62E-06 -7.48E-05 -4.52E-05 > 0.000142413 > -1.09E-05 6.45E-05 -4.36E-05 5.56E-05 > 0.000225041 -2.71E-05 0.000313224 0.000229185 -3.48E-05 > 0.000149339 -1.68E-05 -1.15E-05 0.00013528 > -4.35E-05 0.000184476 > 9.02E-06 5.80E-06 3.42E-05 -2.98E-05 -2.71E-05 > 3.13E-05 -6.18E-05 -3.87E-05 2.98E-05 > -2.03E-05 7.29E-06 7.13E-06 2.97E-05 3.44E-05 > -5.49E-05 > -1.42E-05 8.79E-05 -8.94E-05 9.56E-05 > 0.000313224 -6.18E-05 0.000598084 0.000395901 -7.03E-05 > 0.000264016 -9.28E-05 -1.04E-05 0.000167989 > -7.99E-05 0.000271952 > -4.29E-06 9.02E-05 -5.93E-05 6.94E-05 > 0.000229185 -3.87E-05 0.000395901 0.000279212 -4.60E-05 > 0.000190289 -3.90E-05 -8.30E-06 0.000143872 > -5.35E-05 0.000199811 > 1.47E-05 -3.00E-06 3.43E-05 -3.99E-05 -3.48E-05 > 2.98E-05 -7.03E-05 -4.60E-05 3.38E-05 > -1.98E-05 1.32E-05 5.89E-06 3.18E-05 3.79E-05 > -7.77E-05 > 2.11E-06 0.000103897 -3.79E-05 5.84E-05 > 0.000149339 -2.03E-05 0.000264016 0.000190289 -1.98E-05 > 0.000211512 -5.33E-05 -4.02E-06 8.48E-05 > -1.75E-05 0.000103224 > -2.27E-06 7.80E-05 6.44E-06 -7.42E-05 -1.68E-05 > 7.29E-06 -9.28E-05 -3.90E-05 1.32E-05 > -5.33E-05 0.000201486 -1.31E-05 0.000143599 1.20E-05 > -6.10E-05 > 1.61E-06 1.98E-06 6.72E-06 2.62E-06 -1.15E-05 > 7.13E-06 -1.04E-05 -8.30E-06 5.89E-06 > -4.02E-06 -1.31E-05 4.74E-06 -4.32E-06 6.33E-06 > -8.79E-06 > 2.15E-05 0.000156923 2.05E-05 -7.48E-05 > 0.00013528 2.97E-05 0.000167989 0.000143872 3.18E-05 > 8.48E-05 0.000143599 -4.32E-06 0.000328454 > 3.34E-05 -1.27E-05 > 1.42E-05 8.07E-06 4.11E-05 -4.52E-05 -4.35E-05 > 3.44E-05 -7.99E-05 -5.35E-05 3.79E-05 > -1.75E-05 1.20E-05 6.33E-06 3.34E-05 4.63E-05 > -8.88E-05 > -4.05E-05 4.72E-05 -7.26E-05 0.000142413 > 0.000184476 -5.49E-05 0.000271952 0.000199811 -7.77E-05 > 0.000103224 -6.10E-05 -8.79E-06 -1.27E-05 > -8.88E-05 0.000293684 > > The inverse inv(m) gives me the Float64 Matrix:- > [-1.8345175120029102e19 2.626073219959966e18 1.0233761566875374e19 > -8.128315942052952e18 -3.3234007922514022e19 -1.898384479428384e19 > 5.081174598392018e17 -7.705410108368609e18 1.1441360031270352e20 > 8.430493533140435e18 -2.321540821257999e19 -1.0085533031449038e20 > 2.0744634717598732e19 -8.232751641424237e19 2.106717109550696e19; > -3.6770633619746806e18 8.734391653902778e17 -3.7486183144198605e17 > -2.508377412749517e18 -8.56606769814874e18 -3.9726057326039137e18 > 7.740491964701125e17 -3.8765638765844183e18 2.9905494520045e19 > 2.038100133687466e18 -6.420070217604945e18 -2.700937311808455e19 > 5.742654594613092e18 -1.9640859860948464e19 6.393401367553399e18; > -5.253882493491519e19 6.930233748145572e17 -2.24537790846379e18 > -3.444202990090169e19 -8.356465304100261e19 -6.7270071872586244e19 > -8.5755111650019e18 -1.7912467425384497e19 2.6774624597866414e20 > 2.465761647831547e19 -6.336978394623304e19 -2.0416819107237275e20 > 6.0255672041952666e19 -1.659374694009981e20 6.411658505425713e19; > -1.4370753097499436e18 -1.7941600933626627e18 -3.876366579612313e18 > 7.238656120198908e18 2.938911335412165e18 1.2851048560164764e19 > -3.528032674462339e18 1.1084473131631098e19 -2.501600425894175e19 > -3.723502687387879e18 2.4282363737752745e18 -1.0041278599104991e18 > -2.1457213472321462e18 1.517745630619805e19 -8.431272192497873e18; > -3.149062696398924e19 1.1990532340485752e18 1.551152719869855e19 > -1.3959545846004068e19 -4.705858871162055e19 -3.495674123148457e19 > -4.552353609834832e18 -3.6943751493603717e18 1.5364148357148852e20 > 1.3208774563193307e19 -3.295416933608881e19 -1.2533541458607889e20 > 3.0524348584896328e19 -1.0871257507512789e20 2.9651485208129835e19; > 1.4785225947958063e19 -2.353063515910276e18 -5.075306755919784e18 > 2.488016852656103e19 2.975695767117064e19 4.678793588392979e19 > -1.7350968806387753e18 2.3184981870792475e19 -1.2009928358753165e20 > -1.460288532305525e19 2.325461230999244e19 4.939222408005098e19 > -2.2344149628451893e19 7.129300228520111e19 -3.47379478245272e19; > -8.760710777503551e18 2.0820170071757635e18 1.8330636273101212e18 > -5.443721214753727e18 -1.955367510960686e19 -9.71308977871736e18 > 1.7570105723511562e18 -8.182978615955723e18 6.91700914925114e19 > 4.795745226051396e18 -1.4281293365463515e19 -6.170953993029623e19 > 1.2684846982292826e19 -4.715955714269346e19 1.4035569024730708e19; > 3.1013816431032986e18 -4.702703162886415e18 -5.365248303218067e18 > 8.240132970580418e18 1.8649242931509158e19 1.3026023285907743e19 > -7.36724566649862e18 1.9187691108456964e19 -8.252136299396543e19 > -6.084394081007362e18 1.3556460236484053e19 6.2187694405483856e19 > -1.130648371162246e19 5.723245779161172e19 -1.78367800487994e19; > 5.523839505362299e19 2.7754007811208223e18 -4.059175220954572e19 > 8.729964405988898e18 6.1786972931760685e19 4.3608662220214895e19 > 1.7108106419315851e19 -2.4594421730904048e19 -1.780263540129462e20 > -1.5513592450882286e19 3.951550103884256e19 1.6077580263050786e20 > -3.715761157348381e19 1.4259036854214089e20 -2.3944222475675365e19; > -5.396706630639557e17 6.359256931813245e17 -4.760092778161976e17 > -4.641674138352063e18 -3.305295341505192e18 -7.618844139364807e18 > 1.163804069772311e18 -5.823013676532714e18 1.6721142161360017e19 > 2.2951302402495393e18 -2.932364057727011e18 -3.010307467195758e18 > 2.8380070330569984e18 -8.501128307722335e18 5.960447991551695e18; > -2.914005541462017e19 7.208643007112548e17 1.0293120042627432e19 > -1.3456770183547843e19 -4.356091851542855e19 -3.190129834784284e19 > -4.735020124474059e18 -3.6021190032095805e18 1.3982250855847969e20 > 1.2069386068065915e19 -3.107597900536396e19 -1.145405665830758e20 > 2.9000505211660042e19 -9.623482285139762e19 2.8167108260250477e19; > -1.0685499961537275e20 4.780939056815013e18 6.2758996300933595e19 > -6.668695569740839e19 -1.6023665518359944e20 -1.573345141511233e20 > -1.3599982718361033e19 -2.884088959530033e19 5.4983767795853525e20 > 5.404857199228669e19 -1.1306789208158739e20 -3.799034312271774e20 > 1.0597573955383912e20 -3.808151150507216e20 1.1675242284126406e20; > 2.8460773001216754e19 -8.168312835421422e17 -8.868769130308903e18 > 1.2873038948051194e19 4.3245683384181015e19 3.0031497212259918e19 > 4.423017084232225e18 3.892019568246309e18 -1.3833519293578602e20 > -1.163628010486122e19 3.0972717555753304e19 1.1584417047629296e20 > -2.8839676989925392e19 9.485107868215453e19 -2.7823139318235673e19; > -9.422159848797633e18 -1.262802559234384e18 3.327989110994949e19 > 7.582471996988298e18 5.6096683310162074e17 -3.5374717112013875e18 > -5.267187002003409e18 2.0119488507954856e19 -5.281649109861383e18 > 9.440912144736794e16 5.529777075744912e18 1.7935600102237612e18 > -5.588541755342156e18 -1.9376469015986725e19 -1.2705940404663874e19; > 1.8250674888204698e19 1.7278205445080038e18 -2.8113778074366305e18 > 2.1148875992329667e18 2.0957646380786745e19 9.106691503914852e18 > 6.781368485072161e18 -8.879120188347007e18 -5.26404361282851e19 > -3.853928290816942e18 1.4696070432003002e19 5.722886879247717e19 > -1.4102711344746449e19 3.733546458290386e19 -8.299450957232601e18] > > This is incorrect as m * inv(m) is not identity. > > Even when I use BigFloat for m, I get its inverse to be:- > -2.47E+04 -4.98E+05 5.84E+06 -2.67E+06 3.01E+06 > -7.98E+06 -8.35E+05 4.61E+05 -5.96E+06 > 1.38E+06 2.58E+06 2.11E+07 -1.99E+06 3.20E+06 > -1.17E+05 > -4.98E+05 -3.06E+05 1.58E+06 -1.16E+06 6.83E+05 > -3.18E+06 -6.34E+05 5.16E+05 -1.57E+06 > 5.57E+05 5.62E+05 7.09E+06 -3.40E+05 1.23E+06 > 2.18E+05 > 5.84E+06 1.58E+06 -2.92E+07 -6.37E+06 -4.90E+06 > 3.87E+06 4.51E+06 -1.70E+07 1.89E+07 > 8.29E+04 -7.84E+06 -1.93E+07 7.16E+06 6.74E+06 > 1.27E+07 > -2.67E+06 -1.16E+06 -6.37E+06 -1.52E+06 -2.11E+06 > -1.70E+06 -2.34E+06 1.73E+06 6.97E+05 > 2.72E+05 -2.43E+06 -6.30E+05 2.77E+06 4.66E+06 > 2.07E+06 > 3.01E+06 6.83E+05 -4.90E+06 -2.11E+06 9.17E+05 > -6.08E+05 1.89E+06 -5.44E+06 1.56E+06 > 1.98E+05 -2.42E+05 3.23E+06 1.40E+05 3.00E+06 > 2.68E+06 > -7.98E+06 -3.18E+06 3.87E+06 -1.70E+06 -6.08E+05 > -8.91E+06 -7.01E+06 1.12E+07 -9.57E+06 > 1.34E+06 -1.97E+04 1.77E+07 1.22E+06 6.79E+06 > -1.59E+06 > -8.35E+05 -6.34E+05 4.51E+06 -2.34E+06 1.89E+06 > -7.01E+06 -1.17E+06 9.99E+05 -4.22E+06 > 1.26E+06 1.68E+06 1.66E+07 -1.12E+06 2.48E+06 > 1.26E+05 > 4.61E+05 5.16E+05 -1.70E+07 1.73E+06 -5.44E+06 > 1.12E+07 9.99E+05 -3.04E+06 1.07E+07 > -1.97E+06 -5.76E+06 -3.12E+07 4.89E+06 4.64E+05 > 3.34E+06 > -5.96E+06 -1.57E+06 1.89E+07 6.97E+05 1.56E+06 > -9.57E+06 -4.22E+06 1.07E+07 -6.48E+06 > 1.56E+06 3.66E+06 1.79E+07 -2.94E+06 -5.67E+06 > -5.16E+06 > 1.38E+06 5.57E+05 8.29E+04 2.72E+05 1.98E+05 > 1.34E+06 1.26E+06 -1.97E+06 1.56E+06 > -1.07E+05 1.66E+05 -2.50E+06 -3.38E+05 -1.67E+06 > 1.75E+05 > 2.58E+06 5.62E+05 -7.84E+06 -2.43E+06 -2.42E+05 > -1.97E+04 1.68E+06 -5.76E+06 3.66E+06 > 1.66E+05 -1.39E+06 -3.87E+05 1.26E+06 3.43E+06 > 3.72E+06 > 2.11E+07 7.09E+06 -1.93E+07 -6.30E+05 3.23E+06 > 1.77E+07 1.66E+07 -3.12E+07 1.79E+07 > -2.50E+06 -3.87E+05 -2.65E+07 -2.00E+06 -3.98E+06 > 7.89E+06 > -1.99E+06 -3.40E+05 7.16E+06 2.77E+06 1.40E+05 > 1.22E+06 -1.12E+06 4.89E+06 -2.94E+06 > -3.38E+05 1.26E+06 -2.00E+06 -1.21E+06 -3.92E+06 > -3.63E+06 > 3.20E+06 1.23E+06 6.74E+06 4.66E+06 3.00E+06 > 6.79E+06 2.48E+06 4.64E+05 -5.67E+06 > -1.67E+06 3.43E+06 -3.98E+06 -3.92E+06 -3.15E+06 > -5.01E+06 > -1.17E+05 2.18E+05 1.27E+07 2.07E+06 2.68E+06 > -1.59E+06 1.26E+05 3.34E+06 -5.16E+06 > 1.75E+05 3.72E+06 7.89E+06 -3.63E+06 -5.01E+06 > -4.36E+06 > > Could it be that I am using `inv()` wrongly? Or is there a bug in the > implementation?
