24小时热门版块排行榜    

查看: 2800  |  回复: 17

gielcheen

木虫 (正式写手)

[求助] matlab拟合求值

如等式所示:等式左边相当于y,等式右边的t相当于x,R=0.01,我想使用matlab通过该函数拟合求出D?那么程序怎么写?以下是x和y的值,左边一侧是x,右边一侧是y,跪请高人解答!
0        0.00985
0.21   0.298662
0.42   0.326742
1        0.369794
4        0.438064
7        0.488712
10      0.518047
14      0.536574
18      0.570807
22      0.593273
26      0.603525
30     0.610483
35     0.627549
42    0.657646
49    0.689258
60    0.741513
拒绝没有营养的回复!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

wraiment

禁虫 (初入文坛)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
gielcheen: 金币+30, ★★★很有帮助 2012-03-22 18:57:46
本帖内容被屏蔽

2楼2012-03-22 11:22:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gielcheen

木虫 (正式写手)

引用回帖:
2楼: Originally posted by wraiment at 2012-03-22 11:22:33:
问题在于这里是个无穷级数。不过这个级数还算收敛的比较快,我的意思是说趋于0的速度比较快,然后可以取前面几项来近似,误差不会太大,比如取十项,误差一定小于10%。10%的得来是去掉了后面的指数项分析得来。考 ...

能否给个程序?真的急需!
3楼2012-03-22 19:48:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xylecust

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
c++的程序都给你了你怎么还在求助?????????????
4楼2012-03-22 22:34:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gielcheen

木虫 (正式写手)

引用回帖:
4楼: Originally posted by xylecust at 2012-03-22 22:34:36:
c++的程序都给你了你怎么还在求助?????????????

因为目前只限于使用matlab,而且之前的帖子不是c++的程序,是1opt,我无法使用。
5楼2012-03-23 12:11:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluesine

铁杆木虫 (职业作家)

科苑小木虫

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
gielcheen: 金币+50, ★★★★★最佳答案, 五体投地!佩服至极!感激涕零! 2012-03-23 16:55:20
程序如下:
%%%%%%%%%%%%%%%% 函数定义
function y=fitD(x,xdata)
global N R
for i=1:length(xdata)
    n=1:N;
    x0=1./n.^2.*exp(-n.^2*pi^2*x*xdata(i)/R^2);
    y(i)=1-6/pi^2*sum(x0);
end
end
%%%%%%%%%%%%%
%%%%%%%%%%%%%主程序
clear;clc;
global N R
data=[
0        0.00985;
0.21   0.298662;
0.42   0.326742;
1        0.369794;
4        0.438064;
7        0.488712;
10      0.518047;
14      0.536574;
18      0.570807;
22      0.593273;
26      0.603525;
30     0.610483;
35     0.627549;
42    0.657646;
49    0.689258;
60    0.741513];
xdata=data(:,2)';
ydata=data(:,1)';

x0=0.001;
N=30;
R=0.01;
x=lsqcurvefit(@fitD,x0,xdata,ydata)

%%%%%%%%%%%%%%%%%
结果:

x =

  3.8190e-004
板凳要做十年冷文章不发一个字
6楼2012-03-23 13:03:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluesine

铁杆木虫 (职业作家)

科苑小木虫

【答案】应助回帖

说明一下,取的项数是30。貌似精度足够好了,最后的x就是你要求的结果D
板凳要做十年冷文章不发一个字
7楼2012-03-23 13:04:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xylecust

木虫 (小有名气)

【答案】应助回帖

D      2.992*10e-06
t       yex       ycal
0       0.00985       0.000810568
0.21       0.298662       0.0565686
0.42       0.326742       0.0800001
1       0.369794       0.123443
4       0.438064       0.246886
7       0.488712       0.326599
10       0.518047       0.390351
14       0.536574       0.461719
18       0.570807       0.522874
22       0.593273       0.57644
26       0.603525       0.62377
30       0.610483       0.665735
35       0.627549       0.711637
42       0.657646       0.765492
49       0.689258       0.809286
60       0.741513       0.86218
8楼2012-03-23 13:55:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xylecust

木虫 (小有名气)

引用回帖:
6楼: Originally posted by bluesine at 2012-03-23 13:03:10:
程序如下:
%%%%%%%%%%%%%%%% 函数定义
function y=fitD(x,xdata)
global N R
for i=1:length(xdata)
    n=1:N;
    x0=1./n.^2.*exp(-n.^2*pi^2*x*xdata(i)/R^2);
    y(i)=1-6/pi^2*sum(x0);
end
end ...

这个程序算出来的值 根本不对~~~~~~~~~~~
9楼2012-03-25 23:25:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gielcheen

木虫 (正式写手)

引用回帖:
9楼: Originally posted by xylecust at 2012-03-25 23:25:22:
这个程序算出来的值 根本不对~~~~~~~~~~~

好像确实程序有些疑问,我同学也这么说的,你能给个程序吗?
10楼2012-03-26 11:28:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gielcheen 的主题更新
信息提示
请填处理意见