|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
function y=ls(c1,c2,c3,c4,x0,y0)
syms a1 a2
c1=0.2071;
c2=0.2056;
c3=0.4111;
c4=0.1035;
x0=0.2070;
y0=0.2060;
f1=a1;
f2=a2;
f3=a1+a2;
f4=a1*a2/(a1+a2);
af1=diff(f1,a1);%函数求偏导
bf1=diff(f1,a2);
af2=diff(f2,a1);
bf2=diff(f2,a2);
af3=diff(f3,a1);
bf3=diff(f3,a2);
af4=diff(f4,a1);
bf4=diff(f4,a2);
a1=c1;
a2=c2;
l1=c1-x0;
l2=c2-y0;
l3=c3-(x0+y0);
l4=c4-(x0*y0/(x0+y0));
aa=af1*af2+af1*af3+af2*af3+af1*af4+af2*af4+af3*af4;%构建正规方程
al=af1*l1+af2*l2+af3*l3+af4*l4;
ab=af1*bf1+af2*bf2+af3*bf3+af4*bf4;
bb=bf1*bf2+bf1*bf3+bf2*bf3+bf1*bf4+bf2*bf4+bf3*bf4;
bl=bf1*l1+bf2*l2+bf3*l3+bf4*l4;
A=[aa,ab;ab,bb];%由正规方程得到矩阵
B=[al,ab;bl,bb];
C=[bb,al;ab,bl];
D=det(A);%得到矩阵的行列式
D1=det(B);
D2=det(C);
x=D1/D;
y=D2/D;
C1=x0+x;%C1,C2为估计出的最可信赖值
C2=y0+y;
PC1=D/bb ;%下面计算方差
PC2=D/aa;
v1=c1-C1;
v2=c2-C2;
v3=c3-(C1+C2);
v4=c4-(C1*C2/(C1+C2));
v=v1^2+v2^2+v3^2+v4^2;
e=sqrt(v/(4-2));
ec1=e/sqrt(PC1);
ec2=e/sqrt(PC2);
C1%函数输出
C2
ec1
ec2
为什么给a1和a2赋值后 偏导数的值仍然是表达式而不是常数,最后结果也是表达式,求助~~~~~ |
|