Matlab新手程序求大神帮忙?clcx0=[3.6,3.7,3.8,3.9,4.0,4.1,4.2,4.3,4.4,4.5,4.6,4.7,4.8,4.9,5.0,5.1,5.2,5.3,5.4,5.5]y0=[4006,4060,4120,4165,4231,4276,4307,4349,4360,4386,4391,4407,4425,4454,4467,4486,4492,4523,4590,4629]x1=cumsum(x0) %累加B1=[
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/26 00:42:01
Matlab新手程序求大神帮忙?
clc
x0=[3.6,3.7,3.8,3.9,4.0,4.1,4.2,4.3,4.4,4.5,4.6,4.7,4.8,4.9,5.0,5.1,5.2,5.3,5.4,5.5]
y0=[4006,4060,4120,4165,4231,4276,4307,4349,4360,4386,4391,4407,4425,4454,4467,4486,4492,4523,4590,4629]
x1=cumsum(x0) %累加
B1=[]
[m,n]=size(x0)
for k=1:n-1
B1(k)=-0.5*(x1(k)+x1(k+1))
B32(k)=y0(k+1)
Yn(k)=x1(k+1)
end
B2=ones(n-1,1)
B=[B1',B2]
for i=1:n-1
y01(i)=y0(i+1)
end
B3=diag(y01)
BB=B3*B %求矩阵B
YN=Yn'%求矩阵YN
A=inv(BB'*BB)*BB'*YN
a=A(1)
b=A(2)
c=b/a
d=y0(1)-c
e=x0(1)
Y=[num2str(d),'exp','(',num2str(-a),'(','x0(k+1)-',num2str(e),')',')',num2str(c)];
strcat('Y(k+1)=',Y)
for t=1:length(y0)-1
k(1,t)=x0(t+1)-x0(1);
end
for i=1:length(y0)-1
YP(i)=(y01(i)-c)*exp(-a*k(i))+c
end
运行完后能出结果,但是YP里面怎么是22个数啊,根据最后一个循环不应该是19个数吗?后面三个数都是重复多余的.
运行你的代码后,YP是19个数,不是22个数