qoiqpwqr 发表于 2011-8-8 03:49 
你的z的数值已经固定为49了,所以你的函数只有一个点。
> x
[1] 1371.00 7702.00 49.00 207.00 6655.00 206827.00
[7] 17064.00 4.00 72845.00 56545.00 2695.00 313.00
[13] 12498.00 24835.00 175254.00 2158500.00 602.00 2928.00
[19] 50984.00 593.00 6698.00 5075.00 44388.00 495.00
[25] 36935.00 23673.00 15179.00 281652.00 158713.00 77431.00
[31] 67388.00 25326.00 28433.00 32433.00 116355.00 460273.00
[37] 125209.00 184164.00 47380.00 146792.00 148449.00 14774.40
[43] 466041.00 94959.27 262810.80 79962.00 201922.06 85949594.00
[49] 273782.00
> T<-function(x){
+ m=44388
+ a=0.6714
+ c=0.0263
+ ((x+c)^a-c^a)/((x+c)^a+(m+c)^a-2*c^a)
+ }
>
>
> DT<-function(x){
+ m=44388
+ a=0.6714
+ c=0.0263
+ a*(x+c)^(a-1)*((m+c)^a-c^a)/((x+c)^a+(m+c)^a-2*c^a)^2
+ }
>
>
>
> q1<-function(z) 1/49/0.1143*.075/(0.75/0.1143-(1-3*T(z)^2-3*T(z))/4*0.1143^3)*sum((1-(T(z)-T(x))^2)*DT(z))
>
> q2<-function(z) 1/49/0.1143*.075/(0.75/0.1143*(1-T(z))-(1-3*T(z)^3)/4*0.1143^3+0.5)*sum((1-(T(z)-T(x))^2)*DT(z))
>
> q3<-function(z) 1/49/0.1143*.075*sum((1-(T(z)-T(x))^2)*DT(z))
>
> area=function(t) {
+ if(x<2104) area<-q1
+ else if (x>=2104&x<=936883) area<-q2
+ else area<-q3
+ }
> curve(area,0,10000000)
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
In addition: Warning message:
In if (x < 2104) area <- q1 else if (x >= 2104 & x <= 936883) area <- q2 else area <- q3 :
the condition has length > 1 and only the first element will be used
万分感谢!那请问现在错误怎么改?。。。不知道哪个length不对。。。