利用自定义积分公式,目前可以求出所有1元方程和1元积分的近似值

import math, time

def F(x, k):

return 1 + x**k + x

def o(eq, a, b, d=1e-1, max_k=50):

exec(f"g=lambda x:{eq}", globals())

r, s = 0.0, (a, b)

while s:

n = \[\]

for x0, x1 in s:

dx = x1 - x0

if dx < d:

x_mid = (x0 + x1) / 2

ws, vs = 0.0, 0.0

for k in range(1, max_k+1):

fv = F(x_mid/(2*math.pi), k)

w = 1/(fv + 1e-12)

ws += w

vs += w * g(x_mid)

val = vs/ws if ws>0 else g(x_mid)

r += dx * val

continue

u, v, m_val = g(x0), g(x1), g((x0+x1)/2)

if abs(u - v) < 1e-8 and abs(m_val - u) < 1e-8:

r += dx * m_val

continue

h = dx / 10

for i in range(10):

n.append((x0 + i*h, x0 + (i+1)*h))

s = n

return r

def so(eq, target, a, b, p, tol=1e-10, max_iter=20):

res_eq = f"abs({eq}-{target})"

x_best = (a + b)/2

min_res = o(res_eq, a, b, d=1e-1)

for _ in range(max_iter):

mid = (a + b)/2

res_a = o(res_eq, a, mid, d=1e-1)

res_b = o(res_eq, mid, b, d=1e-1)

if res_a < res_b:

b, min_res = mid, res_a

else:

a, min_res = mid, res_b

x_best = (a + b)/2

ws, xs = 0.0, 0.0

for k in range(1, 101):

fv = F(x_best/p, k)

w = 1/(fv + 1e-12)

ws += w

xs += w * x_best

x_best = xs/ws if ws>0 else x_best

if b - a < tol:

break

return x_best

test_eq = "200*math.sin(x)**100"

print("积分功能测试")

t0 = time.time()

integral_res = o(test_eq, 1, 200)

t1 = time.time() - t0

print(f"∫1,200({test_eq})dx = {integral_res:.12f}")

print(f"积分耗时: {t1:.6f}秒\n")

test_cases = (1.0, 0.1), (2.0, 0.5), (3.0, 0.8), (0.5, 0.3), (5.0, 0.9)

print(f"{'M':>3} {'e':>6} {'积分法求出的E':>12}")

for M, e in test_cases:

积分法求解:方程为 E - e*sin(E) = M,变量E∈0,2π

eq = f"x - {e}*math.sin(x)"

tf = time.time()

E_f = so(eq, M, 0, 2*math.pi, 10, tol=1e-10)

tf = time.time() - tf

print(f"{M:6.2f} {e:6.2f} {E_f:12.8f}")

print(f"自创积分法时间:{tf}")

相关推荐
荣码5 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
金銀銅鐵16 小时前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li18 小时前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
小九九的爸爸1 天前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
阿耶同学1 天前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员
花酒锄作田2 天前
Pydantic校验配置文件
python
hboot2 天前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
ZhengEnCi2 天前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi2 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽2 天前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry