This commit is contained in:
Pythagodzilla 2025-10-28 12:54:08 +08:00
parent e6e555dcac
commit 796ff3d014
4 changed files with 25 additions and 32 deletions

1
log.py
View File

@ -1 +0,0 @@
import logger

16
main.py
View File

@ -1,16 +0,0 @@
from uncertainly import Uncertainly
import logger
number_input: str = input("Data input:")
type_B_uncertain: float = float(input("type_B_uncertain: "))
param_tp: float = float(input("tp input: "))
number_list:tuple = number_input.split
try:
numbers = [float(num_str) for num_str in number_list]
uncertain_processor = Uncertainly(numbersm, type_B_uncertain=type_B_uncertain,param_tp=param_tp)
uncertain_processor.output_std
except Exception as e:
logger.exception(e)

View File

@ -4,12 +4,14 @@ number_input = input("Data input:")
type_B_uncertain: float = float(input("type_B_uncertain: ")) type_B_uncertain: float = float(input("type_B_uncertain: "))
param_tp: float = float(input("tp input: ")) param_tp: float = float(input("tp input: "))
number_list:tuple = number_input.split() number_list: list = number_input.split()
try: try:
numbers = [float(num_str) for num_str in number_list] numbers = [float(num_str) for num_str in number_list]
print(numbers) print(numbers)
uncertain_processor = Uncertainly(data=numbers, type_B_uncertain=type_B_uncertain,param_tp=param_tp) uncertain_processor = Uncertainly(
data=numbers, type_B_uncertain=type_B_uncertain, param_tp=param_tp
)
uncertain_processor.output_std() uncertain_processor.output_std()
except Exception as e: except Exception as e:

View File

@ -1,5 +1,6 @@
from math import sqrt from math import sqrt
class Uncertainly: class Uncertainly:
__slots__ = [ __slots__ = [
"average", "average",
@ -8,10 +9,10 @@ class Uncertainly:
"type_A_uncertain", "type_A_uncertain",
"type_B_uncertain", "type_B_uncertain",
"total_uncertain", "total_uncertain",
"data" "data",
] ]
def __init__(self, data: tuple, type_B_uncertain: float, param_tp: float): def __init__(self, data: list, type_B_uncertain: float, param_tp: float):
self.data = data self.data = data
self.average: float = sum(self.data) / len(self.data) self.average: float = sum(self.data) / len(self.data)
self.length = len(self.data) self.length = len(self.data)
@ -21,7 +22,9 @@ class Uncertainly:
self.standard_deviation: float = sqrt(sum(data_cut) / (self.length - 1)) self.standard_deviation: float = sqrt(sum(data_cut) / (self.length - 1))
self.type_A_uncertain:float = param_tp * self.standard_deviation / sqrt(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.total_uncertain = 2 * sqrt(self.type_A_uncertain**2 + type_B_uncertain**2)
self.type_B_uncertain = type_B_uncertain self.type_B_uncertain = type_B_uncertain
@ -30,7 +33,12 @@ class Uncertainly:
print(f"平均为:{self.data}/{self.length}={self.average}\n") print(f"平均为:{self.data}/{self.length}={self.average}\n")
# print(f"{self.average}\n") # print(f"{self.average}\n")
print(f"标准差:{round(self.standard_deviation,4)}") print(f"标准差:{round(self.standard_deviation,4)}")
print(f"3S区间[{round(self.average - 3 * self.standard_deviation,4)},{round(self.average +3 * self.standard_deviation,4)}]") print(
print(f"B类不确定度确认{self.type_B_uncertain}\n") f"3S区间: [{round(self.average - 3 * self.standard_deviation,4)},{round(self.average +3 * self.standard_deviation,4)}]"
print(f"总不确定度2 * ✓{round(self.type_A_uncertain,4)}^2 + {round(self.type_B_uncertain,4)}^2={round(self.total_uncertain,4)}") )
print(f"A类不确定度确认: {round(self.type_A_uncertain,4)}")
print(f"B类不确定度确认: {self.type_B_uncertain}\n")
print(
f"总不确定度: 2 * ✓{round(self.type_A_uncertain,4)}^2 + {round(self.type_B_uncertain,4)}^2={round(self.total_uncertain,4)}"
)
print(f"结果表达式为:{round(self.average,4)}+-{round(self.total_uncertain,4)}") print(f"结果表达式为:{round(self.average,4)}+-{round(self.total_uncertain,4)}")