matlab 拟合如何求出方程系数?
有一组数据,一个方程,求出系数Ax=30:5:70y=[2.9472.8502.6832.5162.3752.2482.1172.1071.928]方程是y=3*exp[...
有一组数据,一个方程,求出系数A
x=30:5:70
y=[2.947 2.850 2.683 2.516 2.375 2.248 2.117 2.107 1.928]
方程是y=3*exp[A*(1/x-1/298)]
我想知道怎么才能求出A? 展开
x=30:5:70
y=[2.947 2.850 2.683 2.516 2.375 2.248 2.117 2.107 1.928]
方程是y=3*exp[A*(1/x-1/298)]
我想知道怎么才能求出A? 展开
2个回答
展开全部
y=3*exp[A*(1/x-1/298)]
y/3=exp[A*(1/x-1/298)]
两边取对数,得
ln(y/3)=A*(1/x-1/298)
令Y=ln(y/3),X=(1/x-1/298)
显然变成了一个Y=AX的拟合问题了
x=30:5:70
y=[2.947 2.850 2.683 2.516 2.375 2.248 2.117 2.107 1.928]
Y=log(y/3);
X=1./x-1/298;
A=polyfit(X,Y,0)
祝你学习愉快!
y/3=exp[A*(1/x-1/298)]
两边取对数,得
ln(y/3)=A*(1/x-1/298)
令Y=ln(y/3),X=(1/x-1/298)
显然变成了一个Y=AX的拟合问题了
x=30:5:70
y=[2.947 2.850 2.683 2.516 2.375 2.248 2.117 2.107 1.928]
Y=log(y/3);
X=1./x-1/298;
A=polyfit(X,Y,0)
祝你学习愉快!
展开全部
X0=[2.947 2.850 2.683 2.516 2.375 2.248 2.117 2.107 1.928];
[m,n]=size(X0);
X1=cumsum(X0); %累加
X2=[];
for i=1:n-1
X2(i,:)=X1(i)+X1(i+1);
end
B=-0.5.*X2 ;
t=ones(n-1,1);
B=[B,t] ; % 求B矩阵
YN=X0(2:end) ;
P_t=YN./X1(1:(length(X0)-1)) %对原始数据序列X0进行准光滑性检验,
%序列x0的光滑比P(t)=X0(t)/X1(t-1)
A=inv(B.'*B)*B.'*YN.' ;
a=A(1)
u=A(2)
c=u/a ;
b=X0(1)-c ;
X=[num2str(b),'exp','(',num2str(-a),'k',')',num2str(c)];
strcat('X(k+1)=',X)
%syms k;
for t=1:length(X0)
k(1,t)=t-1;
end
k
Y_k_1=3*exp[A*(1/x-1/298)];
[m,n]=size(X0);
X1=cumsum(X0); %累加
X2=[];
for i=1:n-1
X2(i,:)=X1(i)+X1(i+1);
end
B=-0.5.*X2 ;
t=ones(n-1,1);
B=[B,t] ; % 求B矩阵
YN=X0(2:end) ;
P_t=YN./X1(1:(length(X0)-1)) %对原始数据序列X0进行准光滑性检验,
%序列x0的光滑比P(t)=X0(t)/X1(t-1)
A=inv(B.'*B)*B.'*YN.' ;
a=A(1)
u=A(2)
c=u/a ;
b=X0(1)-c ;
X=[num2str(b),'exp','(',num2str(-a),'k',')',num2str(c)];
strcat('X(k+1)=',X)
%syms k;
for t=1:length(X0)
k(1,t)=t-1;
end
k
Y_k_1=3*exp[A*(1/x-1/298)];
追问
这个不对吧,我的x那一组数,都没用到。程序根我问的问题我觉得关系也不大?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询