commit 7177a0753880fba78f3113e1c71f18275f3b3d87 Author: woni <320753691@qq.com> Date: Wed Nov 1 13:49:53 2023 +0800 init diff --git a/__pycache__/get_data.cpython-311.pyc b/__pycache__/get_data.cpython-311.pyc new file mode 100644 index 0000000..248889c Binary files /dev/null and b/__pycache__/get_data.cpython-311.pyc differ diff --git a/get_data.py b/get_data.py new file mode 100644 index 0000000..63baf4a --- /dev/null +++ b/get_data.py @@ -0,0 +1,29 @@ +import http.client + +import json + + +def get_data(raw_data=[100, 101]): + conn = http.client.HTTPSConnection("www.zhishuyao.com") + payload = "type=jyzs" + + for item in raw_data: + payload += f"&val[]={item}" + + headers = { + "authority": "www.zhishuyao.com", + "content-type": "application/x-www-form-urlencoded", + "origin": "https://www.zhishuyao.com", + } + conn.request("POST", "/decode.php", payload, headers) + res = conn.getresponse() + data = res.read() + return json.loads(data.decode("utf-8"))["data"] + + +if __name__ == "__main__": + raw_data = list(range(0, 1001, 20)) + + res = get_data(raw_data) + for raw, new in zip(raw_data, res): + print(raw, new) diff --git a/nh.py b/nh.py new file mode 100644 index 0000000..5a80127 --- /dev/null +++ b/nh.py @@ -0,0 +1,75 @@ +import numpy as np +from scipy.optimize import curve_fit + + +# Define the function to fit +def func(x, a, b, c): + return a * np.exp(-b * x) + c + + +# Load the data +data = np.array( + [ + [0, 0], + [20, 0], + [40, 1], + [60, 2], + [80, 3], + [100, 5], + [120, 6], + [140, 7], + [160, 9], + [180, 11], + [200, 13], + [220, 15], + [240, 17], + [260, 19], + [280, 21], + [300, 23], + [320, 26], + [340, 28], + [360, 31], + [380, 34], + [400, 36], + [420, 39], + [440, 42], + [460, 45], + [480, 48], + [500, 52], + [520, 55], + [540, 58], + [560, 62], + [580, 65], + [600, 69], + [620, 72], + [640, 76], + [660, 80], + [680, 84], + [700, 88], + [720, 92], + [740, 96], + [760, 100], + [780, 104], + [800, 108], + [820, 112], + [840, 117], + [860, 121], + [880, 126], + [900, 130], + [920, 135], + [940, 140], + [960, 145], + [980, 150], + [1000, 154], + ] +) + +# Separate the data into x and y arrays +xdata = data[:, 0] +ydata = data[:, 1] + +# Fit the curve to the data +popt, pcov = curve_fit(func, xdata, ydata) + +# Print the fitted parameters +print(popt) diff --git a/test.py b/test.py new file mode 100644 index 0000000..4a2af30 --- /dev/null +++ b/test.py @@ -0,0 +1,18 @@ +import numpy as np +from get_data import get_data + +parm_1000 = [-61.4400001, 1402438300.0, 61.4400001] + + +def reduct(x, parm): + a, b, c = parm + return a * np.exp(-b * x) + c + + +def check_data(data): + fit_data = reduct(data, parm_1000) + real_data = get_data([data]) + print(f"拟合数据: {fit_data}, 实际数据: {real_data}, 误差: {fit_data - real_data}") + + +check_data(1000) diff --git a/tmp.py b/tmp.py new file mode 100644 index 0000000..52f016e --- /dev/null +++ b/tmp.py @@ -0,0 +1,37 @@ +import math + + +def calculate_y(x): + y = (10 * math.log(x + 1) + 30) * math.sqrt(x) + return y + + +def calculate_x(y): + # Define the function to find the root of + def f(x): + return (10 * math.log(x + 1) + 30) * math.sqrt(x) - y + + # Set the initial bounds for the bisection method + a = 0 + b = 1e6 + + # Set the tolerance for the root-finding algorithm + tol = 1e-6 + + # Perform the bisection method to find the root + while (b - a) / 2 > tol: + c = (a + b) / 2 + if f(c) == 0: + return c + elif f(a) * f(c) < 0: + b = c + else: + a = c + + return (a + b) / 2 + + +# Example usage +y = 10000000 +x = calculate_y(y) +print(x)