Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-03-04, 22:27   #1
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
不错 【原创】最小二乘法多项式拟合

% 最小二乘法多项式拟合
% ******** 立方体抗压强度实验数据表 ********
% (1)-----选择拟合多项式拟合的阶数
x=[1 2 3 7 14 28];
y=[30.3 43.9 47.1 54.9 56.1 60.6];
n = 6; x1 = x(1); xn = x(n);
% n个数据可以拟合(n-1)阶多项式,高阶多项式多次求导,数值特性变差
% polytool()是交互式函数,在图形上方[Degree]框中输入阶数,右击左下角的[Export]输出图形
polytool(x,y,1)
% 观察多项式拟合的图形,选择置信区间最小的多项式阶数
% (2)-----计算多项式的各项系数和拟合值
m=input(' 输入多项式拟合的阶数 m = ');
[p,S]=polyfit(x,y,m);
disp ' 输出多项式的各项系数'
fprintf (1,' a = %3.16f \n',p)
disp ' 输出多项式的有关信息 S'
disp (S)
[yh,delta]=polyconf(p,x,S);
disp ' 观测数据 拟合数据'
disp ' x y yh'
for i = 1 : n
xy = [x(i) y(i) yh(i)];
disp (xy)
end
% (3)-----绘制观测数据离散点图和多项式曲线
plot(x,y,'r.')
title('\bf 实验数据离散点图 / 多项式曲线 \it y = a0+a1x+a2x^2+a3x^3+...')
grid
hold on;
xi=[x1:0.1:xn];
yi=polyval(p,xi);
plot(xi,yi,'k-')
% (4)-----拟合效果和精度检验
Q=sum((y-yh).^2);
SGM = sqrt(Q / (n - 2));
RR = sum((yh-mean(y)).^2)/sum((y-mean(y)).^2);
fprintf (1,' 剩余平方和 Q = %3.6f \n',Q)
fprintf (1,' 标准误差 Sigma = %3.6f \n',SGM)
fprintf (1,' 相关指数 RR = %3.6f \n',RR)
x0=input(' 输入插值点 x0 = ');
y0=polyval(p,x0);
fprintf (1,' 输出插值点拟合函数值 y0 = %3.4f \n',y0)
shiqiang 当前离线   回复时引用此帖
旧 2008-03-04, 22:28   #2
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

这是我上次做材料受力分析时做的一个程序,大家需要的话可以借鉴一下。很好用的。
shiqiang 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
【求助】想问一下有没有不用考虑期望输出的自适应算法 klz MATLAB论坛 1 2008-04-05 12:55
MATLAB计算中的小问题,那位大神帮帮忙! stormbird MATLAB论坛 2 2007-06-19 23:57


所有时间均为北京时间。现在的时间是 08:57


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.