physics/uncertainly.py
2025-09-18 19:06:50 +08:00

27 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class Uncertainly:
__slots__ = [
"average"
]
def __init__(self, data: tuple, type_B_uncertain: float, param_tp: float):
self.average:float = sum(data) / len(data)
self.length = len(data)
# def cal_standard_deviation(self):
data_cut = [datum-self.average for datum in self.input_data]
self.standard_deviation:float = sum(data_cut) / self.length
self.type_A_uncertain:float = param_tp * self.standard_deviation / sqrt(self.length)
self.total_uncertain = 2 * sqrt(self.type_A_uncertain**2 + type_B_uncertain**2)
self.type_B_uncertain = type_B_uncertain
def output_std(self):
print(f"平均为:{data}/{self.length}={self.average}\n")
# print(f"{self.average}\n")
print(f"标准差:{self.standard_deviation}")
print(f"3S区间[{self.average - 3 * self.standard_deviation},{self.average +3 * self.standard_deviation}]")
print(f"B类不确定度确认{self.type_B_uncertain}\n")
print(f"总不确定度2 * ✓{self.type_A_uncertain}^2 + {self.type_B_uncertain}^2={self.total_uncertain}")
print(f"结果表达式为:{self.average}+-{self.total_uncertain}")