怎样用matlab编写最小二乘法直线和曲线拟合的m文件

 我来答
断苦苦斜
2017-05-16
知道答主
回答量:57
采纳率:0%
帮助的人:13.1万
展开全部
最小二乘法直线
clear all
clc
x=[1 2 3 4 6 8 10];
y=[109.78 80.35 58.81 43.04 23.05 12.35 6.61];
a=polyfit(x,y,1);
x1=0:0.01:11;
y1=polyval(a,x1);
plot(x,y,'b*',x1,y1,'r','linewidth',3,'markersize',18) %作二维图形曲线图和点图。
legend('原始点','拟合曲线') %显示图例
axis([0,11,1,110]) %显示坐标轴的长度
h=legend('Actual','Predicted');
xlabel('Time(h)','fontsize',24,'fontweight','bold')
ylabel('Drug concentration(ug/ml)','fontsize',24,'fontweight','bold')
title('curve fitting(parabola)','fontsize',26,'fontweight','bold')
set(gca,'linewidth',2.5,'fontsize',24,'fontname','Arial','ytick',[50 100 150])
set(gcf,'color','w')
axis([0 12 0 155])

最小二乘法曲线拟合

clear all
clc
xdata=[1 2 3 4 6 8 10];
ydata=[109.78 80.35 58.81 43.04 23.05 12.35 6.61];
x0=[0,0,5];
b=lsqcurvefit(@nhfun,x0,xdata,ydata)
t1=0:0.01:12;
c1=b(1)+b(2)*t1+b(3)*t1.^2;
plot(xdata,ydata,'*',t1,c1,'linewidth',3,'markersize',18)
function y=nhfun(x,xdata)
y=x(1)+x(2).*xdata+x(3)*xdata.^2;

建议你换个高点的版本
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式