zoukankan
html css js c++ java
最小二乘法曲线拟合
//
最小二乘法曲线拟合
typedef CArray
<
double
,
double
>
CDoubleArray;
BOOL CalculateCurveParameter(CDoubleArray
*
X,CDoubleArray
*
Y,
long
M,
long
N,CDoubleArray
*
A)
{
//
X,Y -- X,Y两轴的坐标
//
M -- 结果变量组数
//
N -- 采样数目
//
A -- 结果参数
register
long
i,j,k;
double
Z,D1,D2,C,P,G,Q;
CDoubleArray B,T,S;
B.SetSize(N);
T.SetSize(N);
S.SetSize(N);
if
(M
>
N)M
=
N;
for
(i
=
0
;i
<
M;i
++
)
(
*
A)[i]
=
0
;
Z
=
0
;
B[
0
]
=
1
;
D1
=
N;
P
=
0
;
C
=
0
;
for
(i
=
0
;i
<
N;i
++
)
{
P
=
P
+
(
*
X)[i]
-
Z;
C
=
C
+
(
*
Y)[i];
}
C
=
C
/
D1;
P
=
P
/
D1;
(
*
A)[
0
]
=
C
*
B[
0
];
if
(M
>
1
)
{
T[
1
]
=
1
;
T[
0
]
=-
P;
D2
=
0
;
C
=
0
;
G
=
0
;
for
(i
=
0
;i
<
N;i
++
)
{
Q
=
(
*
X)[i]
-
Z
-
P;
D2
=
D2
+
Q
*
Q;
C
=
(
*
Y)[i]
*
Q
+
C;
G
=
((
*
X)[i]
-
Z)
*
Q
*
Q
+
G;
}
C
=
C
/
D2;
P
=
G
/
D2;
Q
=
D2
/
D1;
D1
=
D2;
(
*
A)[
1
]
=
C
*
T[
1
];
(
*
A)[
0
]
=
C
*
T[
0
]
+
(
*
A)[
0
];
}
for
(j
=
2
;j
<
M;j
++
)
{
S[j]
=
T[j
-
1
];
S[j
-
1
]
=-
P
*
T[j
-
1
]
+
T[j
-
2
];
if
(j
>=
3
)
{
for
(k
=
j
-
2
;k
>=
1
;k
--
)
S[k]
=-
P
*
T[k]
+
T[k
-
1
]
-
Q
*
B[k];
}
S[
0
]
=-
P
*
T[
0
]
-
Q
*
B[
0
];
D2
=
0
;
C
=
0
;
G
=
0
;
for
(i
=
0
;i
<
N;i
++
)
{
Q
=
S[j];
for
(k
=
j
-
1
;k
>=
0
;k
--
)
Q
=
Q
*
((
*
X)[i]
-
Z)
+
S[k];
D2
=
D2
+
Q
*
Q;
C
=
(
*
Y)[i]
*
Q
+
C;
G
=
((
*
X)[i]
-
Z)
*
Q
*
Q
+
G;
}
C
=
C
/
D2;
P
=
G
/
D2;
Q
=
D2
/
D1;
D1
=
D2;
(
*
A)[j]
=
C
*
S[j];
T[j]
=
S[j];
for
(k
=
j
-
1
;k
>=
0
;k
--
)
{
(
*
A)[k]
=
C
*
S[k]
+
(
*
A)[k];
B[k]
=
T[k];
T[k]
=
S[k];
}
}
return
TRUE;
}
查看全文
相关阅读:
数据库——MySQL进阶
数据库——MySQL
Django 六——自定义标签、图片验证码、发送邮件、评论树、组合搜索
Django 五——中间件、缓存、CSRF、信号、Bootstrap(模板)
Django 四——ModelForm用法
Django 三—— Form组件
Django补充知识点——用户管理
FreeOTP可以用作谷歌认证的替代
Chrome浏览器使用ajax加载本地数据文件问题
技术积累--常用的文本分类的特征选择算法
原文地址:https://www.cnblogs.com/yunbo/p/1155104.html
最新文章
Python version 2.7 required, which was not found in the registry
python第三方库之PyGraphics
Python中第三方的用于解析HTML的库:BeautifulSoup
找回git rebase --skip消失的代码
node中使用log4js4.x版本记录
js事件循环了解一下
VUE (vue-cli)脚手架项目说明
textarea实现高度自适应
记录使用node启用微信公众平台服务器配置
阿里云服务器安装mongodb
热门文章
使用grunt0.4进行js代码混淆
部分正则验证
记录混合APP开发遇到的坑!!
蚂蚁金服校园招聘啦
storm 简介
python 二——函数、装饰器、生成器、面向对象编程(初级)
python 二(续)——面向对象编程进阶
参考资料
算法初识
数据库性能优化
Copyright © 2011-2022 走看看