24小时热门版块排行榜    

查看: 2189  |  回复: 30
本帖产生 1 个 程序强帖 ,点击这里进行查看

wangww2011

木虫 (著名写手)

★ ★
ben_ladeng: 2011-09-09 12:48:48
余泽成(金币+2): 鼓励讨论! 2011-09-09 23:27:31
引用回帖:
18楼: Originally posted by huycwork at 2011-09-08 20:52:59:
应该只有一个公式才对…
如果允许两个公式,就该允许六个公式~

楼上的给出一个了,不用sin,cos也一样

a(2*n-1)=21+n
a(2*n)=28-5/2*n+(1/4)*(-1)^n+1/4
====>
CODE:
a(n)=(1+(-1)^(n+1))/2*(21+(n+1)/2)+(1+(-1)^n)/2*(28-5/4*n-1/4*(-1)^(n/2)+1/4)

不过这样好像很没有意思啊
CODE:
c=[]
for n in range(1,25):
    x=0.5*(1+(-1)**(n+1))*(21.5+n/2.0)
    y=0.5*(1+(-1)**(n))*(28.25-1.25*n-(-1)**(n/2)*0.25)
    c.append(int(x+y))
print c

21楼2011-09-08 21:55:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)


余泽成(金币+1): 鼓励讨论! 2011-09-09 23:27:46
引用回帖:
20楼: Originally posted by libralibra at 2011-09-08 21:49:19:
我顶这个,感觉是对的
奇偶项等差数列

偶项不是等差
22楼2011-09-08 21:56:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)


余泽成(金币+1): 鼓励讨论! 2011-09-09 23:27:56
引用回帖:
22楼: Originally posted by sudo at 2011-09-08 21:56:02:
偶项不是等差

偶项是等差数列 公差是-5/2 但是有两个初始值

[ Last edited by wangww2011 on 2011-9-8 at 22:03 ]
23楼2011-09-08 22:00:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖
引用回帖:
23楼: Originally posted by wangww2011 at 2011-09-08 22:00:43:
偶项是等差数列 公差是-5/2 但是有两个初始值
[ Last edited by wangww2011 on 2011-9-8 at 22:03 ]

都“但是”了,还叫等差啊...
24楼2011-09-08 22:07:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
引用回帖:
21楼: Originally posted by wangww2011 at 2011-09-08 21:55:35:
楼上的给出一个了,不用sin,cos也一样

a(2*n-1)=21+n
a(2*n)=28-5/2*n+(1/4)*(-1)^n+1/4
====>
[code]
a(n)=(1+(-1)^(n+1))/2*(21+(n+1)/2)+(1+(-1)^n)/2*(28-5/4*n-1/4*(-1)^(n/2)+1/4)
[/code ...

这个公式也太复杂了…
漩涡的中心有一块空地,空空的。
25楼2011-09-08 22:07:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+1): 鼓励讨论! 2011-09-09 23:28:11
引用回帖:
25楼: Originally posted by huycwork at 2011-09-08 22:07:52:
这个公式也太复杂了…

其实多项式拟合就不复杂,就是求解痛苦而已,总而言之就是只要给出的数列项数有限,那么它就是万能的方法,而且对于空出来的位置还可以有无数多解
26楼2011-09-08 22:10:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+1): 鼓励讨论! 2011-09-09 23:28:23
引用回帖:
26楼: Originally posted by sudo at 2011-09-08 22:10:25:
其实多项式拟合就不复杂,就是求解痛苦而已,总而言之就是只要给出的数列项数有限,那么它就是万能的方法,而且对于空出来的位置还可以有无数多解

多项式拟合的主要问题是确定最高项~
漩涡的中心有一块空地,空空的。
27楼2011-09-08 22:27:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
28楼2011-09-08 22:31:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励交流! 2011-09-09 23:29:03
引用回帖:
27楼: Originally posted by huycwork at 2011-09-08 22:27:37:
多项式拟合的主要问题是确定最高项~

这个好办

对于一个给出长度为n的序列,先待定最高项次数为n-1就好了嘛,这样必存在一个解。举个简答的例子
CODE:
n      1   2   3
a(n)   1   2   3

可以令a(n) = a2*n^2 + a1*n + a0

然后再代入上面3个数,恰好得到3元一次方程组(其中A为3x3矩阵,a(n)为列向量)

A * [a2 a1 a0]' = a(n)

CODE:
[1 1 1]    [a2]     [1]
[4 2 1] *  [a1]  =  [2]
[9 3 1]    [a0]     [3]

这样就必有且只有一组解[a2 a1 a0]'=[0 1 0]'了,也就是得出a(n)=n

扩展一下,从矩阵A上看:
CODE:
1          1    ...  1  1
2^(n-1) 2^(n-2) ... 2^1 1
3^(n-1) 3^(n-2) ... 3^1 1
..........................
n^(n-1) n^(n-2) ... n^1 1

列与列之间是指数关系,容易得各列都线性无关,所以A必满秩,故对于一般情况:

A * [a[n-1] ... a[1] a[0]]' = a(n)

必有且只有一组解,综上所述,对于任何一个给定序列,只要用这种万能的方法,无论在什么地方给空,随便在空里面填任意的数(整数),都可以找到一个完美的多项式拟合公式!


PS:要是小木虫支持matjax就完美了http://www.mathjax.org/

[ Last edited by sudo on 2011-9-9 at 14:17 ]
29楼2011-09-09 14:13:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3): 漂亮! 2011-09-09 23:30:02
引用回帖:
21楼: Originally posted by wangww2011 at 2011-09-08 21:55:35:
楼上的给出一个了,不用sin,cos也一样

a(2*n-1)=21+n
a(2*n)=28-5/2*n+(1/4)*(-1)^n+1/4

呃,其实我偏爱三角函数的原因是,这样造出来的a(n), n∈N+可以扩展为a(x),然后x∈(-∞, +∞)函数都有定义,美不胜收

MATLAB:
CODE:
n=0:0.001:10;
y=(21+(n+1)/2) .* (sin(pi*n/2)).^2 + (28.25-1.25*n-0.25*cos(pi*n/2)) .* (cos(pi*n/2)).^2;
plot(n,y)



[ Last edited by sudo on 2011-9-9 at 15:08 ]
30楼2011-09-09 15:06:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wangww2011 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见