- 注册时间
- 2009-2-12
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 22688
- 在线时间
- 小时
|
发表于 2020-6-3 17:13:24
|
显示全部楼层
我的代码 有一部分的手工调参的过程。5和7的时候跟mathe的一样,之后的都比mathe的要好些,嘿嘿,先贴结果:
n=5的时候[等同于mathe在楼上贴出的5.5837424137607321737587108695119652893]::
{5.5837424137607321737587108695119652893919081384213,{f[1]->1.0774915816252611015093454171487320315423587907721,f[2]->-0.79707982464586797618833901245223296846916963478189,f[3]->-0.69346823829996056491061216466765819739714481880392,f[4]->-0.73893224788837763464989514401058586127422509002876,f[5]->1.1519887292089450742395009039817449955981807528424}}
n=7的时候[等同于mathe在楼上贴出的7.2429439431253376102344469504453164735]::
{7.2429439431253376102344469504453164735238599972906,{f[1]->1.0000000000000000000000000000000000000000000000000,f[2]->-0.828849738224098355469939271886081951515338888037,f[3]->-0.74673404415013914960661076172666833989974649116707,f[4]->-0.73557118697707915982126609056357065994091604934711,f[5]->-0.80635081158828060112893221736553912815519827988095,f[6]->1.0285361064989210188156138252164780690963323208595,f[7]->1.0889696744406762472111345163253820104148673875722}}
n=9的时候[优于mathe在楼上贴出的9.1767206884756847786773243621684481839]:
{9.1208835938805801963410199725647599711420989460098,{f[1]->1.0000000000000000000000000000000000000000000000000,f[2]->0.930740206278065169727878722614768732582068478621,f[3]->-0.82130885143478080833013734600956493201676736245317,f[4]->-0.75941909989461782471627497384130476496768405393861,f[5]->-0.73633935236349721211808185563486105425924375810856,f[6]->-0.75116066726416262783660468242271140263430250182076,f[7]->-0.81183293532881364488491012222660861488130465873415,f[8]->0.94193193905706388635947055866378568804168301792334,f[9]->1.0073887609507430617986596988564963481355508385114}}
n=11的时候[优于mathe在楼上贴出的11.130551383065715848548656261520702727]:
{11.0681076691778873386044486618962711125899559599643068476885,{f[1]->1.00000000000000000000000000000000000000000000000000000000000,f[2]->1.0591079647066245571448582028357748512073505879395410639344,f[3]->1.07655514133327716901095323093407555338507084854829059567090,f[4]->1.05288850660187980210135568948437222267333817937289464469642,f[5]->0.994280013163685428624838161017644721809755939953083019131955,f[6]->-0.910290822148993589951480728067057691605423737742647491216290,f[7]->-0.857308495551433440741403062929512690566358372155343282247626,f[8]->-0.830494641418891092720346939039322268355117229693517788260689,f[9]->-0.828119905995725776386219333675006922630104557827005576626012,f[10]->-0.851408342076334153830990563899569534839248761361667935868589,f[11]->-0.905209418614088903251564656661398241079262897033627249214475}}
n=13的时候[优于mathe在楼上贴出的13.081351595802460124520674307229984034]:
内点法给出的结果:
{13.041937521812376592163675384366442597497488571462,{f[1]->1.0000000000000000000000000000000000000000000000000,f[2]->0.998285819436214092906357513226775372465931212257,f[3]->0.97415083639981177328608567343885794441296248062401,f[4]->0.93061064699648867926715362115714003451626980517661,f[5]->-0.87185599512201005221876890334105574262707876958601,f[6]->-0.83184469110362413512234719903008557078503529566325,f[7]->-0.80812069623983331068454037995713688192691376783600,f[8]->-0.79947336058841925189129348801609782975079175394005,f[9]->-0.80581260972087375624258254717035297637092550859083,f[10]->-0.82822539959381550472982310521769437603471995829045,f[11]->-0.86924714828958058285319710685492704141350078989848,f[12]->0.93345820269872347033942567076775013009003935341953,f[13]->0.97807439512691857794353025099682693742376299232772}}
n=15的时候:
内点法给出的结果:
{15.027579704577829300111481675284693984939461227768,{f[1]->1.005055135433105614515747160447609006197748555743,f[2]->0.96794553942599517311429387868409700111977101242392,f[3]->0.94366007520733754613887327193557942016752832328608,f[4]->0.93127634609807370476344594301335054862532636927128,f[5]->0.93046546385997668503487260555259974554836614259297,f[6]->0.94148062487649719552435996333869054560186558588658,f[7]->0.96521017646890419866949116435038820891274500142133,f[8]->1.0033096377380125779295465619784533881022059256324,f[9]->-1.0584458213366884534887153623496661126780305719296,f[10]->-1.0993458231520614894768999422508587994762910340487,f[11]->-1.1240534881668975071698655862799799543494507807340,f[12]->-1.1315862682443048646869792085963908718238985769344,f[13]->-1.1220102098390985543233534351001296542215192794486,f[14]->-1.0963821589817560536838880056631652422156449634511,f[15]->-1.0565792293870957728609290090605772295107217097113}}
n=17的时候:
内点法给出的结果:
{17.021781121957166209092328829372393295839915421680,{f[1]->1.000000000000000444089612867969937607300082461119,f[2]->1.0222442218069296508185113412423675450457001562661,f[3]->1.0323064821707284470006570136172189114331976817558,f[4]->1.0300017438640309814118426503880446379339677291732,f[5]->1.0157260719486122444557306759512380066493708617276,f[6]->0.99039708979579957435258547365002932707617427117558,f[7]->-0.95535102129949301877445004819828984836318198197895,f[8]->0.93116880823997103888568125733505537031809575384725,f[9]->-0.89845244071703528975609029365772464751310516561516,f[10]->-0.87539582445591642203031233000419125857485861646712,f[11]->-0.86124947542283315638385615012682323473016709301033,f[12]->-0.85562189616645118447308581316506524261901185619277,f[13]->-0.85845739887525336742555536359838392048703380520514,f[14]->-0.87004234992781356398372511373462494930619105335011,f[15]->-0.89104209220582358451101259974940452861961233629691,f[16]->-0.92257582642735957749785000024788048504024280232517,f[17]->0.96634390767190678382131643232849670949681579537714}}
- With[{param=f/@Range[7]},NMinimize[{(param/RotateLeft[param])^2//Total,Total[param]==0},param,Method->{"SimulatedAnnealing","PerturbationScale"->2},WorkingPrecision->50]]
复制代码
模拟退火算法有一个参数需要手工挨个的试。不过有mathe率先立出的靶子就是好, 可以不停的试,直到比mathe的结果要好为止,哈哈哈,^_^
。
。
|
|