Edward Linus's personal blog, focusing on coding and etc.

TagC#

水文测验学中的数字修约C#实现

前言 为了更好的记录数据和查找数据,在进行具体数字运算前,需按照一定的规则确定一致的位数,然后舍去某些数字后面多余的尾数。现在被广泛使用的数字修约规则主要有四舍五入规则和四舍六入五留双规则。 我们对于四舍五入修约规则再熟悉不过了,这个规则贯彻了小学中学,甚至大学的数字修约过程。利用这种方法修约简单快捷,但实际上这种规则由于舍去的是“1、2、3、4”,入位的是“5、6、7、8、9”,这样必然会造成结果的系统偏高,误差偏大1/9。 与此相比,四舍六入五留双规则就精确的多得多,但与此同时也会相对麻烦一些。 四舍六入五留双规则的具体使用方法是: (1)当尾数小于或等于4时,直接将尾数舍去; (2)当尾数大于或等于6时,将尾数舍去并向前一位进位; (3)当尾数为 5,而尾数后面的字均为 0时,应看尾数5的前一位:若前一位数字此时为奇数,就应向前进一位;若前一位数字此时为偶数,则应该将尾数舍去。...

三次样条插值及最小二乘法插值的C#实现

前言 在水文预报中,利用1小时单位线计算而来的S曲线可以很方便的完成单位线的时段转换。实际运用中,当目标单位线时段长Δtk是原始单位线时段长Δt0的整数倍,即当Δtk=KΔt0 (K=1,2,…N)时,可以不需要计算出Δt0=1h的S曲线即可完成单位线的时段转换,其方法为由原始单位线计算得S(t) (Δt=Δt0),接着计算得S(t-KΔt),两个S曲线相减再除以K即可得到目标单位线的q(t)曲线,但当Δtk!=KΔt0 (K=1,2,…N)时,就必须得通过三次样条插值得到Δt=1h的S曲线后再进行接下来的时段转换计算。 插值实现 Interpolation.cs C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System...

Edward Linus's personal blog, focusing on coding and etc.

Meta