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;
}
查看全文
相关阅读:
基于Spring aop写的一个简单的耗时监控
Intellij Idea 15 旗舰版 破解
设计模式之工厂模式
IDE神器intellij idea的基本使用
[js] js判断浏览器(转)
java知识大全积累篇
一些技术大牛的博客集锦(转)
添加鼠标右击菜单
java 方法调用绑定
Android系列--DOM、SAX、Pull解析XML
原文地址:https://www.cnblogs.com/yunbo/p/1155104.html
最新文章
如何从Serilog请求日志记录中排除健康检查终结点
如何使用Serilog.AspNetCore记录ASP.NET Core3.0的MVC属性
舔狗日记 每日更新
关于Python的Mixin模式
Difference between hash() and id()
linux日志logger命令详解
celery定时任务
设计模式之工厂模式与策略模式
MySQL索引与优化策略
六、实验三:事件驱动-协程实现爬虫
热门文章
SQLAlchemy query with OR/AND/like common filters
如何自定义Flask中的响应类
Crontab详细用法-定时任务详解
Python操作MySQL之SQLAlchemy
Linux LVM硬盘管理及LVM扩容
解析Cron表达式
将定时任务cron 解析成中文
mysql分区管理
MySQL的sql_mode解析与设置
老毛子固件使用说明
Copyright © 2011-2022 走看看