声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1126|回复: 2

[编程技巧] 求助 帮我看看这个程序

[复制链接]
发表于 2009-1-14 17:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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赋值后  偏导数的值仍然是表达式而不是常数,最后结果也是表达式,求助~~~~~
回复
分享到:

使用道具 举报

发表于 2009-1-14 23:37 | 显示全部楼层

回复 楼主 247429745 的帖子

doc subs
替换表达式的值
发表于 2009-1-21 11:15 | 显示全部楼层
因为a1,a2已经指定为符号变量,所以无法改变!help eval
输出改为C1=eval(C1);C2=eval(C2);ec1=eval(ec1);ec2=eval(ec2);把程序第一行删掉后就会出结果了,不然会出错的!
建议看看教程!

[ 本帖最后由 wdecai 于 2009-1-21 11:34 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 21:35 , Processed in 0.063783 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表