怎么用MATLAB进行多元多项式拟合
x1=[1.51.5222.52.52.52.53333];x2=[0.050.10.150.20.050.10.150.20.050.10.150.2];y=[10.9...
x1=[1.5 1.5 2 2 2.5 2.5 2.5 2.5 3 3 3 3];x2=[0.05 0.1 0.15 0.2 0.05 0.1 0.15 0.2 0.05 0.1 0.15 0.2];y=[1 0.99 0.98 0.97 0.98 0.975 0.97 0.965 0.975 0.97 0.965 0.96];求Y等于X1,X2的函数表达式。怎么用MATLAB做啊!初学者请教各位高手
展开
4个回答
2018-07-05 · 知道合伙人软件行家
关注
展开全部
实例
1
先看一个具体的例子,通过构造一系列离散的二维点集,然后用不同阶次的多项式来拟合,比较哪个效果更好。最后说明多项式拟合在matlab中的用法。
2
首先启动matlab,选择编辑器,再新建一个命令文件。
3
然后,在编辑器窗口中输入本题的代码。如下图所示。并保存,此处命名为dxsnh。
4
需要注意的是,保存文件的位置要与当前搜索路径的位置保持一致。这可以通过右键编辑窗口的文件,在弹出的下拉框中选择。
5
最后再命令行窗口处输入dxsnh,并敲入键盘上的enter建。可以看出阶数越高,曲线与拟合点拟合得越好。
END
命令解释
1
通过上面的例子知道,matlab实现多项式拟合的关键命令是polyfit。
2
该命令的格式如下
[p,s]=polyfit(x,y,n)
功能介绍:对于已知的数据x、y进行多项式拟合,拟合的多项式的阶数为n,其中p为多项式的系数矩阵,s为预测误差估计值的矩阵。
1
先看一个具体的例子,通过构造一系列离散的二维点集,然后用不同阶次的多项式来拟合,比较哪个效果更好。最后说明多项式拟合在matlab中的用法。
2
首先启动matlab,选择编辑器,再新建一个命令文件。
3
然后,在编辑器窗口中输入本题的代码。如下图所示。并保存,此处命名为dxsnh。
4
需要注意的是,保存文件的位置要与当前搜索路径的位置保持一致。这可以通过右键编辑窗口的文件,在弹出的下拉框中选择。
5
最后再命令行窗口处输入dxsnh,并敲入键盘上的enter建。可以看出阶数越高,曲线与拟合点拟合得越好。
END
命令解释
1
通过上面的例子知道,matlab实现多项式拟合的关键命令是polyfit。
2
该命令的格式如下
[p,s]=polyfit(x,y,n)
功能介绍:对于已知的数据x、y进行多项式拟合,拟合的多项式的阶数为n,其中p为多项式的系数矩阵,s为预测误差估计值的矩阵。
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
展开全部
x1=[1.5 1.5 2 2 2.5 2.5 2.5 2.5 3 3 3 3];
x2=[0.05 0.1 0.15 0.2 0.05 0.1 0.15 0.2 0.05 0.1 0.15 0.2];y=[1 0.99 0.98 0.97 0.98 0.975 0.97 0.965 0.975 0.97 0.965 0.96];
cftool
先执行以上三个语句,接着会出来一个新图,再在上面点“数据”,载入x1,x2,再点拟合,在出来的新图里选“新拟合”,再在选择拟合类型为“高斯”,接下来点“应用就行了
x2=[0.05 0.1 0.15 0.2 0.05 0.1 0.15 0.2 0.05 0.1 0.15 0.2];y=[1 0.99 0.98 0.97 0.98 0.975 0.97 0.965 0.975 0.97 0.965 0.96];
cftool
先执行以上三个语句,接着会出来一个新图,再在上面点“数据”,载入x1,x2,再点拟合,在出来的新图里选“新拟合”,再在选择拟合类型为“高斯”,接下来点“应用就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的cftool很好用,也很方便
如果你非要用程序做。。。。。。。
请先把重复的数据去掉,否则没法拟合或者出错误
不知道楼主这组数据哪里来的,我以前也有过类似的问题,最后直接放弃啦
搂着可以看看,对于一个x值有两个y值,甚至多达4个,你可以大致描个点试试,对于这样的数据点基本拟合不出合适的曲线,因为有很多曲线合适也不合适
所以,楼主可以换组数据
这样的数据,真的没法拟合
当然,小弟能力有限,没准有大虾可以解决
如果你非要用程序做。。。。。。。
请先把重复的数据去掉,否则没法拟合或者出错误
不知道楼主这组数据哪里来的,我以前也有过类似的问题,最后直接放弃啦
搂着可以看看,对于一个x值有两个y值,甚至多达4个,你可以大致描个点试试,对于这样的数据点基本拟合不出合适的曲线,因为有很多曲线合适也不合适
所以,楼主可以换组数据
这样的数据,真的没法拟合
当然,小弟能力有限,没准有大虾可以解决
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我教你个方法,希望你好好理解:
C
=
[ones(length(x1),
1)
x1'
x2'];
temp
=
pinv(C)*y';
ysim
=
C*temp;
plot(y');
hold
on;
plot(ysim,
'ro');
legend('y',
'ysim');
看看效果~~
temp里面的三个值就是对应项的参数:y
=
temp(1)
+
temp(2)*x1
+
temp(3)*x2;
C
=
[ones(length(x1),
1)
x1'
x2'];
temp
=
pinv(C)*y';
ysim
=
C*temp;
plot(y');
hold
on;
plot(ysim,
'ro');
legend('y',
'ysim');
看看效果~~
temp里面的三个值就是对应项的参数:y
=
temp(1)
+
temp(2)*x1
+
temp(3)*x2;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |