若函数 f(x)=ax2−2x−|x2−ax+1| 有且仅有两个零点,则 a 的取值范围为_______.
答案 (−∞,0)∪(0,1)∪(1,+∞).
解析 根据题意,有函数f(x)=min{ax2−2x−(x2−ax+1),ax2−2x+(x2−ax+1)}=min{(a−1)x2+(a−2)x−1,(a+1)x2−(a+2)x+1}=min{((a−1)x−1)(x+1),((a+1)x−1)(x−1),
容易验证当 a=−1,1 的情形,此时 a=1 不符合题意,a=−1 符合题意.
当 a∉{−1,1} 时,记 x1=1a−1,x2=−1,x3=1a+1,x4=1,有f(x1)=min{0,−2(a−2)(a−1)2},f(x2)=min{0,2(a+2)},f(x3)=min{−2(a+2)a+1,0},f(x4)=min{2(a−2),0},
因此 x1,x4 中恰有一个为函数 f(x) 的零点,设为 α,(a=2 时,x1=x4);x2,x3 中恰有一个为函数 f(x) 的零点,设为 β(a=−2 时,x2=x3);而 α=β 等价于 a=0,因此 a≠0.当 α≠β 时,函数 f(x) 恰有 2 个零点,符合题意.
综上所述,a 的取值范围是 (−∞,0)∪(0,1)∪(1,+∞).
请问这题有更加一般的做法吗(比如把-2x改为-x