如何用MATLAB拟合曲线来求参数?
我要计算的是a,b参数,已知c,k,y其中y=252*a/(2.016129032*10^9)*((cos(k)/sin(k))/c)^b其中数据为,c=[2.7,2.8...
我要计算的是a,b参数,已知c,k,y
其中y=252*a/(2.016129032*10^9)*((cos(k)/sin(k))/c)^b
其中数据为,c=[2.7,2.8,2.9,3,3.1,3.2,3.45,3.7,3.95,4.2,4.45,4.7,4.95,5.2]
k=[ 0,47,93,140,186,279,372,465,558,651];
y=[18.98,27.35,34.86,38.52,38.44,37.73,38.43,43.87,42.77,46.22];
要怎么拟合,才能求出a,b参数啊?求大神指点。 展开
其中y=252*a/(2.016129032*10^9)*((cos(k)/sin(k))/c)^b
其中数据为,c=[2.7,2.8,2.9,3,3.1,3.2,3.45,3.7,3.95,4.2,4.45,4.7,4.95,5.2]
k=[ 0,47,93,140,186,279,372,465,558,651];
y=[18.98,27.35,34.86,38.52,38.44,37.73,38.43,43.87,42.77,46.22];
要怎么拟合,才能求出a,b参数啊?求大神指点。 展开
展开全部
令x=(cos(k)./sin(k))./c,这个就是xdata向量
y=252/(2.016129032*10^9)*a*x^b
取log得到
log(y)=b*log(x)+log(252/(2.016129032*10^9)*a)
所以log(y)与log(x)是线性关系,用p=polyfit(log(xdata),log(y),1)求出
b=p(1);
a=exp(p(2))/252*(2.016129032*10^9); % 因为log(252/(2.016129032*10^9)*a)=p(2)
所以最终程序是如下:
clear all
c=[2.7,2.8,2.9,3,3.1,3.2,3.45,3.7,3.95,4.2,4.45,4.7,4.95,5.2];
k=[0,47,93,140,186,279,372,465,558,651];
y=[18.98,27.35,34.86,38.52,38.44,37.73,38.43,43.87,42.77,46.22];
xdata=(cos(k)./sin(k))./c;
p=polyfit(log(xdata),log(y),1);
b=p(1);
a=exp(p(2))/252*(2.016129032*10^9);
y=252/(2.016129032*10^9)*a*x^b
取log得到
log(y)=b*log(x)+log(252/(2.016129032*10^9)*a)
所以log(y)与log(x)是线性关系,用p=polyfit(log(xdata),log(y),1)求出
b=p(1);
a=exp(p(2))/252*(2.016129032*10^9); % 因为log(252/(2.016129032*10^9)*a)=p(2)
所以最终程序是如下:
clear all
c=[2.7,2.8,2.9,3,3.1,3.2,3.45,3.7,3.95,4.2,4.45,4.7,4.95,5.2];
k=[0,47,93,140,186,279,372,465,558,651];
y=[18.98,27.35,34.86,38.52,38.44,37.73,38.43,43.87,42.77,46.22];
xdata=(cos(k)./sin(k))./c;
p=polyfit(log(xdata),log(y),1);
b=p(1);
a=exp(p(2))/252*(2.016129032*10^9);
上海华然企业咨询
2024-10-28 广告
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
展开全部
令x=(cos(k)./sin(k))./c,这个就是xdata向量
y=252/(2.016129032*10^9)*a*x^b
取log得到
log(y)=b*log(x)+log(252/(2.016129032*10^9)*a)
所以log(y)与log(x)是线性关系,用p=polyfit(log(xdata),log(y),1)求出
b=p(1);
a=exp(p(2))/252*(2.016129032*10^9); % 因为log(252/(2.016129032*10^9)*a)=p(2)
所以最终程序是如下:
clear all
c=[2.7,2.8,2.9,3,3.1,3.2,3.45,3.7,3.95,4.2,4.45,4.7,4.95,5.2];
k=[0,47,93,140,186,279,372,465,558,651];
y=[18.98,27.35,34.86,38.52,38.44,37.73,38.43,43.87,42.77,46.22];
xdata=(cos(k)./sin(k))./c;
p=polyfit(log(xdata),log(y),1);
b=p(1);
a=exp(p(2))/252*(2.016129032*10^9);
y=252/(2.016129032*10^9)*a*x^b
取log得到
log(y)=b*log(x)+log(252/(2.016129032*10^9)*a)
所以log(y)与log(x)是线性关系,用p=polyfit(log(xdata),log(y),1)求出
b=p(1);
a=exp(p(2))/252*(2.016129032*10^9); % 因为log(252/(2.016129032*10^9)*a)=p(2)
所以最终程序是如下:
clear all
c=[2.7,2.8,2.9,3,3.1,3.2,3.45,3.7,3.95,4.2,4.45,4.7,4.95,5.2];
k=[0,47,93,140,186,279,372,465,558,651];
y=[18.98,27.35,34.86,38.52,38.44,37.73,38.43,43.87,42.77,46.22];
xdata=(cos(k)./sin(k))./c;
p=polyfit(log(xdata),log(y),1);
b=p(1);
a=exp(p(2))/252*(2.016129032*10^9);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用优化的方法吧。把a,b做成设计变量,目标函数为:(等式左边-右边)^2,目标最小的时候就求到a跟b了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询