delphi-拟定一组最优参数使得计算数据与实际测量数据的误差最小(水文学中求单位线的算法)(100分)

  • 主题发起人 主题发起人 东方龙马
  • 开始时间 开始时间

东方龙马

Unregistered / Unconfirmed
GUEST, unregistred user!
关系式:
Q1=h1*q1/10
Q2=h2*q1/10+h1*q2/10
Q3=h3*q1/10+h2*q2/10+h1*q3/10
.....

测量数据即已知数据: Q1,Q2,Q3,Q4.......Qn
h1,h2,h3,...........hn

q1,q2,q3,........qn 未知

拟定数据: q1,q2,q3,q4,......qn
使得根据拟定的q值算得的Q值与实测值误差最小


用什么算法?
 
没有什么算法,我只是按照你的这些计算公式,写了几行代码,你可以测试看看。

const n=100; //假设现在有100个数据。

var
h:array[1..n] of double;
Q:array[1..n] of double;
qq:array[1..n] of double;//需要计算的系数。
i,j,k:integer;
temp:double;
begin
qq[1]:=Q[1]*10/h[1];
for i:=2 to n do
begin
temp:=0;
for j:=1 to i-1 do
temp:=temp+h[i-j+1]*qq[j]/10;
qq:=(Q-temp)*10/h;
end;
end;
说明:
1、数组大小我做成固定的了。你自己可以做成动态的,根据数据量调整。
2、本代码没有经过测试。算是一种思路。
3、当然是祝你好运
 
你把这个理解成方程的问题了,不是解方程,我这样试过的,无解.
应该是搜索参数吧,我最终的目的是用试算得到的q值去求Q,即预报Q,使得计算得到的Q值尽量接近实际测量值,使我的预报更准确.程序中还应考虑到误差最小.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部