赞 | 68 |
VIP | 397 |
好人卡 | 580 |
积分 | 22 |
经验 | 311270 |
最后登录 | 2022-3-9 |
在线时间 | 4033 小时 |
Lv3.寻梦者 (版主) …あたしは天使なんかじゃないわ
- 梦石
- 0
- 星屑
- 2208
- 在线时间
- 4033 小时
- 注册时间
- 2010-10-4
- 帖子
- 10779
|
本帖最后由 taroxd 于 2014-12-13 10:17 编辑
如果用浮点数还能愉快地玩耍,那么这个方程组也就没必要叫“病态方程组”了(虽然这也不能全怪这个方程组)。
这东西怎么看都不像是能过 2L 的测试的样子。
require 'mathn' A = Matrix.build(40) { |i, j| 1 / (i + j + 1) } B = Vector.elements( Array.new(40) { rand(100) }, false ) X = A.lup.solve(B) A2 = Matrix.build(40) { |i, j| A[i, j].to_f } B2 = B.map(&:to_f) X2 = A2.lup.solve(B2) p X # Vector[-41204654966448188693015860898400, 64235466738228124613585947809103320, -24999425729484056440789349773728301560, 4312632618023953127737616629243545310800, -416834536518183296901832394139484658082720, 25650104587140828332044494062339343403484160, -1088939795442453866127285577962364069205766720, 33697041543276596536378283411323592523760028640, -790974726906292805627755164038323310037073799040, 14513688112148767158784851090967620508491320397120, -213102998234918161406993817590787969972261796795200, 2550739711933858502196183556945399048080903134630400, -25265460816158566284854961963196554058865193979305600, 209655347391483380949948114883862598648185783368188000, -1472317929610360216399275799499213808598410352678056000, 8823899481771239470463140908967335036544864771640431200, -45447312031836345926514604635474318360579885585754540800, 202323586237055658320987233528987237012277983227618522000, -782215515271317637776800279204343284818135846875320574000, 2636339643334630545197085250347972091846738146757076757600, -7769015002968348386789602935037970820177062401584205514400, 20062393072611156123500742808537037282775121820463766704000, -45467207635671115330826321631693980156406046285498652028000, 90500279257437170651126484238905014248382977036184145470400, -158220524705684335503420468756033651122051535368350145164800, 242793486925176546784247506291774026030643882571479299091200, -326529803422724282501788194672461527876816990551890844152640, 383956230388561748117329667048606458335797438410765386337920, -393394953898381838006076094574719923841691451968538678062400, 349582198219425507170122294626978669044733349644990743087040, -267780246338543912108534297825848944701017236865347750289920, 175398526755662377342668453351987555252685882340445826271040, -97210241642192683009658313825945475670296640119895807993280, 44953105423395004485051607588642271581828902156511908390480, -17018769818133643008664208181577450351441820065629524969040, 5136331063522087167921406649277343281025414285092791532000, -1188051693602929410442319649819544874639699188756109323200, 197714957973832360662569597574649551101063022064262611200, -21070381807769557314760754730003250983795468521073076800, 1079750846097773511966790258073506833522896541981672000] p X2 # Vector[226401879431.7461, -38443259920511.24, 1608692912325977.8, -2.8795868662077496e+16, 2.713937334972949e+17, -1.4772556267160317e+18, 4.765725899422089e+18, -8.661433147444437e+18, 6.601730904805035e+18, 3.6531255102023296e+18, -9.809741699533226e+18, 5.487016918751397e+18, -4.115317545966278e+18, 4.368406644473192e+18, 3.868008160837833e+18, -5.624540948510349e+18, 4.0391518105370204e+18, -1.0340112932011719e+19, 3.467085768855766e+18, 4.996887238425604e+18, 1.1860209714630723e+18, -6.639360649706879e+17, 3.1423915658358176e+17, -3.8660489562707917e+18, 1.1174993245161966e+18, 5.6965508901708096e+17, 1.1650756202110728e+17, -4.3261250764329805e+18, 6.354846202561983e+18, -4.247963939114686e+18, 5.390063380330933e+17, 4.32268276033594e+17, 5.959347076196008e+18, 1.1622222190279557e+18, -5.099148239425522e+18, -9.079555653284048e+18, 2.6172594659787607e+18, 1.2138887093102737e+19, -7.283494219168522e+18, 5.956079062367697e+17]
require 'mathn'
A = Matrix.build(40) { |i, j| 1 / (i + j + 1) }
B = Vector.elements( Array.new(40) { rand(100) }, false )
X = A.lup.solve(B)
A2 = Matrix.build(40) { |i, j| A[i, j].to_f }
B2 = B.map(&:to_f)
X2 = A2.lup.solve(B2)
p X
# Vector[-41204654966448188693015860898400, 64235466738228124613585947809103320, -24999425729484056440789349773728301560, 4312632618023953127737616629243545310800, -416834536518183296901832394139484658082720, 25650104587140828332044494062339343403484160, -1088939795442453866127285577962364069205766720, 33697041543276596536378283411323592523760028640, -790974726906292805627755164038323310037073799040, 14513688112148767158784851090967620508491320397120, -213102998234918161406993817590787969972261796795200, 2550739711933858502196183556945399048080903134630400, -25265460816158566284854961963196554058865193979305600, 209655347391483380949948114883862598648185783368188000, -1472317929610360216399275799499213808598410352678056000, 8823899481771239470463140908967335036544864771640431200, -45447312031836345926514604635474318360579885585754540800, 202323586237055658320987233528987237012277983227618522000, -782215515271317637776800279204343284818135846875320574000, 2636339643334630545197085250347972091846738146757076757600, -7769015002968348386789602935037970820177062401584205514400, 20062393072611156123500742808537037282775121820463766704000, -45467207635671115330826321631693980156406046285498652028000, 90500279257437170651126484238905014248382977036184145470400, -158220524705684335503420468756033651122051535368350145164800, 242793486925176546784247506291774026030643882571479299091200, -326529803422724282501788194672461527876816990551890844152640, 383956230388561748117329667048606458335797438410765386337920, -393394953898381838006076094574719923841691451968538678062400, 349582198219425507170122294626978669044733349644990743087040, -267780246338543912108534297825848944701017236865347750289920, 175398526755662377342668453351987555252685882340445826271040, -97210241642192683009658313825945475670296640119895807993280, 44953105423395004485051607588642271581828902156511908390480, -17018769818133643008664208181577450351441820065629524969040, 5136331063522087167921406649277343281025414285092791532000, -1188051693602929410442319649819544874639699188756109323200, 197714957973832360662569597574649551101063022064262611200, -21070381807769557314760754730003250983795468521073076800, 1079750846097773511966790258073506833522896541981672000]
p X2
# Vector[226401879431.7461, -38443259920511.24, 1608692912325977.8, -2.8795868662077496e+16, 2.713937334972949e+17, -1.4772556267160317e+18, 4.765725899422089e+18, -8.661433147444437e+18, 6.601730904805035e+18, 3.6531255102023296e+18, -9.809741699533226e+18, 5.487016918751397e+18, -4.115317545966278e+18, 4.368406644473192e+18, 3.868008160837833e+18, -5.624540948510349e+18, 4.0391518105370204e+18, -1.0340112932011719e+19, 3.467085768855766e+18, 4.996887238425604e+18, 1.1860209714630723e+18, -6.639360649706879e+17, 3.1423915658358176e+17, -3.8660489562707917e+18, 1.1174993245161966e+18, 5.6965508901708096e+17, 1.1650756202110728e+17, -4.3261250764329805e+18, 6.354846202561983e+18, -4.247963939114686e+18, 5.390063380330933e+17, 4.32268276033594e+17, 5.959347076196008e+18, 1.1622222190279557e+18, -5.099148239425522e+18, -9.079555653284048e+18, 2.6172594659787607e+18, 1.2138887093102737e+19, -7.283494219168522e+18, 5.956079062367697e+17]
|
|