matlab曲线拟合问题

x=[123456789101002003004005006007008009001000];>>y=[0.81.281.441.461.601.661.781.801.... x=[1 2 3 4 5 6 7 8 9 10 100 200 300 400 500 600 700 800 900 1000];
>> y=[0.8 1.28 1.44 1.46 1.60 1.66 1.78 1.80 1.90 2.08 2.92 2.94 3.14 3.24 3.42 3.54 3.66 3.74 3.78 3.88];
用插值拟合的曲线比较诡异,请教其他拟合方法。
展开
 我来答
fyg26856469
2012-05-06 · TA获得超过698个赞
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:211万
展开全部

x=[1 2 3 4 5 6  7 8 9 10 100 200  300 400 500 600 700 800  900 1000];

y=[0.8 1.28 1.44 1.46 1.60 1.66  1.78 1.80 1.90 2.08 2.92  2.94  3.14 3.24 3.42 3.54 3.66 3.74  3.78 3.88];

values=spcrv([[x(1) x x(end)];[y(1) y y(end)]],3,1000);

plot(values(1,:),values(2,:),'r');

lhmhz
高粉答主

2012-05-06 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17020

向TA提问 私信TA
展开全部
x=[1 2 3 4 5 6 7 8 9 10 100 200 300 400 500 600 700 800 900 1000];
y=[0.8 1.28 1.44 1.46 1.60 1.66 1.78 1.80 1.90 2.08 2.92 2.94 3.14 3.24 3.42 3.54 3.66 3.74 3.78 3.88];
m=8
[p,S]=polyfit(x,y,m);

% 输出多项式y = a0+a1x+a2x^2+a3x^3+...的各项系数
a0 = -0.000000000000000000008005537506
a1 = 0.000000000000000033266049778819
a2 = -0.000000000000056867074237626663
a3 = 0.000000000051554977775031770000
a4 = -0.000000026616876694737194000000
a5= 0.000007795123013970926400000000
a6 = -0.001208466331402414500000000000
a7 = 0.084529113412331797000000000000
a8 = 1.150620386011975900000000000000
%拟合效果和精度检验
Q =
0.3797
SGM =
0.1452
R2 =
0.9804
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龍__鳳
2012-05-06 · TA获得超过2346个赞
知道小有建树答主
回答量:948
采纳率:0%
帮助的人:1410万
展开全部
用polyfit函数
用法 polyfit(x,y,n ) ;用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为 行向量、矩阵,y为源数据点对应的纵坐标,可为 行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式