delphi 解四参数方程(300)

  • 主题发起人 xiebaotong
  • 开始时间
X

xiebaotong

Unregistered / Unconfirmed
GUEST, unregistred user!
给一定n组数据X Y0.10 49.91 0.13 49.78 0.18 49.48 0.24 48.79 0.32 47.22 0.42 43.90 0.56 37.69 0.75 28.42 1.00 18.36 1.33 10.60 1.77 6.05 2.36 3.80 3.15 2.78 4.20 2.33 5.59 2.14 7.46 2.06 9.94 2.03 13.25 2.01 17.66 2.00 23.54 2.00 31.38 2.00 41.82 2.00 55.75 2.00 74.32 2.00 99.07 2.00 132.05 2.00 176.03 2.00 234.65 2.00 312.78 2.00 416.94 2.00 555.78 2.00 740.86 2.00 987.56 2.00 1316.42 2.00 1754.79 2.00 2339.13 2.00 3118.07 2.00 求方程:y=(a-d)/(1+(x/c)^b)+d中的a,b,c,d
 
X

xiebaotong

Unregistered / Unconfirmed
GUEST, unregistred user!
要是分不够,我再加。如分不能吸引你我可以给¥。
 
S

szhcracker

Unregistered / Unconfirmed
GUEST, unregistred user!
难度较大,估计没戏,结贴放分吧。
 
S

smlabc

Unregistered / Unconfirmed
GUEST, unregistred user!
17.66 2.00 23.54 2.00 31.38 2.00 41.82 2.00 55.75 2.00 74.32 2.00 99.07 2.00 132.05 2.00 176.03 2.00 234.65 2.00 312.78 2.00 416.94 2.00 555.78 2.00 740.86 2.00 987.56 2.00 1316.42 2.00 1754.79 2.00 2339.13 2.00 3118.07 2.00 Y的极限值为2,(x/c)^b的极限值为0,所以2=a-d+d=a
a = 2;0.10 49.91 0.13 49.78 0.18 49.48 0.24 48.79 0.32 47.22 0.42 43.90 0.56 37.69 0.75 28.42 X越小,Y越接近50,X越小,(x/c)^b越大,因此 d=50;现在是2个参数的方程了,y=(2-50)/(1+(x/c)^b)+50,祝LZ好运
 
X

xiebaotong

Unregistered / Unconfirmed
GUEST, unregistred user!
to smlabc:如果只有如下数据怎么办X Y0.13 49.78 0.18 49.48 0.24 48.79 0.32 47.22 0.42 43.90 0.56 37.69 0.75 28.42
 
X

xiebaotong

Unregistered / Unconfirmed
GUEST, unregistred user!
没有高人吗?[:(]
 
X

xiebaotong

Unregistered / Unconfirmed
GUEST, unregistred user!
再等一天,如无人能解就把所有分散尽。。。。。。再也不来了。。。。
 
V

Vsun

Unregistered / Unconfirmed
GUEST, unregistred user!
这个可能就是求曲线方程,在google里搜了一下,有人说用用最小二乘法,还搜到一个下面的答案,但看不懂,数学不好。Best Answer - Chosen by Votersy=[(A-D)/(1+X/C)^B)] + Dy-D = (A-D)/(1+X/C)^B)(y-D)((1+X/C)^B) = (A-D)(1+X/C)^B) = (A-D)/(y-D)take root of B(1+X/C) = B root (A-D)/(y-D)X/C =[ B root (A-D)/(y-D) ]-1X = C * ( [ B root (A-D)/(y-D) ]-1 )
 
X

xiebaotong

Unregistered / Unconfirmed
GUEST, unregistred user!
to Vsun:我要是数学好,也不在这里丢人了。。。。。但仍然要感谢你。
 
S

smlabc

Unregistered / Unconfirmed
GUEST, unregistred user!
只有以上数据无法求解.另给出的第一个算法有缺陷问题下面给个稍微正规点的解法经变换:(a-y)/(y-d) = (x/c)^b 或 (y-d)/(a-y) = (c/x)^b设f1(y) = (a-y)/(y-d)
// f2(x) = (x/c)^b f1(y)=f2(x)
当y = a 时, f1(y) 恒等于 0,此时f2(x)=0.得到x=0
设f3(y) = (y-d)/(a-y)
// f4(x) = (c/x)^b f3(y)=f4(x)
当y = d 时, f3(y) 恒等于 0,此时f4(x)=0.得到x=无穷大
同样分析数据,得d=2. a=50
变换成两参数方程,带入数据可求的近似解 以上是b>0的情况,当b<0时 得d=50. a=2
变换成两参数方程,带入数据可求的近似解
 
T

tseug

Unregistered / Unconfirmed
GUEST, unregistred user!
用 matlab 非线性回归更方便些,你查一下 nlinfit 函数如果用Delphi自己写,可参考http://www.math.washington.edu/~reu/papers/current/mark/REU%20Final%20Paper.pdf
 
M

MrMengyi

Unregistered / Unconfirmed
GUEST, unregistred user!
楼上正解很久前读研时做过类似题目啊
 
M

MrMengyi

Unregistered / Unconfirmed
GUEST, unregistred user!
简化方程:y= a + (a-d) * (x^b) / (c^b)实际就是求解:y = a + t * (x^b) ---------- t = (a-d)/(c^b)目测也知道 a = 2再求解b和t即可
 
X

xiebaotong

Unregistered / Unconfirmed
GUEST, unregistred user!
to MrMengyi:能不能给个完整的代码,现在问题是:y=a+t*(x^b)中的b不好解出来
 
X

xiebaotong

Unregistered / Unconfirmed
GUEST, unregistred user!
先结贴吧!
 

Similar threads

顶部