怎么用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做啊!初学者请教各位高手 展开
 我来答
EvenHHZ
2018-07-05 · 知道合伙人软件行家
EvenHHZ
知道合伙人软件行家
采纳数:13691 获赞数:18843
个人出版图书:《玩转Python网络爬虫》、《玩转Django2.0》

向TA提问 私信TA
展开全部
实例
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为预测误差估计值的矩阵。
马克sphere
推荐于2017-11-22
知道答主
回答量:22
采纳率:0%
帮助的人:0
展开全部
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,再点拟合,在出来的新图里选“新拟合”,再在选择拟合类型为“高斯”,接下来点“应用就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linkylone
2009-09-25 · TA获得超过626个赞
知道小有建树答主
回答量:256
采纳率:62%
帮助的人:214万
展开全部
楼上的cftool很好用,也很方便
如果你非要用程序做。。。。。。。
请先把重复的数据去掉,否则没法拟合或者出错误

不知道楼主这组数据哪里来的,我以前也有过类似的问题,最后直接放弃啦

搂着可以看看,对于一个x值有两个y值,甚至多达4个,你可以大致描个点试试,对于这样的数据点基本拟合不出合适的曲线,因为有很多曲线合适也不合适
所以,楼主可以换组数据

这样的数据,真的没法拟合

当然,小弟能力有限,没准有大虾可以解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
范靖丙如曼
2020-06-24 · TA获得超过3650个赞
知道小有建树答主
回答量:3067
采纳率:31%
帮助的人:200万
展开全部
我教你个方法,希望你好好理解:
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式