当前位置: 首页 > news >正文

微网站建设找哪家公司好中国网站备案取消

微网站建设找哪家公司好,中国网站备案取消,做电子商务网站注册哪一类商标,wordpress固定主题前言 欢迎关注dotnet研习社,前面我们讨论过"C#实现加权平均法",今天我们继续研究另外一种【移动加权平均法】。 在时间序列分析、股票数据处理、工业信号平滑等场景中,移动平均(Moving Average) 是最常见的平滑技术之一…

在这里插入图片描述

前言

欢迎关注dotnet研习社,前面我们讨论过"C#实现加权平均法",今天我们继续研究另外一种【移动加权平均法】。
在时间序列分析、股票数据处理、工业信号平滑等场景中,移动平均(Moving Average) 是最常见的平滑技术之一。相比简单移动平均(SMA),移动加权平均(WMA) 会给更靠近当前时刻的数据分配更高的权重,能更敏锐地反映趋势变化。

本文会深入了解如下内容:

  • 快速理解 WMA 的原理
  • 使用 C# 编写一个通用的 WMA 实现
  • 提供完整示例和代码解析

什么是移动加权平均(WMA)?

移动加权平均(Weighted Moving Average, WMA)与简单移动平均(Simple Moving Average, SMA)的区别在于:

  • SMA 是把窗口内的值等权重平均;
  • WMA 则对窗口内的值分配不同的权重,通常是离当前点越近,权重越大。

举个例子:

  • 对于长度为 5 的窗口,权重可能是 [1, 2, 3, 4, 5],最新值乘以 5,最旧值乘以 1。

算法思路

对于一个时间序列:

  1. 定义窗口大小 n,以及对应的权重列表 [w1, w2, ..., wn]

  2. 从头到尾滑动窗口,每个位置计算:

    WMAt=∑i=1nxt−i+1⋅wi∑i=1nwi WMA_t = \frac{\sum_{i=1}^{n} x_{t-i+1} \cdot w_i}{\sum_{i=1}^{n} w_i} WMAt=i=1nwii=1nxti+1wi

  3. 对每个位置输出对应的 WMA。


C# 实现示例

下面是一份使用 .NET 6/C# 10 的 WMA 完整示例:

using System;
using System.Collections.Generic;
using System.Linq;namespace WeightedMovingAverageDemo
{class Program{static void Main(string[] args){// 原始数据序列List<double> data = new() { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };// 设置窗口大小int windowSize = 3;// 设置权重(例如 1, 2, 3,离当前位置越近权重越大)List<double> weights = new() { 1, 2, 3 };List<double> result = CalculateWeightedMovingAverage(data, windowSize, weights);Console.WriteLine("移动加权平均结果:");Console.WriteLine(string.Join(", ", result.Select(x => x.ToString("F2"))));}/// <summary>/// 计算移动加权平均数/// </summary>static List<double> CalculateWeightedMovingAverage(List<double> data, int windowSize, List<double> weights){if (weights.Count != windowSize)throw new ArgumentException("权重数量必须等于窗口大小。");List<double> result = new();for (int i = 0; i <= data.Count - windowSize; i++){double weightedSum = 0;double weightSum = weights.Sum();for (int j = 0; j < windowSize; j++){weightedSum += data[i + j] * weights[j];}result.Add(weightedSum / weightSum);}return result;}}
}

代码解析

1️⃣ 输入数据

  • data:原始时间序列,如传感器数据、股价等。
  • windowSize:滑动窗口大小。
  • weights:自定义权重列表,元素个数必须与窗口大小一致。

2️⃣ 算法核心

  • 外层循环:从头到尾滑动窗口。
  • 内层循环:窗口内每个值乘以权重累加。
  • 用加权和除以权重之和,得出 WMA。

3️⃣ 返回值

  • 返回一个新的列表,长度是 data.Count - windowSize + 1

输出结果

输入数据:

10, 20, 30, 40, 50, 60, 70, 80, 90, 100

窗口大小:3
权重:[1, 2, 3]

输出:

---

解释:

  • 第一个窗口 (10,20,30) => (10×1 + 20×2 + 30×3)/6 = 23.33
  • 第二个窗口 (20,30,40) => (20×1 + 30×2 + 40×3)/6 = 33.33
  • 以此类推。

🏁 小结

本篇演示了:

  • 移动加权平均的核心原理
  • 使用 C# 编写通用实现
  • 灵活设置权重,提升趋势检测的灵敏度

在工业生产、金融数据分析、实时信号滤波等场景,都可以直接使用此实现,或者把它封装为工具类。

http://www.dtcms.com/a/585966.html

相关文章:

  • AI Agent设计模式 Day 3:Self-Ask模式:自我提问驱动的推理链
  • RAG论文阅读笔记
  • 网站建设优化推广修改wordpress数据库域名
  • 西安成品网站建设临沂最新消息
  • 影视网站搭建技术大纲
  • 多粒子模型-简单化学反应1
  • 基于Springboot的影视推荐系统的设计与实现371d749h(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
  • 网站设计与制作说明书应聘网站优化的简历怎么做
  • 网站项目云主机玩游戏怎么样
  • 什么是PMOS?什么是NMOS?两者有什么区别?
  • Selective Kernel Networks (SKNet)
  • Unreal5从入门到精通之 游戏技能系统(Gameplay Ability System)
  • 首钢水钢赛德建设有限公司网站广电如何做视频网站
  • 简洁网站欣赏制作自己的网站代码吗
  • 如何将图片进行压缩-图片压缩格式+压缩方法
  • 桂林临桂区建设局网站seo建站平台哪家好
  • tornado+gunicorn部署设置max_body_size
  • 大鹏网络网站建设报价asp 建站
  • SSM基于Java的医疗器械销售系统oy281(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • CTFHub Web进阶-PHP:Bypass_disable_function通关9之iconv,bypass iconv1,bypass iconv2
  • 排序算法介绍
  • 服装私人订制网站高端网站建设公司名字
  • CSP-S 练习题:美丽的集合(ST表、二分查找、数论基础-GCD 的应用)
  • 建设一个本地网站网站内容怎么编辑
  • 接口测试基础知识
  • 新网站建设的感想做网站虚拟主机配置
  • LeetCode 419 - 棋盘上的战舰
  • 【视觉】对比分析 GigE Vision、USB3Vision、UCV三种协议
  • 无锡网站制作8揭阳专业做网站公司
  • 建站之星平台怒江网站制作