操作次序实验 · 仿射变换
同一个输入,走两条路径
把倍率和平移交给两个操作。两条路使用同一对函数,区别只在于谁先作用。
本课约定:右边先做。 AB = A ∘ B 的执行顺序是 B → A;BA 的顺序是 A → B。
AB:先 B,后 A
沿原路撤销
BA:先 A,后 B
沿原路撤销
两种次序什么时候相同?
合成公式直接比较函数本身。两条路的斜率都为 ac,差别只能出现在常数项。
AB − BA = (ad + b) − (cb + d)
= (a − 1)d − (c − 1)b
= (a − 1)d − (c − 1)b
当前输入的输出
整个函数的比较
一般交换条件:(a − 1)d = (c − 1)b。若相等,两种复合对所有实数输入都相同;若不相等,换一个输入也不能消除这个常数差。
对一般函数,在一个输入上输出相同,不能推出函数相同。此处还用了“两条仿射函数斜率已经相同”这个额外事实。页面用有限精度数值计算;极小差值只报告“数值上无法区分”,不把近似相等当作恒等证明。