
急求助用matlab怎么拟合一个过原点的二次函数
x=[204.11,219.64,243.34,262.38,281.01,301.81,312.05,320.74,331.71,341.49,349.16,362.3...
x=[204.11,219.64,243.34,262.38,281.01,301.81,312.05,320.74,331.71,341.49,349.16,362.35,379.08,401.24,420.91,430.99];
y=[64.33,69.17,71.18,75.72,78.55,81.52,82.57,82.20,81.23,77.37,73.13,69.74,60.59,46.27,23.04,2.98];
急需用matlab编一个简单的程序,使得y=ax*x+bx形式,最好是把拟合出来的函数的公式以及回归因子都给表达出来的,由于本人是刚学的但是作业又急着要交,求助万能的吧友! 展开
y=[64.33,69.17,71.18,75.72,78.55,81.52,82.57,82.20,81.23,77.37,73.13,69.74,60.59,46.27,23.04,2.98];
急需用matlab编一个简单的程序,使得y=ax*x+bx形式,最好是把拟合出来的函数的公式以及回归因子都给表达出来的,由于本人是刚学的但是作业又急着要交,求助万能的吧友! 展开
展开全部
clc
clear
x=[204.11,219.64,243.34,262.38,281.01,301.81,312.05,320.74,331.71,341.49,349.16,362.35,379.08,401.24,420.91,430.99];
y=[64.33,69.17,71.18,75.72,78.55,81.52,82.57,82.20,81.23,77.37,73.13,69.74,60.59,46.27,23.04,2.98];
z=y./x;
[p,q]=polyfit(x,z,1)
a=p(1)
b=p(2)
clear
x=[204.11,219.64,243.34,262.38,281.01,301.81,312.05,320.74,331.71,341.49,349.16,362.35,379.08,401.24,420.91,430.99];
y=[64.33,69.17,71.18,75.72,78.55,81.52,82.57,82.20,81.23,77.37,73.13,69.74,60.59,46.27,23.04,2.98];
z=y./x;
[p,q]=polyfit(x,z,1)
a=p(1)
b=p(2)
追问
把这个图画出来的程序是神马啊?我怎么弄来弄去都不像啊都是一个一次函数的图像!能不能把整个程序补充完整!谢谢
追答
y=a*x^2+b*x两边同时除以x,y/x=a*x+b;令z=y/x接下来就是拟合(x,z)直线[p,q]=polyfit(x,z,1) 结果a=p(1) b=p(2);可以作图比较(你的数据不是很好,拟合结果不是很准确):
clc
clear
x=[204.11,219.64,243.34,262.38,281.01,301.81,312.05,320.74,331.71,341.49,349.16,362.35,379.08,401.24,420.91,430.99];
y=[64.33,69.17,71.18,75.72,78.55,81.52,82.57,82.20,81.23,77.37,73.13,69.74,60.59,46.27,23.04,2.98];
z=y./x;
[p,q]=polyfit(x,z,1)
a=p(1)
b=p(2)
plot(x,y,'r*')
hold on
ezplot([num2str(a),'*x^2+',num2str(b),'*x'],[min(x),max(x),min(y),max(y)])
legend('原始数据散点图','拟合后函数曲线图')
xlabel('x')
ylabel('y')
最后我想说你的数据拟合的二次函数未必是y=ax*x+bx,强行按照过原点的进行拟合真的不好,我认为是y=ax*x+bx+c形式(c不等于0)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
人家不是已经把a和b都给出来了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询