同步
This commit is contained in:
parent
e6e555dcac
commit
796ff3d014
16
main.py
16
main.py
@ -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)
|
|
||||||
@ -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:
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
from math import sqrt
|
from math import sqrt
|
||||||
|
|
||||||
|
|
||||||
class Uncertainly:
|
class Uncertainly:
|
||||||
__slots__ = [
|
__slots__ = [
|
||||||
"average",
|
"average",
|
||||||
@ -8,20 +9,22 @@ 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)
|
||||||
|
|
||||||
# def cal_standard_deviation(self):
|
# def cal_standard_deviation(self):
|
||||||
data_cut = [(datum-self.average) ** 2 for datum in self.data]
|
data_cut = [(datum - self.average) ** 2 for datum in self.data]
|
||||||
|
|
||||||
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)}")
|
||||||
Loading…
x
Reference in New Issue
Block a user