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;
}
查看全文
相关阅读:
一直追求技术好吗?
设计模式前言
vba 行 列 单元格 统计
JavaScript 仿LightBox内容显示效果
Excel 比大小
多态
JavaScript 图片切换展示效果
vba 单元格 一系例操作
关于Flex的争论(富客户端、弱客户端)
input文本框样式代码实例
原文地址:https://www.cnblogs.com/yunbo/p/1155104.html
最新文章
添加状态栏文字运动效果
C#调用浏览器(默认和非默认浏览器)
C#两种创建快捷方式的方法
VB 获取 取得Window, System, Temp 等 所在目录
在开始菜单中添加 OEM 信息
蓝屏代码详解
在网页上插入能自动更新的日期和时间
系统封装_Ghost光盘制作
人生三个不能等
状态栏,显示一个病毒的发作过程(纯属无聊,白痴才会当真的.)
热门文章
重装系统后修复PS
身份证号码的规则及验证原理
ASP实现MD5加密(vbScript)
Windows中打开和关闭FSO文件读写权限的方法
决定你一生成功的21条信念
随机生成图片验证码(C#)
Ghost 使用详解
ASP常用内置函数
背景图片,颜色变化脚本
Jmeter参数化实际应用
Copyright © 2011-2022 走看看