代码在下边,想用fittype拟合,函数有点复杂,然后报错了,但是实在不知道什么原因了,求解答修改代码
>> clear;
H=20;
p=800;
Rw=9.8;
syms E0 E1 Kv N1 t n;
M=(2*n-1)*pi/2;
a=E1/E0;
b=Kv*N1/(H^2*Rw);
x1=-(M^2*b+a+1-sqrt((M^2*b+a+1)^2-4*a*M^2*b))/(2*b);
x2=-(M^2*b+a+1+sqrt((M^2*b+a+1)^2-4*a*M^2*b))/(2*b);
D1=(M^2+x2)/(x2-x1);
D2=(M^2+x1)/(x2-x1);
Cv=Kv*E0/Rw;
Tv=Cv*t/H^2;
w1=2*(D1*exp(x1*t*Cv/H^2)-D2*exp(x2*t*Cv/H^2))/M^2;
w2=2*(D1*(exp(x1*t*Cv/H^2)-exp(-t*E1/N1))/(x1*Cv/H^2+E1/N1)-D2*(exp(x2*t*Cv/H^2)-exp(-t*E1/N1))/(x2*Cv/H^2+E1/N1))/M^2;
s1=symsum(w1,n,1,10);
s2=symsum(w2,n,1,10);
%S=H*p*((1-s1)/E0+(1-exp(-t*E1/N1))/E1-s2/N1);
X=[1
5.011872336
19.95262315
63.09573445
158.4893192
501.1872336
2511.886432
10000
79432.82347
199526.2315
1000000
1584893.192
5011872.336
7943282.347
15848931.92
19952623.15
25118864.32
50118723.36
63095734.45
100000000
158489319.2
630957344.5
1995262315
12589254118
31622776602
1.58489E+11];
Y=[0.4
0.44
0.5
0.52
0.6
0.7
0.8
1
1.4
1.8
2
2.3
2.8
3.1
3.5
3.8
4
4.3
4.7
4.9
5.4
6.2
7.3
8.2
8.7
9];
f=fittype('H*p*((1-s1/E0+(1-exp(-t*E1/N1))/E1-s2/N1)+Kv*0)','independent','t','coefficients',{'E0','E1','Kv','N1'},'problem',{'H','p','s1','s2'});
[cfun,rsquare]=fit(X,Y,f,'Lower',[0,0,0,0,],'Upper',[10000,10000,9E+08,1],'StartPoint',[2817.12,4582.85,6.98E+07,7.86E-11],'problem',{'H','p','s1','s2'});
cfun=fit(X,Y,f,'problem',{'H','p','s1','s2'});
coeffvalues(cfun);
xi=1:10:1000;
yi=cfun(xi);
plot(X,Y,'r*',xi,yi,'b-');