24小时热门版块排行榜    

查看: 2101  |  回复: 28
本帖产生 2 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

sudo

木虫 (正式写手)

[交流] 【致H兄】数列题的万能多项式拟合求法 已有2人参与

中秋快到了无心工作,就娱乐一下吧~

不知道是怎么回事的虫友请看这个帖子:
http://muchong.com/bbs/viewthread.php?tid=3573558&fpage=0&view=&highlight=&page=1

分析也在那个帖子里面啦,就不多说了,放MATLAB代码:
CODE:
function av = myPolyFit(y)
%A * av = y
    n = length(y);
    y = y(:); %make `y` a column vector
   
    %construct `A`
    A = (1:n)' * ones(1,n);
    for j = n-2 :-1: 1
        A(:,j) = A(:,j) .* A(:,j+1);
    end
    A(:,n) = ones(n,1);
   
    av = A\y;

其中y是序列,av是所找到的多项式的系数。

就以H兄的题目为例子吧
22   26   ()   23   24    21  ()    18

括号里面的数据可以乱填,比如这里就都填20吧,那么就有这段MATLAB程序:
CODE:
y=[22 26 20 23 24 21 20 18];
av=myPolyFit(y);
n=1:0.001:9;
val=polyval(av, n);
poly2str(av, 'n')
plot(n, val)

输出的多项式为:
CODE:
   0.0047619 n^7 - 0.18889 n^6 + 3.025 n^5 - 25.1806 n^4 + 116.3583 n^3
   - 293.6306 n^2 + 365.6119 n - 144

输出的图为:


[ Last edited by sudo on 2011-9-9 at 16:13 ]
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)


余泽成(金币+1): 鼓励讨论! 2011-09-10 20:28:35
引用回帖:
15楼: Originally posted by wangww2011 at 2011-09-10 10:01:06:
呵呵 你这个取模的话会出现不连续性,

确实,把定义域只能是整数域了

不过实话讲,对于数列题,定义域能在R内能连续的“通项公式”其实也不多吧

比如

(-1)^n = exp(iπ)^n = exp(inπ)

并不能在R上连续啊,只能在C上连续~

PS:我又想了下...莫非你所指的“连续性”不是实变函数论中的定义?

[ Last edited by sudo on 2011-9-10 at 10:11 ]
16楼2011-09-10 10:10:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 29 个回答

huycwork

金虫 (著名写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
xzhdty(金币+2): 欢迎常来程序语言看看 2011-09-09 23:08:48
余泽成: 你们都是高手,惺惺相惜啊,哈哈! 2011-09-09 23:38:20
侬这动静闹得这般震撼,风口浪尖儿的
一般情况下如果等差数列,比如1 2 3 4 5 6。
俺表示淡定,说,这个用一个项就可以得出答案了!
Matlab表示淡定,想,sudo同学给了俺一个段儿呢!
计算机表示淡定,合计着,啥时把Matlab调过来,请sudo吃个月饼,一顿饭就解决了!
广大虫友表示淡定,这有啥,这方法不是那儿有嘛!
出考题的老师表示不够淡定,啥?六次方!
漩涡的中心有一块空地,空空的。
2楼2011-09-09 17:51:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
xzhdty(金币+1): 中秋快乐! 2011-09-09 23:09:05
引用回帖:
1楼: Originally posted by sudo at 2011-09-09 16:11:12:
中秋快到了无心工作,就娱乐一下吧~

不知道是怎么回事的虫友请看这个帖子:
http://muchong.com/bbs/viewthread.php?tid=3573558&fpage=0&view=&highlight=&page=1

分析也在那 ...

中秋快乐!

你这个纯多项式拟合不靠谱,因为这是局部的拟合,而实际上那个数列可以无限长的啊
3楼2011-09-09 18:03:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
送鲜花一朵
余泽成(程序强帖+1): 鼓励交流! 2011-09-09 23:39:00
依我看,待定系数法就差不离了,能解决90%以上此类题,分两类,一类是指数式:
f2n = ab^n
另外一类是多项式,这个最高项由数据的多数决定,上面的式子占去两个参数,剩下的就归它:
f1n = an^3+bn^2+cn+d
将两类混合在一起建立方程,就是:
fn = ab^n+cn^3+dn^2+en+f
然后代入自然数列出求解矩阵,剩下的就是解方程组的工夫了。
漩涡的中心有一块空地,空空的。
4楼2011-09-09 18:39:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见