This example shows how a block device containing a partition and a physical volume can be resized.
If you try this out, you may find that attempts to repartition the disk fail because the disk is locked by the LVM devices which exist on it. You have to deactivate (temporarily) the volume groups, perform the fdisk, and then activate them again.
This example script is self-contained. It first creates a block device (a temporary file) containing some LVs, then it extends the temporary file, and shows how to deactivate volgroups, repartition, and activate them again.