24小时热门版块排行榜    

查看: 2706  |  回复: 24

gielcheen

木虫 (正式写手)

引用回帖:
: Originally posted by gbb19880913 at 2012-02-27 19:52:51:
origin7.5 第四章里面的线性拟合

你的这个回答,我真不知道说什么好。
11楼2012-02-27 20:25:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gielcheen

木虫 (正式写手)

引用回帖:
: Originally posted by dingd at 2012-02-27 20:12:49:
可能的话把相关数据放上来。

t是x,不是y,打错了
12楼2012-02-27 20:26:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gielcheen

木虫 (正式写手)

引用回帖:
9楼: Originally posted by dingd at 2012-02-27 20:12:49:
可能的话把相关数据放上来。

Constant n = 10000;
Function    y=(6/pi^2)*(Sum(i=1:n)((1/pi^2)*exp(-n^2*pi^2*a*x/0.000001));
Data ;
0        0.98501
0.21        29.86622
0.42        32.67416
1        36.97943
4        43.80644
7        48.87115
10        51.80471
14        53.65742
18        57.08069
22        59.32729
26        60.3525
30        61.04827
35        62.75492
42        65.76456
49        68.92578
60        74.15131
这是我写的程序,运行不出来,请问有什么错误吗?
13楼2012-02-27 20:31:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

gielcheen(金币+10): 有帮助 2012-02-28 14:04:02
小雨萌萌(金币+2): 3Q 2012-02-29 09:44:41
1:左右括号不匹配,改正后可以运行
2:仅有一个参数,拟合效果不好,能确认公式正确吗?n=10000时仅计算一次化多少时间?简化下吧,或改成积分形式。
14楼2012-02-28 11:57:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gielcheen

木虫 (正式写手)

引用回帖:
10楼: Originally posted by gielcheen at 2012-02-27 20:24:38:
0        0.98501
0.21        29.86622
0.42        32.67416
1        36.97943
4        43.80644
7        48.87115
10        51.80471
14        53.65742
18        57.08069
22        59.32729
26        60.3525
30        61.04827
35        62.75492
42        65.76456
49        68.92578
60         ...

Parameter a;
Variable  x,y;
Function    y=1-(6/pi^2)*(Sum(n=1:999)((1/pi^2)*exp(-n^2*pi^2*a*x/0.000001)));
data;
0        0.98501
0.21        29.86622
0.42        32.67416
1        36.97943
4        43.80644
7        48.87115
10        51.80471
14        53.65742
18        57.08069
22        59.32729
26        60.3525
30        61.04827
35        62.75492
42        65.76456
49        68.92578
60        74.15131
我也没办法简化了,n=999已经是极限了,n=1000时就报告说函数出错,您看您能帮我写一下程序吗?


15楼2012-02-28 14:03:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

gielcheen(金币+50): ★★★很有帮助 非常感谢,但是编程没有看懂。况且n是到正无穷,如果只到1200,还是不太好! 2012-02-28 16:44:11
用下列编程模式代码(n= 1200):
CODE:
Parameter a;
StartRange = [1E-100,1e-10];
Variable  x,y;
StartProgram [Pascal];
Procedure MainModel;
var i, n: integer;
    td: double;
Begin
    for i := 0 to DataLength - 1 do begin
        td := 0;
        for n := 1 to 1200 do
            td := td + exp(-n^2*pi^2*a*x[i]/0.000001);
        y[i] := 1/pi^2*td;
    end;
End;
EndProgram;
data;
0        0.98501
0.21        29.86622
0.42        32.67416
1        36.97943
4        43.80644
7        48.87115
10        51.80471
14        53.65742
18        57.08069
22        59.32729
26        60.3525
30        61.04827
35        62.75492
42        65.76456
49        68.92578
60        74.15131

参数                  最佳估算
--------------------        -------------
a        1.75957508897304E-14

====== 输出结果 =====

文件:数据文件 - 1
No        目标y        计算y
1        0.98501        121.585420370805
2        29.86622        119.487562839931
3        32.67416        117.454445286095
4        36.97943        112.156261269926
5        43.80644        90.7639936726885
6        48.87115        76.4042344209492
7        51.80471        66.3661814206772
8        53.65742        57.0694131575808
9        57.08069        50.6002923996484
10        59.32729        45.8466101914636
11        60.3525        42.1938718181288
12        61.04827        39.2848251790096
13        62.75492        36.3697677962097
14        65.76456        33.1972842183255
15        68.92578        30.7310720717936
16        74.15131        27.7666907960382
16楼2012-02-28 14:55:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

小雨萌萌(金币+3): 3Q 2012-02-29 09:45:00
你可以把代码中的1200换成12000或更多,只是太化时间。代码已给出了自己慢慢算吧。
17楼2012-02-28 20:15:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gielcheen

木虫 (正式写手)

引用回帖:
: Originally posted by dingd at 2012-02-28 20:15:44:
你可以把代码中的1200换成12000或更多,只是太化时间。代码已给出了自己慢慢算吧。

能不用数代替,用正无穷算吗?
18楼2012-02-29 08:11:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

gielcheen(金币+20): ★★★很有帮助 2012-02-29 09:15:57
“正无穷”只是个概念上的东西,数值计算时必须有具体值的。要是你的公式随着n的增加而收敛(趋于稳定),此时“正无穷”就可以用这个n值代替,否则如果发散说明你的公式有问题。
19楼2012-02-29 08:33:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gielcheen

木虫 (正式写手)

引用回帖:
: Originally posted by dingd at 2012-02-29 08:33:27:
“正无穷”只是个概念上的东西,数值计算时必须有具体值的。要是你的公式随着n的增加而收敛(趋于稳定),此时“正无穷”就可以用这个n值代替,否则如果发散说明你的公式有问题。

我把你给我的程序复制到1stopt里面了,但是无法计算,点了执行计算毫无反应。还有,能解释一下各行的意思吗?我在这方面是小白!
20楼2012-02-29 09:15:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gielcheen 的主题更新
信息提示
请填处理意见