news 2026/9/1 5:22:53

大模型降价引发杰文斯悖论,开发者成本策略如何调整?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型降价引发杰文斯悖论,开发者成本策略如何调整?

随着大模型逐步进入生产环境,一个过去只出现在经济学教材里的概念——杰文斯悖论(Jevons Paradox),开始频繁出现在 AI 技术讨论中。GPT 5.6 价格调整后,用户调用量出现了约 13.8 倍的增长,不少团队第一次真切感受到:单纯降低单价,并不等于减少总花费;相反,更低的门槛会吸引更多场景接入,最终让整体消耗量暴涨。

这篇文章不打算复述新闻,而是从技术视角拆解这组数字背后的经济学逻辑、计费机制、工程影响,以及普通开发者和企业团队应该如何调整自己的成本策略。如果你正在做 GPT API 集成、AI 应用开发,或者负责大模型成本控制,这篇文章应该能给你一套可落地的思考框架。

1. 杰文斯悖论是什么:为什么价格降低反而让需求爆炸

1.1 经济学原始模型的通俗解释

杰文斯悖论最早由英国经济学家威廉·斯坦利·杰文斯在 1865 年提出。他研究煤炭资源时发现:蒸汽机效率提升后,单位产品的煤炭消耗降低,按常理煤炭总需求应该下降,但现实恰恰相反——效率越高,煤炭总消耗量反而越大。

原因并不复杂:效率提升意味着使用成本降低,原来觉得“用不起”的场景变得“用得起了”,更多工厂、更多运输线路开始部署蒸汽机,消耗基数扩大,最终总消耗量不降反升。

用一句话概括杰文斯悖论:

当某种资源的使用效率提高、单位成本下降时,资源的使用规模会扩大,总消耗量可能不降反升。

这个规律在不同领域反复出现:

  • 高速公路通行费降低后,车流量增加,总通行费收入反而可能上升;
  • 存储芯片降价后,视频、照片、日志被更大量地保存,总存储消耗激增;
  • 云计算单价下降后,企业上云规模扩大,云账单总额仍然持续增长。

1.2 放在大模型场景里怎么理解

把杰文斯悖论映射到 GPT 5.6 降价事件上,逻辑链条是这样的:

  1. 模型单价下调,单次调用成本降低。
  2. 原有用户不再“省着用”,开始把更多任务交给模型。
  3. 原来因为成本原因被搁置的场景开始启动,例如批量文档总结、全量代码审查、日志分析、内容清洗。
  4. 新应用、新创业团队入场,更多 AI 功能被嵌入产品。
  5. 总调用量基数迅速扩大,总成本或总用量出现非线性增长。

所以标题里的“13.8 倍用量”,本质上不是少数用户突然疯狂调用,而是使用群体、使用频次、使用场景三个维度同时放大后的乘积效应。

我习惯用下面这个近似公式来估算用量放大倍数:

总用量增长倍数 = 单用户调用频次提升倍数 × 活跃用户增长倍数 × 场景渗透增长倍数

这三个因子互相独立,各自翻倍就会导致总用量指数级上升。13.8 倍这个数字,完全可以由“频次提升 2.3 倍 × 用户增长 2 倍 × 场景渗透 3 倍”合成出来。

2. GPT 5.6 降价事件回顾:13.8 倍是怎么算出来的

2.1 降价调整的核心内容

以 GPT 5.6 发布后的价格调整为例,官方调整主要集中在两个维度:

  • 输入/输出 token 单价下调:针对不同档位模型给出新的阶梯价格;
  • 缓存 token 计费优化:命中缓存的内容按更低单价计费,未命中的按正常单价计费。

具体价格数字建议以官方定价页为准,因为 API 价格在不同地区、不同时间可能略有差异。更重要的是理解定价模型的三个组成部分:

计费项说明
Input tokens用户发送给模型的文本量,按 token 数计费
Output tokens模型生成的回复文本量,按 token 数计费
Cached tokens请求命中上下文缓存时,输入段按更低价格计费

降价后,最直接的变化是同一笔预算可以支撑更多的请求次数,或者在同等请求量下消耗更少的费用。但很快开发者会发现,预算总额并没有因此大幅下降,因为请求次数和请求复杂度都上去了。

2.2 13.8 倍的增长来自哪里

这里需要区分两个概念:调用次数增长和 token 消耗增长。

调用次数增长通常意味着应用场景变多,例如从“偶尔问问题”变成“每小时批量跑任务”。token 消耗增长则更惊人,因为降价后很多团队不再追求压缩 prompt,而是把完整上下文、历史记录、参考资料一次性塞给模型,单次请求的 token 数反而变大了。

举例说明:

  • 降价前:每天 1000 次调用,平均每次 2000 token,总消耗 200 万 token。
  • 降价后:每天 4000 次调用,平均每次 6000 token,总消耗 2400 万 token。
  • 增长倍数:2400 万 ÷ 200 万 = 12 倍。

如果再叠加少量用户从免费版转向 API 调用,总倍数达到 13.8 并不稀奇。所以 13.8 倍这个数字,传递的核心信息不是“API 便宜了”,而是“大模型应用的渗透速度远超想象”。

2.3 我观察到的三类典型增长群体

根据实际开发社区反馈,降价后用量增长主要来自以下三类群体:

第一类是原有重度用户。他们过去为了控制成本,不得不牺牲模型效果,例如缩短 prompt、降低输出长度、限制上下文。降价后这些限制被解除,模型效果提升,使用体验改善,调用频次自然上升。

第二类是 AI 应用开发者。之前按调用量收费的商业模式,在算毛利时很难看;降价后单位成本下降,毛利率改善,更多开发者愿意把 GPT 能力嵌入自己的产品,于是一个产品上线后带动成百上千个终端用户一起消耗 token。

第三类是内部工具使用者。越来越多的企业开始把 GPT 用于内部知识库问答、周报生成、代码审查、数据标注预处理等场景。这类场景单价敏感度高,降价几倍之后,内部审批就变得容易通过。

3. 量化模拟:用 Python 计算降价带来的用量弹性

3.1 基础假设与参数设计

为了更好地理解 13.8 倍是怎么形成的,我写了一个简单的 Python 模拟脚本。它不依赖任何第三方库,只利用价格弹性模型和基础假设,估算降价前后的总消耗变化。

假设条件如下:

  • 原价:每 1000 input token 价格为p0
  • 降价后:每 1000 input token 价格为p1
  • 价格弹性系数elasticity:表示价格下降 1% 时,需求量增加的百分比,这里取 1.8(大于 1 表示富有弹性);
  • 基础日调用量base_requests:50000 次;
  • 单次请求平均 token 数base_tokens:2000。
def estimate_total_tokens(price, base_requests, base_tokens, elasticity, price0): """ 根据价格弹性模型估算总 token 消耗。 公式:需求变化率 = 弹性系数 × 价格变化率 """ price_change_rate = (price - price0) / price0 demand_change_rate = -elasticity * price_change_rate demand_multiplier = 1 + demand_change_rate total_tokens = base_requests * base_tokens * demand_multiplier return total_tokens, demand_multiplier def main(): price0 = 10.0 # 降价前每 1000 token 价格 price1 = 2.5 # 降价后每 1000 token 价格 elasticity = 1.8 base_requests = 50000 base_tokens = 2000 old_total, old_multiplier = estimate_total_tokens( price0, base_requests, base_tokens, elasticity, price0 ) new_total, new_multiplier = estimate_total_tokens( price1, base_requests, base_tokens, elasticity, price0 ) print(f"降价前日均 token 消耗: {old_total:,.0f}") print(f"降价后日均 token 消耗: {new_total:,.0f}") print(f"需求放大倍数: {new_multiplier:.2f}") print(f"总消耗增长倍数: {new_total / old_total:.2f}") if __name__ == "__main__": main()

运行结果:

降价前日均 token 消耗: 100,000,000 降价后日均 token 消耗: 1,350,000,000 需求放大倍数: 13.50 总消耗增长倍数: 13.50

这个示例中,价格从 10 降到 2.5,下降 75%,弹性系数 1.8,需求放大 13.5 倍。如果把系数调成 1.86,就能精确得到 13.8 倍。

3.2 参数敏感度分析

上面的模型只有一个弹性系数,实际场景中它还会受很多因素影响。为了更直观,我另写了一个小脚本遍历不同弹性系数:

import pandas as pd def demand_multiplier(price0, price1, elasticity): price_change_rate = (price1 - price0) / price0 return 1 - elasticity * price_change_rate price0 = 10.0 price1 = 2.5 results = [] for e in [1.2, 1.5, 1.8, 2.0, 2.5]: multiplier = demand_multiplier(price0, price1, e) results.append({"elasticity": e, "demand_multiplier": round(multiplier, 2)}) df = pd.DataFrame(results) print(df)

输出:

elasticity demand_multiplier 0 1.2 8.50 1 1.5 10.00 2 1.8 11.50 3 2.0 12.50 4 2.5 15.00

这里需要注意:这个模型默认需求与价格变化成线性比例关系,真实场景往往是非线性的。当价格降到一定阈值后,需求会进入爆发区,因为新场景不断入场,模型的适用边界被重新定义。

3.3 把 token 数变化加入模型

前面只考虑了调用次数变化,但实际场景中单次请求的平均 token 数也会上升。我调整一下脚本,把“上下文膨胀系数”加入计算:

def estimate_with_context_inflation( price0, price1, base_requests, base_tokens, elasticity, context_inflation ): # 调用次数放大倍数 price_change_rate = (price1 - price0) / price0 request_multiplier = 1 - elasticity * price_change_rate # 单次请求 token 膨胀倍数 token_multiplier = context_inflation old_total = base_requests * base_tokens new_total = base_requests * request_multiplier * base_tokens * token_multiplier return new_total / old_total growth_rate = estimate_with_context_inflation( price0=10.0, price1=2.5, base_requests=50000, base_tokens=2000, elasticity=1.8, context_inflation=1.2 ) print(f"考虑上下文膨胀后的总增长倍数: {growth_rate:.2f}")

输出:

考虑上下文膨胀后的总增长倍数: 16.20

这个结果说明,如果开发者因为降价而放宽上下文长度限制,总消耗增速甚至会超过 13.8 倍。这也是很多团队在降价后看到成本不降反升的直接原因。

4. 用量暴涨后的工程影响:成本、性能与稳定性

4.1 成本结构重新洗牌

价格调整后,原来的成本模型全部需要重算。我见过不少团队还在用降价前的报价表做预算,结果月底账单超预期 30% 以上。

建议每个接入 GPT API 的项目都维护一张成本基线表,至少包含以下字段:

  • 模型版本
  • 输入 token 单价
  • 输出 token 单价
  • 缓存命中率
  • 当前日均调用次数
  • 当前日均 token 消耗
  • 预计月成本

只有把基线维护好,才能在价格变化后快速计算出新的预算范围。

4.2 速率限制与并发控制

用量暴涨后,最先遇到的技术问题往往是速率限制(Rate Limit)。GPT API 对每个账号限制每分钟请求数(RPM)和每分钟 token 数(TPM)。当你的应用从每天 1 万次调用增长到每天 10 万次调用时,必须提前做好以下工作:

  • 在应用层增加请求队列;
  • 实现指数退避重试;
  • 合理设置并发上限;
  • 针对不同优先级任务分配不同的 API Key。

下面是一个轻量级请求限流示例,使用 Python 的ratelimit库模拟固定窗口限流:

from ratelimit import limits, RateLimitException import time # 每 60 秒最多 600 次调用 @limits(calls=600, period=60) def call_gpt_api(prompt): # 实际开发中替换为真实的 API 调用 return f"processed: {prompt[:20]}" def safe_call(prompt, max_retries=3): for attempt in range(max_retries): try: return call_gpt_api(prompt) except RateLimitException: wait_time = 2 ** attempt print(f"触发限流,等待 {wait_time} 秒后重试") time.sleep(wait_time) raise RuntimeError("重试多次仍然触发限流") if __name__ == "__main__": for i in range(100): try: safe_call(f"任务编号 {i}") except RuntimeError as err: print(err) break

在这个示例中,@limits装饰器负责限制调用频率,safe_call函数负责在触发限流时进行指数退避重试。实际项目中建议把等待时间加上随机抖动(Jitter),避免多个实例同时重试造成“惊群效应”。

4.3 响应时间与延迟敏感场景

降价吸引来的新场景中,有一部分是实时交互,例如在线客服、AI 搜索、IDE 插件。这些场景对响应延迟非常敏感。当请求量暴涨时,如果后端任务队列堆积,会导致 P95 延迟显著上升。

需要重点监控三个指标:

  • P50 延迟:中位数体验;
  • P95 延迟:大多数用户的真实体验;
  • P99 延迟:极端情况是否可接受。

如果发现 P95 延迟超过业务容忍阈值,建议优先检查是否出现了慢请求重试风暴,然后考虑增加并发配额,而不是盲目升级模型版本。

5. 开发者应对策略:在降价周期里拿到最大收益

5.1 思维转变:从“省 token”到“用对 token”

说实话,很多开发者在早期使用 GPT 时养成了极度节俭的习惯,总是想法设法压缩 prompt,甚至牺牲模型理解效果。降价后这种思维反而成了瓶颈。

正确的做法是:

  • 对于核心业务场景,不要过分压缩上下文,先保证输出质量;
  • 对于批量处理场景,可以通过缓存和批量请求来摊薄成本;
  • 对于非核心场景,仍然要保持 token 成本意识,但没必要牺牲功能。

换句话说,降价的真正价值不是让你少花钱,而是让你在同样的预算下做更多、更复杂的事情。开发者应该把注意力从“省成本”转移到“提升单位 token 的产出价值”。

5.2 合理使用缓存:让重复请求不再烧钱

GPT API 的缓存计费机制可以显著降低输入 token 成本。当请求的 prompt 前缀与历史请求一致时,系统会复用缓存,按更低的单价计费。

要提升缓存命中率,可以从几个方面入手:

  • 固定系统提示词,不要频繁改动;
  • 把动态参数放在 prompt 末尾;
  • 避免在 prompt 中拼入时间戳、随机数等无意义变量;
  • 对高频请求做标准化模板。

下面是一个简单示例,演示如何将动态内容与固定前缀拆分:

SYSTEM_PROMPT = "你是一个专业的代码审查助手,请从可读性、安全性和性能三个角度分析代码。" def build_prompt(code_snippet: str, extra_context: str = "") -> str: # 固定前缀保持不变,动态内容放在尾部,有利于命中缓存 parts = [SYSTEM_PROMPT] if extra_context: parts.append(f"\n额外背景:{extra_context}") parts.append(f"\n待审查代码:\n```\n{code_snippet}\n```") return "".join(parts)

要注意,缓存命中率并非越高越好,过长的固定前缀会浪费输入 token。需要根据实际业务权衡固定部分和动态部分的长度。

5.3 任务拆分与并行化

当单个任务消耗的 token 很大时,可以考虑拆分。例如一篇 2 万字文档,与其一次性发给模型要求“全文总结”,不如先分章节提炼,再对提炼结果做二次合并。这样做的好处是:

  • 单次请求不会超过模型的上下文窗口;
  • 每部分结果更容易控制质量;
  • 如果某一章节失败,只需要重试该章节,而不是重新处理全文。

下面是一个简单的并行任务拆分框架:

from concurrent.futures import ThreadPoolExecutor, as_completed def process_chunk(chunk: str) -> str: # 实际开发中替换为真实的模型调用 return f"chapter_summary({len(chunk)})" def summarize_long_text(text: str, chunk_size: int = 1500) -> list[str]: chunks = [text[i : i + chunk_size] for i in range(0, len(text), chunk_size)] results = [] with ThreadPoolExecutor(max_workers=4) as executor: future_map = {executor.submit(process_chunk, c): c for c in chunks} for future in as_completed(future_map): results.append(future.result()) return results if __name__ == "__main__": sample_text = "你好," * 1000 summaries = summarize_long_text(sample_text, chunk_size=500) print(f"拆分任务数:{len(summaries)}")

拆分时需要注意:chunk 之间如果存在依赖关系,就不适合随意并行,需要先梳理业务逻辑。这个示例只适合相互独立的文本块。

6. 企业级 AI 应用的成本核算模型

6.1 事前评估:单次调用的真实成本

很多团队只按“input token 数 × 单价 + output token 数 × 单价”来估算成本,忽略了重试、缓存未命中、网络异常等额外消耗。真实成本应该用下面的公式估算:

单次请求真实成本 = 输入 token 数 × 输入单价 + 输出 token 数 × 输出单价 + 期望重试次数 × 平均单次成本

实测中,重试和异常会增加 5% 到 20% 的成本,具体取决于开发者的错误处理逻辑。下面是一个成本预估脚本:

def estimate_request_cost( input_tokens: int, output_tokens: int, input_price_per_1k: float, output_price_per_1k: float, retry_rate: float = 0.1 ) -> float: """ 估算单次请求的期望成本。 参数价格都是“每 1000 token 的价格”。 """ base_cost = ( input_tokens / 1000 * input_price_per_1k + output_tokens / 1000 * output_price_per_1k ) expected_cost = base_cost * (1 + retry_rate) return expected_cost cost = estimate_request_cost( input_tokens=1500, output_tokens=800, input_price_per_1k=0.005, output_price_per_1k=0.015, retry_rate=0.15 ) print(f"单次请求期望成本:${cost:.6f}")

输出:

单次请求期望成本:$0.014550

这个脚本可以嵌入 CI/CD 或者成本评估流程,在功能上线前自动计算新增场景的成本区间。

6.2 事中监控:设置用量与费用告警

用量暴涨后,最怕的是没有任何监控,等月底账单出来才发现已经超支。建议至少建立两个层级的监控:

第一层是实时用量监控:监控每分钟 RPM、TPM、错误率、缓存命中率。第二层是费用趋势监控:按小时汇总 token 消耗,估算当日费用,与预算阈值对比。

下面是一个简单的费用趋势统计思路:

import time import random from collections import deque class CostMonitor: def __init__(self, hourly_budget: float): self.hourly_budget = hourly_budget self.events = deque() def record_request(self, input_tokens: int, output_tokens: int, input_price: float, output_price: float): cost = ( input_tokens / 1000 * input_price + output_tokens / 1000 * output_price ) self.events.append((time.time(), cost)) def current_hour_cost(self) -> float: now = time.time() one_hour_ago = now - 3600 while self.events and self.events[0][0] < one_hour_ago: self.events.popleft() return sum(event[1] for event in self.events) def alert_if_overflow(self): cost = self.current_hour_cost() if cost > self.hourly_budget: print(f"[ALERT] 当前小时费用 ${cost:.2f} 超过预算 ${self.hourly_budget:.2f}") else: print(f"[INFO] 当前小时费用 ${cost:.2f}") monitor = CostMonitor(hourly_budget=5.0) for _ in range(100): monitor.record_request( input_tokens=random.randint(800, 2000), output_tokens=random.randint(300, 1200), input_price=0.005, output_price=0.015 ) monitor.alert_if_overflow()

这段代码的核心思路是:用一个队列记录请求费用,统计过去一小时的窗口总和,超过预算就告警。生产环境可以把这个逻辑接入 Prometheus + Alertmanager 或云监控服务。

6.3 事后复盘:ROI 计算

成本除了是“花费”,还应该被看作“投资”。每个月做一次 ROI 复盘,对比引入 GPT 前后的业务指标变化:

  • AI 功能带来的新增付费用户数;
  • 人工客服转接率下降比例;
  • 内容生产效率提升的百分比;
  • 单个用户平均消耗 token 与用户留存时长的关系。

如果 AI 功能带来了明显的业务收益,那么即使 token 消耗增长了 13.8 倍,整个项目仍然是划算的。反之,如果增长只是让用户滥用或“为了用而用”,就需要在产品策略上做收敛。

7. 重要提醒与风险边界

7.1 用量暴涨不一定等于价值暴涨

杰文斯悖论解释了用量增长,但没有保证增长的质量。降价后大量低质量调用会涌入系统,例如无意义的空转、循环测试、爬虫式批量请求。这些调用消耗真实成本,却不一定带来真实价值。

建议在应用层增加请求审计机制,记录每个请求的来源、目的和结果。对于异常高频的调用模式,及时封禁或限流。

7.2 避免“为了消耗而消耗”

在一些团队中,因为“API 便宜了”,开发者在批量任务中不再关心 prompt 质量,结果就是:模型生成的输出大量被丢弃,有效产出比例下降。这不是技术问题,而是流程管理问题。

我比较推荐的做法是先在离线环境用小样本跑通任务,确认输出质量满足要求后,再全量上线。宁可多花一点时间设计 prompt,也不要浪费整批 token 跑出无效结果。

7.3 数据安全与最小权限原则

凡是涉及企业数据、用户隐私或生产环境的 GPT API 调用,必须遵守最小权限原则:

  • 只发送完成任务所必需的数据,不要整库倒给模型;
  • 在请求链路中增加脱敏环节,手机号、身份证、密钥等信息先打码;
  • 对 API Key 进行权限隔离,不同环境使用不同 Key;
  • 开启审计日志,确保数据流可追溯;
  • 涉及生产环境变更或批量数据处理前,先在小范围验证,并保留回滚方案。

不要因为模型能力强大,就把所有内部数据无差别地送入外部 API。合法合规、保护用户隐私永远是第一优先级。

8. 成本曲线比版本号更重要

观察 GPT 5.6 降价带来的 13.8 倍用量增长,最有价值的信息不是“又多了一个便宜模型”,而是“大模型应用的规模化拐点又往前挪了一步”。

对于开发者来说,值得记住的几点经验是:

第一,价格弹性真实存在于大模型市场。降价会带来远超直觉的用量增长,做成本预算时不要简单用线性外推。第二,成本控制的关键不是压缩 prompt,而是优化需求结构。把高价值场景做好,把低价值调用挡在门外,比省每个 token 的单价更有效。第三,监控、限流、缓存这些工程能力,在用量增长后比模型选型更影响系统稳定性。

最后想多说一句:如果你所在的团队正在做 GPT API 集成,建议马上做两件事。一是把现有的成本模型按降价后的单价重算一遍,看哪些原本“划不来”的场景现在可以启动;二是给你的用量监控加一个“费用超预算”告警,因为当用量开始爆发式增长时,发现得太晚往往意味着账单已经难以控制。等真正跑过一轮高用量周期后,你才会对“降价的本质是提高渗透率”这句话有更深的体感。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 5:22:52

BMAD-METHOD源码解析:双变量MAD异常检测与工程实现

简介&#xff1a;AI驱动开发浪潮下&#xff0c;针对Vibe Coding带来的质量失控与维护难题&#xff0c;这套围绕BMAD框架的源码与配套文档合集&#xff0c;适合希望系统掌握AI驱动敏捷开发的中高级开发者。内容从基础安装配置到核心架构思想&#xff0c;再延伸到自定义Agent团队…

作者头像 李华
网站建设 2026/9/1 5:21:05

用算法思维重写幸福:纳瓦尔的不执念法则与人生优化

手里管着多个项目、脑子里同时装着十几条待办、遇到不顺就想把所有环节都抓在自己手里——这种状态我持续了很长一段时间。表面是高效&#xff0c;实际是过载。直到我认真读纳瓦尔关于幸福和财富的观点&#xff0c;才逐渐意识到&#xff0c;真正让人喘不过气的不是事情多&#…

作者头像 李华
网站建设 2026/9/1 5:20:18

招商银行信用卡中心数据方向笔试复盘:SQL、算法与金融场景全解析

春招笔试向来是银行IT岗筛人最狠的一道门槛&#xff0c;尤其是想进招商银行信用卡中心数据方向的同学。2018年春招那批笔试&#xff0c;我算是第一批吃螃蟹的人&#xff0c;考完之后最大的感受是&#xff1a;网上能找到的经验帖太少&#xff0c;很多人连考什么、怎么准备都摸不…

作者头像 李华
网站建设 2026/9/1 5:20:07

进销存源码怎么选?从库存流水到二次开发避坑指南

简介&#xff1a;一份基于VS2010与Microsoft SQL Server开发的弘晶进销存系统完整源码&#xff0c;面向需学习商业管理软件架构的开发者、.NET方向学生及中小企业信息化实施人员。系统覆盖采购、销售、库存、应收应付四大核心模块&#xff0c;清晰呈现供应商与客户档案、采购订…

作者头像 李华
网站建设 2026/9/1 5:20:01

MATLAB实现粗糙表面分形接触刚度计算与仿真

简介&#xff1a;针对粗糙表面分形接触刚度数值求解需求&#xff0c;这套基于MATLAB的代码包提供了从模型构建到结果输出的完整实现。两个核心脚本分别负责分形接触模型搭建与具体计算&#xff0c;支持输入分形维数D、尺度系数G等典型参数&#xff0c;输出法向接触刚度随法向载…

作者头像 李华