Solution with Geometry Nodes
You'll find the blend file at the very end.

The only way I see how to do this is with geometry nodes, just as Gordon Brinkmann's answer. If you're new to Blender, this is probably not the best moment to dive into this. This is sort of visual programming, powerful but hard to grasp at first.
So here is a solution with geometry nodes. I've tried to make it as user-friendly as possible. You probably don't have to go into the nodes, you can simply use the modifier from the modifier tab. Here are the parameters you can tweak :

- Resolution : this is the number of points for one curve. It should be high so that it looks and behave continuous, not discrete.
- X Position : the x-value you want to input to the curve/functions
- Curve 1 : select which curve to use as curve 1
- Curve 2 : select which curve to use as curve 2
- Object 1 : select with curve to use as point for curve 1
- Object 2 : select with curve to use as point for curve 2
Warnings
The modifier checks if the curves are functions in the mathematical sense : one x-value should only have one y-value. These warnings don't do anything besides warning you in the modifier tab. You can delete all the red-coded nodes inside the node tree if you don't want it.
In the nodes, I'm using the sign of the x-position of adjacent points. They either go from left to right or from right to left. If a point has the opposite sign, then it means the curve goes back on its steps and thus isn't a mathematical function.
Process
I'll explain briefly how it works, feel free to ask for precisions in comments. In summary we can flatten the curves on the x-axis, find a closest point and de-flatten the curve.

This is the tree for 1 curve and point. It is exactly the same for the other curve and point. First we set the resolution of the curve with the input the user has set. We need both to increase the resolution (number of points between the control points of the curve) and then resample it. This mean the curve goes from having just a few control points to having as many control points as the chosen resolution.
Note : Bézier curve should be easy to compute for the hardware, you could increase the resolution much more than 1024. Rule of thumb, if the curve covers an entire 1920x1080 render, you could set the resolution to 2x the width so around 4000. You'll have 2 points per pixels, probably enough even for fast-rising functions.
Then we can store for each point of the curve, what y-value it has, with an attribute. You can think of it as a variable, each point has a yPosition value we'll use later. Then, we set the y-scale to 0 to flatten the curve on the x-axis.
Then we can find the index of the closest point to the x-value the user has set. For that we need to temporarily convert the curve to a mesh and sample it.
We can now de-flatten the curve. We use the yPosition attribute to move the points back to their original y position.
At last, we retrieve the position of the curve at the corresponding x value (we use the index we found before with Sample Closest). We spawn the object 1 at this location.
Additionnal notes
I've put the 2 curves and 2 objects in separate collections, and hide these collections. So the result you see is only one object containing 2 curves and 2 objects.
There is a 3rd curve that isn't a function, if you want to test the warnings.
The initial geometry of the object isn't use at all. The modifier overrides totally the initial geometry.
Blend file
