拟和公式 ( 积分: 300 )

  • 主题发起人 主题发起人 ugvanxk
  • 开始时间 开始时间
U

ugvanxk

Unregistered / Unconfirmed
GUEST, unregistred user!
给出300-400组x,y的值,拟和一个公式,请高手帮忙.
 
给出300-400组x,y的值,拟和一个公式,请高手帮忙.
 
你把值给出来看看 然后我们给你想办法
 
我把值放到一个tstringlist里用查找的方法找,不过这样不好,最好拟和一个公式.
fdata.Add('-95.0=.0003');
fdata.Add('-94.5=.0007');
fdata.Add('-94.0=.0018');
fdata.Add('-93.5=.0036');
fdata.Add('-93.0=.0062');
fdata.Add('-92.5=.0094');
fdata.Add('-92.0=.0134');
fdata.Add('-91.5=.0181');
fdata.Add('-91.0=.0230');
fdata.Add('-90.5=.0280');
fdata.Add('-90.0=.0328');
fdata.Add('-89.5=.0378');
fdata.Add('-89.0=.0427');
fdata.Add('-88.5=.0475');
fdata.Add('-88.0=.0525');
fdata.Add('-87.5=.0574');
fdata.Add('-87.0=.0623');
fdata.Add('-86.5=.0672');
fdata.Add('-86.0=.0721');
fdata.Add('-85.5=.0771');
fdata.Add('-85.0=.0819');
fdata.Add('-84.5=.0869');
fdata.Add('-84.0=.0918');
fdata.Add('-83.5=.0967');
fdata.Add('-88.0=.1017');
fdata.Add('-82.5=.1066');
fdata.Add('-82.0=.1115');
fdata.Add('-81.5=.1164');
fdata.Add('-81.0=.1213');
fdata.Add('-80.5=.1263');
fdata.Add('-80.0=.1312');
fdata.Add('-79.5=.1362');
fdata.Add('-79.0=.1411');
fdata.Add('-78.5=.1460');
fdata.Add('-78.0=.1510');
fdata.Add('-77.5=.1559');
fdata.Add('-77.0=.1609');
fdata.Add('-76.5=.1658');
fdata.Add('-76.0=.1707');
fdata.Add('-75.5=.1757');
fdata.Add('-75.0=.1806');
fdata.Add('-74.6=.1856');
fdata.Add('-74.0=.1905');
fdata.Add('-73.5=.1954');
fdata.Add('-73.0=.2005');
fdata.Add('-72.5=.2054');
fdata.Add('-72.0=.2104');
fdata.Add('-71.5=.2153');
fdata.Add('-71.0=.2202');
fdata.Add('-70.5=.2252');
fdata.Add('-70.0=.2303');
fdata.Add('-69.5=.2353');
fdata.Add('-69.0=.2406');
fdata.Add('-68.5=.2459');
fdata.Add('-68.0=.2516');
fdata.Add('-67.5=.2578');
fdata.Add('-67.0=.2648');
fdata.Add('-66.5=.2726');
fdata.Add('-66.0=.2820');
fdata.Add('-65.5=.2929');
fdata.Add('-65.0=.3060');
fdata.Add('-64.5=.3216');
fdata.add('-64.0=.3395');
fdata.Add('-63.5=.3602');
fdata.Add('-63.0=.3855');
fdata.Add('-62.5=.4136');
fdata.Add('-62.0=.4456');
fdata.Add('-61.5=.4814');
fdata.Add('-61.0=.5212');
fdata.Add('-60.5=.5650');
fdata.Add('-60.0=.6129');
fdata.Add('-59.5=.6650');
fdata.Add('-59.0=.7210');
fdata.Add('-58.5=.7812');
fdata.Add('-58.0=.8453');
fdata.Add('-57.5=.9133');
fdata.Add('-57.0=.9850');
fdata.Add('-56.5=1.0602');
fdata.Add('-56.0=1.1388');
fdata.Add('-55.5=1.2204');
fdata.Add('-55.0=1.3049');
fdata.Add('-54.5=1.3916');
fdata.Add('-54.0=1.4804');
fdata.Add('-53.5=1.5710');
fdata.Add('-53.0=1.6628');
fdata.Add('-52.5=1.7558');
fdata.Add('-52.0=1.8495');
fdata.Add('-51.5=1.9436');
fdata.Add('-51.0=2.0381');
fdata.Add('-50.5=2.1328');
fdata.Add('-50.0=2.2277');
fdata.Add('-49.5=2.3224');
fdata.Add('-49.0=2.4172');
fdata.Add('-48.5=2.5118');
fdata.Add('-48.0=2.6063');
fdata.Add('-47.5=2.7005');
fdata.Add('-47.0=2.7944');
fdata.Add('-46.5=2.8882');
fdata.Add('-46.0=2.9816');
fdata.Add('-45.5=3.0749');
fdata.Add('-45.0=3.1676');
fdata.Add('-44.5=3.2601');
fdata.Add('-44.0=3.3521');
fdata.Add('-43.5=3.4439');
fdata.Add('-43.0=3.5351');
fdata.Add('-42.5=3.6259');
fdata.Add('-42.0=3.7163');
fdata.Add('-41.5=3.8062');
fdata.Add('-41.0=3.8956');
fdata.Add('-40.5=3.9845');
fdata.Add('-40.0=4.0729');
fdata.Add('-39.5=4.1608');
fdata.Add('-39.0=4.2479');
fdata.Add('-38.5=4.3345');
fdata.Add('-38.0=4.4206');
fdata.Add('-37.5=4.5061');
fdata.Add('-37.0=4.5909');
fdata.Add('-36.5=4.6750');
fdata.Add('-36.0=4.7585');
fdata.Add('-35.5=4.8411');
fdata.Add('-35.0=4.9231');
fdata.Add('-34.5=5.0044');
fdata.Add('-34.0=5.0849');
fdata.Add('-33.5=5.1647');
fdata.Add('-33.0=5.2436');
fdata.Add('-32.5=5.3217');
fdata.Add('-32.0=5.3991');
fdata.Add('-31.5=5.4754');
fdata.Add('-31.0=5.5511');
fdata.Add('-30.5=5.6258');
fdata.Add('-30.0=5.6997');
fdata.Add('-29.5=5.7727');
fdata.Add('-29.0=5.8447');
fdata.Add('-28.5=5.9158');
fdata.Add('-28.0=5.9858');
fdata.Add('-27.5=6.0551');
fdata.Add('-27.0=6.1233');
fdata.Add('-26.5=6.1905');
fdata.Add('-26.0=6.2568');
fdata.Add('-25.5=6.3219');
fdata.Add('-25.0=6.3862');
fdata.Add('-24.5=6.4492');
fdata.Add('-24.0=6.5113');
fdata.Add('-23.5=6.5723');
fdata.Add('-23.0=6.6323');
fdata.Add('-22.5=6.6912');
fdata.Add('-22.0=6.7488');
fdata.Add('-21.5=6.8054');
fdata.Add('-21.0=6.8611');
fdata.Add('-20.5=6.9154');
fdata.Add('-20.0=6.9686');
fdata.Add('-19.5=7.0206');
fdata.Add('-19.0=7.0715');
fdata.Add('-18.5=7.1212');
fdata.Add('-18.0=7.1697');
fdata.Add('-17.5=7.2171');
fdata.Add('-17.0=7.2631');
fdata.Add('-16.5=7.3081');
fdata.Add('-16.0=7.3517');
fdata.Add('-15.5=7.3942');
fdata.Add('-15.0=7.4354');
fdata.Add('-14.5=7.4753');
fdata.Add('-14.0=7.5141');
fdata.Add('-13.5=7.5516');
fdata.Add('-13.0=7.5878');
fdata.Add('-12.5=7.6226');
fdata.Add('-12.0=7.6562');
fdata.Add('-11.5=7.6886');
fdata.Add('-11.0=7.7195');
fdata.Add('-10.5=7.7492');
fdata.Add('-10.0=7.7776');
fdata.Add('-9.5=7.8046');
fdata.Add('-9.0=7.8303');
fdata.Add('-8.5=7.8547');
fdata.Add('-8.0=7.8778');
fdata.Add('-7.5=7.8995');
fdata.Add('-7.0=7.9198');
fdata.Add('-6.5=7.9387');
fdata.Add('-6.0=7.9563');
fdata.Add('-5.5=7.9724');
fdata.Add('-5.0=7.9873');
fdata.Add('-4.5=8.0008');
fdata.add('-4.0=8.0128');
fdata.Add('-3.5=8.0233');
fdata.Add('-3.0=8.0326');
fdata.Add('-2.5=8.0403');
fdata.Add('-2.0=8.0468');
fdata.Add('-1.5=8.0518');
fdata.add('-1.0=8.0563');
fdata.Add('-0.5=8.0575');
fdata.Add('0.0=8.0582');
fdata.add('0.5=8.0575');
fdata.add('1.0=8.0553');
fdata.Add('1.5=8.0517');
fdata.add('2.0=8.0467');
fdata.Add('2.5=8.0402');
fdata.Add('3.0=8.0324');
fdata.Add('3.5=8.0230');
fdata.Add('4.0=8.0123');
fdata.add('4.5=8.0000');
fdata.Add('5.0=7.9865');
fdata.add('5.5=7.9713');
fdata.Add('6.0=7.9549');
fdata.Add('6.5=7.9369');
fdata.Add('7.0=7.9176');
fdata.Add('7.5=7.8969');
fdata.Add('8.0=7.8747');
fdata.Add('8.5=7.8511');
fdata.Add('9.0=7.8262');
fdata.Add('9.5=7.7998');
fdata.Add('10.0=7.7721');
fdata.Add('10.5=7.7430');
fdata.Add('11.0=7.7125');
fdata.Add('11.5=7.6806');
fdata.Add('12.0=7.6474');
fdata.Add('12.5=7.6128');
fdata.Add('13.0=7.5770');
fdata.Add('13.5=7.5397');
fdata.Add('14.0=7.5011');
fdata.Add('14.5=7.4613');
fdata.Add('15.0=7.4201');
fdata.Add('15.5=7.3776');
fdata.Add('16.0=7.3339');
fdata.add('16.5=7.2888');
fdata.Add('17.0=7.2425');
fdata.Add('17.5=7.1949');
fdata.Add('18.0=7.1462');
fdata.Add('18.5=7.0962');
fdata.Add('19.0=7.0450');
fdata.Add('19.5=6.9926');
fdata.Add('20.0=6.9390');
fdata.Add('20.5=6.9842');
fdata.Add('21.0=6.8282');
fdata.Add('21.5=6.7712');
fdata.Add('22.0=6.7130');
fdata.Add('22.5=6.6536');
fdata.Add('23.0=6.5933');
fdata.Add('23.5=6.5318');
fdata.Add('24.0=6.4691');
fdata.Add('24.5=6.4055');
fdata.Add('25.0=6.3408');
fdata.Add('25.5=6.2750');
fdata.Add('26.0=6.2083');
fdata.Add('26.5=6.1406');
fdata.Add('27.0=6.0718');
fdata.Add('27.5=6.0021');
fdata.Add('28.0=5.9314');
fdata.Add('28.5=5.8598');
fdata.Add('29.0=5.7872');
fdata.Add('29.5=5.7137');
fdata.Add('30.0=5.6394');
fdata.Add('30.5=5.5643');
fdata.Add('31.0=5.4882');
fdata.Add('31.5=5.4112');
fdata.Add('32.0=5.3334');
fdata.Add('32.5=5.2549');
fdata.Add('33.0=5.1756');
fdata.Add('33.5=5.0954');
fdata.Add('34.0=5.0146');
fdata.Add('34.5=4.9330');
fdata.Add('35.0=4.8506');
fdata.Add('35.5=4.7676');
fdata.add('36.0=4.6839');
fdata.Add('36.5=4.5996');
fdata.Add('37.0=4.5147');
fdata.add('37.5=4.4291');
fdata.Add('38.0=4.3430');
fdata.Add('38.5=4.2562');
fdata.add('39.0=4.1690');
fdata.Add('39.5=4.0811');
fdata.add('40.0=3.9927');
fdata.Add('40.5=3.9040');
fdata.Add('41.0=3.8147');
fdata.Add('41.5=3.7250');
fdata.Add('42.0=3.6348');
fdata.Add('42.5=3.5442');
fdata.Add('43.0=3.4532');
fdata.Add('43.5=3.3619');
fdata.Add('44.0=3.2702');
fdata.Add('44.5=3.1783');
fdata.Add('45.0=3.0860');
fdata.add('45.5=2.9934');
fdata.Add('46.0=2.9006');
fdata.Add('46.5=2.8077');
fdata.Add('47.0=2.7144');
fdata.Add('47.5=2.6211');
fdata.add('48.0=2.5276');
fdata.Add('48.5=2.4341');
fdata.add('49.0=2.3407');
fdata.Add('49.5=2.2474');
fdata.Add('50.0=2.1543');
fdata.Add('50.5=2.0616');
fdata.Add('51.0=1.9697');
fdata.Add('51.5=1.8786');
fdata.Add('52.0=1.7888');
fdata.Add('52.5=1.7002');
fdata.add('53.0=1.6133');
fdata.Add('53.5=1.5284');
fdata.Add('54.0=1.4454');
fdata.Add('54.5=1.3648');
fdata.Add('55.0=1.2866');
fdata.Add('55.5=1.2108');
fdata.Add('56.0=1.1378');
fdata.Add('56.5=1.0674');
fdata.Add('57.0=.9997');
fdata.Add('57.5=.9350');
fdata.Add('58.0=.8730');
fdata.Add('58.5=.8138');
fdata.Add('59.0=.7576');
fdata.Add('59.5=.7042');
fdata.Add('60.0=.6537');
fdata.Add('60.5=.6061');
fdata.Add('61.0=.5613');
fdata.Add('61.5=.5198');
fdata.Add('62.0=.4815');
fdata.Add('62.5=.4465');
fdata.Add('63.0=.4149');
fdata.Add('63.5=.3866');
fdata.Add('64.0=.3615');
fdata.Add('64.5=.3397');
fdata.Add('65.0=.3209');
fdata.Add('65.5=.3051');
fdata.Add('66.0=.2919');
fdata.Add('66.5=.2809');
fdata.Add('67.0=.2720');
fdata.Add('67.5=.2645');
fdata.Add('68.0=.2580');
fdata.Add('68.5=.2524');
fdata.Add('69.0=.2469');
fdata.Add('69.5=.2416');
fdata.Add('70.0=.2364');
fdata.Add('70.5=.23]2');
fdata.Add('71.0=.2259');
fdata.Add('71.5=.2207');
fdata.Add('72.0=.2154');
fdata.Add('72.5=.2102');
fdata.Add('73.0=.2050');
fdata.Add('73.5=.1997');
fdata.Add('74.0=.1945');
fdata.Add('74.5=.1893');
fdata.Add('75.0=.184l');
fdata.Add('75.5=.1788');
fdata.Add('76.0=.1736');
fdata.Add('76.5=.1684');
fdata.Add('77.0=.1632');
fdata.Add('77.5=.1579');
fdata.Add('78.0=.1527');
fdata.Add('78.5=.1476');
fdata.Add('79.0=.1423');
fdata.Add('79.5=.1371');
fdata.Add('80.0=.1318');
fdata.Add('80.5=.1267');
fdata.Add('81.0=.1215');
fdata.Add('81.5=.1162');
fdata.Add('82.0=.1110');
fdata.Add('82.5=.1059');
fdata.Add('83.0=.1007');
fdata.Add('83.5=.0954');
fdata.Add('84.0=.0902');
fdata.Add('84.5=.0851');
fdata.Add('85.0=.0799');
fdata.Add('85.5=.0747');
fdata.Add('86.0=.0694');
fdata.Add('86.5=.0643');
fdata.Add('87.0=.0591');
fdata.Add('87.5=.0539');
fdata.Add('88.0=.0487');
fdata.Add('88.5=.0436');
fdata.Add('89.0=.0384');
fdata.Add('89.5=.0332');
fdata.Add('90.0=.0280');
fdata.Add('90.5=.0229');
fdata.Add('91.0=.0177');
fdata.Add('91.5=.0129');
fdata.Add('92.0=.0090');
fdata.Add('92.5=.0058');
fdata.Add('93.0=.0032');
fdata.Add('93.5=.0015');
fdata.Add('94.0=.0005');
fdata.Add('94.5=.0003');
 
看看别人的答案。
 
最小二乘法拟和线性方程,这是我程序中择出的。设方程为:y=k1*x+k2
type
thedata=record
x:double;
y:double;
end;
dataary=array of thedata;
procedure calc(const data:dataary;var K1,K2:double);
var
i,n:integer;
Sx,Sy,Sxx,Syy,Sxy,D,C:double;
begin
Sx:=0;
Sy:=0;
Sxx:=0;
Syy:=0;
Sxy:=0;
D:=0;
C:=0;
n:=length(data);
for i:=0 to n-1do
begin
Sx:=Sx+data.x;
Sxx:=Sxx+data.x*data.x;
Sy:=Sy+data.y;
Syy:=Syy+data.y*data.y;
Sxy:=Sxy+data.x*data.y;
D:=N*Sxx-Sx*Sx;
K2:=(Sxx*Sy-Sx*Sxy)/D;
K1:=(N*Sxy-Sx*Sy)/D;
end;
end;
 
这个方程是个高次,原来有个大概的公式,最高是26次,结果不吻合,想重新拟和一下.
上面的有个应该为x=-83,结果写了x=-88
to 迷糊:我不知道你那个可以这样拟和出来吗?你那个阶数太少.
 
我这个只能拟和线性方程,高次方程我也在这里问过,到现在也没弄懂。
主要是数学全忘光了 [:(] ,帮你顶一下
 
采用3次分段插值
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
后退
顶部