matlab 不是matlab离散点拟合曲面的拟合

Matlab离散点拟合_中华文本库
第1页/共1页
Matlab离散点拟合
x=[ 0.955 1.380 1.854 2.093 2.674 3.006 y=[ 5.722 4.812 4.727 4.850 5.011 5.253 xi1=linspace(0,5,501);
xi2=0:0.5:5;
yi2=interp1(x,y,xi2,'spline');
str1b={'一阶拟合','二阶拟合','三阶拟合','四阶拟合'} for i=1:4
a=polyfit(x,y,i)
yi1=polyval(a,xi1);
subplot(2,2,i),plot(x,y,'k','LineWidth',2.5), hold on
plot(xi1,yi1,'b',xi2,yi2,'r'),
xlabel(strlb(i)),
text(0.5,15-1,['蓝色为拟合曲线';'红线为插入曲线']) end
3.255 5.617 3.940 6.282 4.060]; 6.255];
第1页/共1页
寻找更多 ""1642人阅读
matlab(8)
ployfit是matlab中基于最小二乘法的多项式拟合函数。最基础的用法如下:
C=polyfit(X,Y,N)
X&:&需要拟合的点的横坐标
Y:需要拟合的点的纵坐标
N:以N阶多项式进行拟合
C:返回的N+1个拟合系数。
Y'=polyval(C,X')
C:N+1个拟合系数
Y':根据X'(横坐标)和拟合系数算出来的纵坐标
X=0:0.1:1;
Y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
C=polyfit(X,Y,2);
Z=polyval(C,X);
plot(X,Y,'r*',X,Z,'b');%n=2阶显示拟合结果
D=polyfit(X,Y,4);
M=polyval(D,X);
plot(X,M,'r')%n=4阶进行拟合的曲线结果
D=polyfit(X,Y,10);
M=polyval(D,X);
plot(X,M,'g')%n=10阶进行拟合的曲线结果
%经过上述实验n越大,即拟合阶数越大,曲线越接近离散点,但曲线越不平滑
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:72717次
积分:1444
积分:1444
排名:千里之外
原创:65篇
转载:44篇matlab如何用最小二乘原理进行离散点拟合曲线
matlab如何用最小二乘原理进行离散点拟合曲线
09-08-29 &匿名提问
是拟合线性曲线吗?是的话 留个邮箱 我发你程序
请登录后再发表评论!
最小二乘法是一种数学方法,用于曲线拟合.二乘,就是平方,是早年翻译的沿用.当在实验中获得自变量与因变量的一系列对应数据,(x1,y1),(x2,y2),(x3,y3),...(xn,yn)时,要找出一个已知类型的函数,y=f(x) ,与之拟合,使得实际数据和理论曲线的离差平方和:∑[yi-f(xi)]^2(从i=1到i=n相加)为最小.这种求f(x)的方法,叫做最小二乘法。求得的函数y=f(x)常称为经验公式,在工程技术和科学研究的数据处理中广泛使用.最普遍的是直线(一次曲线)拟合,在现代质量管理上,对散布图的相关分析上也用此法.
请登录后再发表评论!查看: 5697|回复: 11|关注: 0
三维离散点进行曲线拟合
<h1 style="color:# 麦片财富积分
新手, 积分 7, 距离下一级还需 43 积分
有一组离散点,知道其x,y,z坐标。点的连线趋近于直线,有一点弯曲,现在想进行曲线拟合,最好能得到拟合公式,请问有什么函数吗?谢谢
<h1 style="color:#7 麦片财富积分
关注者: 46
用1stOpt的公式自动搜索匹配功能试试,可以根据数据找出最佳匹配公式。
<h1 style="color:# 麦片财富积分
用1stOpt的公式自动搜索匹配功能试试,可以根据数据找出最佳匹配公式。
好的,我试试&&谢谢!!
<h1 style="color:# 麦片财富积分
用1stOpt的公式自动搜索匹配功能试试,可以根据数据找出最佳匹配公式。
你好,我用1stopt试了一下,自动搜索出的公式如下:
Function: z = p1+p2*x+p3*x^2+p4*x^3+p5*x^4+p6*x^5+p7*y+p8*y^2+p9*y^3
显示拟合的很好可在1stopt里给出的怎么是二维图呢
我在matlab里画了一下与原来的离散点进行对比却差很多,不知道哪里出问题了啊
<h1 style="color:# 麦片财富积分
求助啊!!
<h1 style="color:#7 麦片财富积分
关注者: 46
把数据给出来。
<h1 style="color:# 麦片财富积分
把数据给出来。
多谢! 离散点的x,y,z坐标如下:
175.0218254& & & & 37.& & & & 53.
163.0394402& & & & 35.& & & & 54.
152.4081786& & & & 32.& & & & 56.
142.884771& & & & 30.& & & & 58.
134.28329& & & & 28.& & & & 59.4945188
126.4588744& & & & 27.& & & & 60.
119.2967591& & & & 25.& & & & 62.
112.7046847& & & & 24.& & & & 63.581739
106.6075209& & & & 23.& & & & 64.
100.9433805& & & & 21.& & & & 66.
95.& & & & 20.& & & & 67.
90.& & & & 19.& & & & 68.
86.& & & & 18.5817257& & & & 69.
81.& & & & 17.& & & & 70.
77.& & & & 16.& & & & 71.
73.& & & & 15.& & & & 72.8174959
69.& & & & 15.& & & & 73.
66.& & & & 14.& & & & 74.
63.& & & & 13.& & & & 75.
59.& & & & 12.& & & & 76.
56.& & & & 12.& & & & 77.7333104
53.8600612& & & & 11.& & & & 78.
51.& & & & 11.& & & & 79.
48.& & & & 10.& & & & 80.
45.& & & & 9.& & & & 81.
43.& & & & 9.& & & & 82.1814014
40.& & & & 8.& & & & 83.
38.& & & & 8.& & & & 83.
36.& & & & 7.& & & & 84.
34.& & & & 7.& & & & 85.
31.& & & & 6.& & & & 86.
29.& & & & 6.& & & & 87.
27.& & & & 6.& & & & 87.
26.& & & & 5.& & & & 88.
24.& & & & 5.& & & & 89.
22.& & & & 4.& & & & 90.
20.& & & & 4.& & & & 90.7592956
18.& & & & 4.& & & & 91.
17.& & & & 3.& & & & 92.
15.& & & & 3.& & & & 92.873637
13.& & & & 3.& & & & 93.
12.& & & & 2.& & & & 94.
10.& & & & 2.& & & & 94.
9.& & & & 2.& & & & 95.
8.& & & & 1.& & & & 96.
6.& & & & 1.& & & & 96.
5.& & & & 1.& & & & 97.
3.& & & & 0.& & & & 98.
2.& & & & 0.& & & & 98.
1.& & & & 0.& & & & 99.
0.& & & & 0.& & & & 100.0000039
<h1 style="color:#7 麦片财富积分
关注者: 46
z = p1+p2*x+p3*x^2+p4*y;
均方差(RMSE):1.97E-5
残差平方和(SSE):1.97E-8
相关系数(R): 0.061
相关系数之平方(R^2): 0.122
确定系数(DC): 0.122
卡方系数(Chi-Square): 1.81E-10
F统计(F-Statistic): 1.07
参数& & & & 最佳估算
----------& & & & -------------
p1& & & & -0.092377
p2& & & & -6583
p3& & & & -8.27E-9
p4& & & & 4613
<h1 style="color:# 麦片财富积分
啊太厉害了! 这是为什么呢 是用那个快速公式拟合搜索吗
<h1 style="color:# 麦片财富积分
z = p1+p2*x+p3*x^2+p4*y;
均方差(RMSE):1.97E-5
多谢shihe帮我实验!请问你是用的那个快速公式拟合搜索吗 怎么和我得结果会不一样呢 另外我在matlab中画了一下你得到的这个函数还是和红色的离散点差很多啊 是我画的问题吗 matlab程序如下
A=xlsread('C:\Users\ss\Desktop\wr.xlsx','E2:G52');
scatter3(A(:,1),A(:,2),A(:,3),'r','filled')
p1& && &=&&-0.092377;
p2& &&&=& &-6583;
p3& &&&=& &-8.27E-9;
p4& &&&=& &4613;
x=0:0.1:100;&&y=0:0.1:100;
z = p1+p2*x+p3*x.^2+p4*y;
plot3(x,y,z)
站长推荐 /2
Powered by请问Matlab中如何将离散点连成曲线,比如:x=[0 1 2 3 4 5 6 7 8 8.85],y=[13 12.1 11 10.5 10.1 9.9 9.6 9.3 9.0 8.9]
x=[0&1&2&3&4&5&6&7&8&8.85];y=[13&12.1&11&10.5&10.1&9.9&9.6&9.3&9.0&8.9];xx=0:0.01:10;yy=spline(x,y,xx);plot(x,y,&#39;o&#39;,xx,yy)
为您推荐:
其他类似问题
x=[0 1 2 3 4 5 6 7 8 8.85];y=[13 12.1 11 10.5 10.1 9.9 9.6 9.3 9.0 8.9];plot(x,y)
spline(y,x)
直接plot就是了
a=[0 1 2 3 4 5 6 7 8 8.85]; b=[13 12.1 11 10.5 10.1 9.9 9.6 9.3 9.0 8.9] %纵坐标 %第一种,直接将离散点连成直线 plot(a, b, 'b');
%自然状态的画图效果 %第二种,画平滑曲线的方法 c = polyfit(a, b, 2);
扫描下载二维码

我要回帖

 

随机推荐