找回密码
 注册
Simdroid-非首页
查看: 57|回复: 0

基于最大误差最小的数据一阶线性拟合编程

[复制链接]
发表于 2011-4-19 22:01:08 | 显示全部楼层 |阅读模式 来自 陕西西安
我们知道数据拟合原则有:1.使最大绝对误差最小原则:E=max(abs(每一项误差))
2.使平均绝对误差最小原则:E=1/n(sum(abs(每一项误差)))
3.误差平方和最小(最小二乘准则):这个是matlab的拟合函数使用的一种原则,如plotfit

而前两种原则就要自己编程了,我以第二条原则编了如下程序,在7.10.0版本上可以很好运行的程序:
function p=pinjun(x,y)
n=length(x);
syms a b;
sum=0;
for i=1:1:n
        theta=abs(a*x(i)+b-y(i));
        sum=sum+theta;
end
f=inline(sum,'a','b');
ff=@(x)f(x(1),x(2));
[x,fval] = fminsearch(ff,[-1, 1]);
p=x;
调用方式:p=pinjun(x,y)

但我试着用第一条原则编时,遇到了困难,希望哪位有识之士可以为我们解答;
注意:我们只要一阶线性拟合就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 21:19 , Processed in 0.033509 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表