陆永杰 发表于 2008-8-4 11:57

为何求出的b值总为同一个数

f(t)和/或F(t)也采用三参数的形式 (如:f=inline('a*exp(-b*x)+c','x','a','b','c'))
拟合时的初值选取如下:
a和c=1(-inf~+inf),b=0.5(b>0).


题目见附件:

问题在于:拟合出来的a、b、c无论为何值,由式3求出的a1值总是等于拟合出来的b值。请问高手,这是为何呀?
例: 1 拟合出a为15,b=2.5,c=20;t1=0,tn=1.5, 由此求出a1=2.5,
2 改变a、c为其他值,b的取值不变仍为2.5,总是求出a1=2.5。???
请大家解决一下。       附;matlab程序如下:
function
myjie_a1
%qiujie
a1
% M= quadl(F,t1,tn)
% a1=-(f(tn)-f(t1)/(M-B*(tn-t1)))
clear
close
f=inline('a*exp(-b*x)+c','x','a','b','c')
F=vectorize(f)
%将f向量化
a=input('enter a=')
b=input('enter b=')
c=input('enter c=')
t1=0;
% t1=0
tn=input('enter tn=')
% tn取0.3-1.5之间的数
t=t1:0.01:tn;
Y=feval(F,t,a,b,c);
plot(t,Y)

% 作幅值序列包络线图
M=quadl(F,t1,tn,[],[],a,b,c)
%求M(即:f(t)所围面积)
m1=F(tn,a,b,c)-F(t1,a,b,c)
m2=M-c*(tn-t1)
a1=-m1/m2;
%求a1;a1=(F(t1,a,b,c)-F(tn,a,b,c))/(M-c*(tn-t1))





[ 本帖最后由 sigma665 于 2008-8-4 14:31 编辑 ]

[ 本帖最后由 sigma665 于 2008-8-4 14:32 编辑 ]

陆永杰 发表于 2008-8-4 12:01

更正 一下:a1总是等于b的值。

sigma665 发表于 2008-8-4 14:34

回复 2楼 的帖子

建议lz 一步一步往下运行
看哪个语句开始出问题
页: [1]
查看完整版本: 为何求出的b值总为同一个数