This doesn't sound right.
AFAIK a public-key encryption algorithm relies on two keys: a private key and a public key.
Bitcoin uses an eliptic curve digital signature algorithm (ECDSA), not encryption, to protect the bitcoins.
Messages encoded using the private key can be decoded using the public key, and vice versa.
Signatures created with the private key can be verified with the public key. Signatures are not created with the public key.
Therefore, PKE can be used for authentication because one can prove one owns the private key matching a certain public key without disclosing the private key itself.
Correct. The signature is provided. The signature is verified with the public key (which is disclosed).
If a private key corresponding to a public key can be generated arbitrarily, then this allows impersonation.
Correct. It is not possible to generate a private key corresponding to a public key.
It is, however, possible to generate a public key corresponding to a private key (which is what the OP asked, and what I already explained).
ECDSA is a digital signature algorithm.
The public key is provided to EVERYBODY. It is PUBLIC.
The signature is created with the private key, and verified with the public key.
Therefore, impersonation is not possible unless you have the private key to create the signature (which is why it is very important to protect the private key).
There is a mathematical relationship between the private key and the public key.
It is relatively fast and easy for a computer to generate the public key if you have the private key. This means the owner of the private key doesn't need to keep a copy of the public key, they can regenerate it anytime they want as long as they have a copy of the private key.
There is currently no known way to calculate a private key if you have the public key. This means the owner of the private key can give out the public key without any concern about anyone figuring out what the private key is.