# 为同一个线性问题替换 QODE 方法
English · **简体中文**
本例考虑 `u'=-u`。我们用 `-I` 的 BE 表示生成元,用一个 X 门制备初态,再分别选择 [LCHS](../manual/algorithms/lchs.md) 和 [Schrödingerization](../manual/algorithms/schrodingerization.md)。生成元写成 {obj}`scale ` 缩放 {obj}`identity `,问题连同初态一起装进 {obj}`QODEProblem `。
```{testcode}
from oracq import Bits, Builder, QODEProblem, identity, scale
from oracq.algorithms.qode.ode import linear_qode
from oracq.algorithms.common.hamiltonian import taylor_hamiltonian
from functools import partial
b = Builder("initial_one", {"q": Bits(1)})
b.x(b["q"])
problem = QODEProblem(scale(-1, identity(1)), b.finish(),
dissipative=True, initial_norm=1.0)
kernel = partial(taylor_hamiltonian, degree=1)
lchs = linear_qode("lchs", hamiltonian_function=kernel)
schrodinger = linear_qode("schrodingerization", hamiltonian_function=kernel)
assert lchs.check(problem, time=0.05).ok
assert schrodinger.check(problem, time=0.05).ok
first = lchs.solve(problem, 0.05)
second = schrodinger.solve(problem, 0.05)
print(first.width, second.width)
print(len(first.operation.program().modules), len(second.operation.program().modules))
assert first.width == second.width == 1
```
```{testoutput}
1 1
31 28
```
两个入口都由 {obj}`linear_qode ` 按方法名生成,共用 {obj}`taylor_hamiltonian ` 充当近似模拟核。打印结果显示:两个生成器给出同样的 target 宽度 `1`,但内部模块数不同(LCHS 为 31,Schrödingerization 为 28),对应不同的辅助寄存器、近似方式和恢复条件。这个例子检查的是组装接口;有限一阶 Taylor 并不代表已经得到任意精度的微分方程解。
`dissipative=True` 是问题声明。LCHS 的问题级入口要求它明确存在;Schrödingerization 使用其他数学条件,尤其需要选择合适的辅助窗口和恢复通道。
## 从 PDE 开始
线性 PDE 先经过空间离散化,形成 {obj}`DiscretePDE(generator, initial) `,再交给 {obj}`make_qpde(qode) `。非线性多项式 PDE 可以形成 {obj}`PolynomialODE `,由 [Carleman](../manual/algorithms/carleman.md) 生成提升系统,再调用同一三参数线性求解协议。
完整的热方程、Burgers 方程与多种 given-oracle 示例位于:
```bash
uv run python examples/ode_input_models.py
```
## 相关页面
- 手册:[微分方程完整文档](../manual/differential-equations.md)(各方法的符号、尺度和适用前提)
- 算法页:[QODE 问题对象与协议](../manual/algorithms/qode-problem.md)、[LCHS](../manual/algorithms/lchs.md)、[Schrödingerization](../manual/algorithms/schrodingerization.md)、[Carleman 线性化](../manual/algorithms/carleman.md)
- API 参考:[QODE 组装接口](../api/algorithms/qode/ode.rst)、[PDE 模型与适配](../api/algorithms/qpde/pde.rst)、[Carleman 线性化](../api/algorithms/qnlss/carleman.rst)
- 继续教程:[科学计算工作流](scientific-workflows.md)(从开放系数、分批绑定到不同数据路径的完整讲解)