找回密码
 欢迎注册
楼主: litaoye

[原创] 用1*2的骨牌覆盖m*n的矩形

[复制链接]
发表于 2012-9-1 14:47:57 | 显示全部楼层
Mathematica自带有第二类切比雪夫多项式的函数.所以,
总结mathe的思路,只需这样实现:

  1. V[n_, m_] := Sqrt[Det[Total[MatrixPower[I SparseArray[{i_, j_} /; Abs[i - j] == 1 -> 1, {n, n}], #[[1,1]]]*#[[2]] & /@ CoefficientRules[ChebyshevU[m, x/2], x]]]]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-2 20:07:07 | 显示全部楼层
上面的代码最后需要开平方,有点浪费计算量。由于考虑到m和n必须有一个是偶数的时候结果才非零,不妨设m=2s,我们可以将结果改写成:
$||\Prod_{j=1}^s U_n( i*cos((2j*pi)/(m+1)))||$
如果记函数
$f_s(x)=\Prod_{j=1}^s (x-2cos(2j*pi))$
那么用$f_s(x)$代替上面程序中$U_m(x)$最后就不需要开根号了,而$f_s(x)$也是整系数多项式
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-3 16:24:38 | 显示全部楼层
22# mathe
mathe总是站在制高点!
更正一下:
$f_s(x)=\Prod_{j=1}^s (x-2cos({2j*pi}/{2s+1}))$
=================
现在的问题就是能否得到 $f_s(x)$的递推公式,也即是它的行列式形式
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-3 19:43:06 | 显示全部楼层
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-3 21:29:55 | 显示全部楼层
24# mathe
发现还是原版的效率高一些,而且数据越大, 与原版的效率差距还拉大.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-3 21:54:29 | 显示全部楼层
那看来瓶颈在矩阵计算,不在行列式计算
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-3 21:56:42 | 显示全部楼层
还有可能是原方法只要整数阵,而新方法用到高斯整数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-6 12:14 , Processed in 0.076795 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表