matlab散点图拟合曲线(simulink拟合曲线)
一、请matlab高手过来看看,怎么用b样条曲线拟合离散点
我刚查了下,b样条曲线拟合就是拟合成光滑曲线。这里可以尝试Matlab的polyfit命令,我尝试了好几个,发现在5阶的时候已经非常接近了,当然如果你需要更高精度,可以继续提高阶次。
代码:
x=[1:20];
y=[42454749525966748598111125136147157162164167168168];
plot(x,y,'r')
holdon
p=polyfit(x,y,5)
z=p(1)*x.^5+p(2)*x.^4+p(3)*x.^3+p(4)*x.^2+p(5)*x+p(6);
plot(x,z,'b')
legend('红色原来数据曲线','蓝色直接模拟曲线')
输出结果:
p=
0.0006-0.03150.5628-3.465310.508234.1178
所以拟合结果是:
这是个人愚见,希望对你有帮助,有疑问请追问,若满意还望采纳,祝生活愉快!
二、用matlab对一组数据进行拟合后,怎么直接显示拟合函数的图像
我利用的是Matlab中的应用程序,Curvefitting,首先将数据导入到工作区中,接下来在菜单栏中的应用程序中找到Curvefitting,点击进去,会弹出一个CurvefittingTool的页面,在页面的左上方会有选择,x/y/z等数据,选择好数据之后,接下来要右边会选择拟合的数学模型,选好之后,正下方会有散点图和拟合曲线,在图的左边会有相应的系数以及拟合相关系数等参数,如果您想将拟合图导出来,继续在CurvefittingTool页面的最左上方的文件栏点击Printtofigure,这时候就出图了,不知是否是您想要的答案,祝学习进步!
三、matlab cftool拟合用的什么方法
答:方法一、用数据拟合工具箱CurveFittingTool
打开CFTOOL工具箱。在matlab的commandwindow中输入cftool,即可进入数据拟合工具箱。
输入两组向量x,y。
首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。
例如在命令行里输入下列数据:
x=[196,186,137,136,122,122,71,71,70,33];
y=[0.012605;0.013115;0.016866;0.014741;0.022353;0.019278;0.041803;0.038026;0.038128;0.088196];
数据的选取。打开曲线拟合共工具界面,点击最左边的Xdata和Ydata,选择刚才输入的数据,这时界面中会出现这组数据的散点图。
选择拟合方法,点击Fit
左侧results为拟合结果,下方表格为误差等统计数据。
方法二、用神经网络工具箱
1、打开神经网络工具箱,在commandwindow内输入nftool,进入Neuralfittingtool
2、导入数据,点击next,导入Inputs为x,Targets为y。
3、选择网络参数,点击next,选择训练集和测试集数量,点next,选隐藏层节点个数。
4、训练数据,点next,选train。
5、绘制拟合曲线,训练完成后电机plotfit
训练结果参数在训练完后自动弹出
神经网络工具箱可以用command写,请搜索关键字matlab神经网络工具箱函数。
方法三、用polyfit函数写
polyfit函数是matlab中用于进行曲线拟合的一个函数。其数学基础是最小二乘法曲线拟合原理。曲线拟合:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。
调用方法:a=polyfit(xdata,ydata,n),
其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入。输出参数a为拟合多项式y=a1x^n+...+anx+a,共n+1个系数。
%例程A=polyfit(x,y,2);z=polyval(A,x);plot(x,y,'r*',x,z,'b')
方法四、自行写算法做拟合
请参考数值分析教科书,拟合、插值方法较多,算法并不复杂,灵活套用循环即可