Additional comments: Your answer seems OK. It may be of interest to know that
$\hat \theta$ is not unbiased. One can get a rough idea of the distribution
of $\hat \theta$ for a particular $\theta$ by simulating many samples of
size $n.$ I don't know of a convenient 'unbiasing' constant multiple.
The Wikipedia article I linked in my Comment above gives more information.
Here is a simulation for $n = 10$ and $\theta = 5.$
th = 5; n = 10
th.mle = -n/replicate(10^6, sum(log(rbeta(n, th, 1))))
mean(th.mle)
## 5.555069 # aprx expectation of th.mle > th = 5.
median(th.mle)
## 5.172145
The histogram below shows the simulated distribution of $\hat \theta.$
The vertical red line is at the mean of that distribution, and the green
curve is its kernel density estimator (KDE). According to the KDE, its mode is near $4.62.$
den.inf = density(th.mle)
den.inf$x[den.inf$y==max(den.inf$y)]
## 4.624876
hist(th.mle, br=50, prob=T, col="skyblue2", main="")
abline(v = mean(th.mle), col="red")
lines(density(th.mle), lwd=2, col="darkgreen")
Addendum on Parametric Bootstrap Confidence Interval for $\theta:$
In order to find a confidence interval (CI) for $\theta$ based on MLE $\hat \theta,$ we would like to know the distribution of $V = \frac{\hat \theta}{\theta}.$ When that distribution is not
readily available, we can use a parametric bootstrap.
If we knew the distribution of $V,$ then we could find numbers $L$ and $U$ such that
$P(L \le V = \hat\theta/\theta \le U) = 0.95$ so that a 95% CI would be of the form
$\left(\frac{\hat \theta}{U},\, \frac{\hat\theta}{L}\right).$ Because we do not know the distribution of $V$ we use a bootstrap procedure to get serviceable approximations $L^*$ and $U^*$ of $L$ and $U.$ respectively.
To begin, suppose we have a random sample of size $n = 50$ from $\mathsf{Beta}(\theta, 1)$
where $\theta$ is unknown and its observed MLE is $\hat \theta = 6.511.$
Entering, the so-called 'bootstrap world'. we take repeated 're-samples` of size $n=50$
from $\mathsf{Beta}(\hat \theta =6.511, 0),$ Then we we find the bootstrap
estimate $\hat \theta^*$ from each re-sample. Temporarily using the observed
MLE $\hat \theta = 6.511$ as a proxy for the unknown $\theta,$ we find a large number $B$ of re-sampled values $V^* = \hat\theta^2/\hat \theta.$ Then we use quantiles .02 and .97 of
these $V^*$'s as $L^*$ and $U^*,$ respectively.
Returning to the 'real world'
the observed MLE $\hat \theta$ returns to its original role as an estimator, and the
95% parametric bootstrap CI is $\left(\frac{\hat\theta}{U^*},\, \frac{\hat\theta}{L^*}\right).$
The R code, in which re-sampled quantities are denoted by .re
instead of $*$, is shown below.
For this run with set.seed(213)
the 95% CI is $(4.94, 8.69).$ Other runs with unspecified
seeds using $B=10,000$ re-samples of size $n = 50$ will give very similar values. [In a real-life application, we would not know whether this CI covers the 'true' value of $\theta.$ However,
I generated the original 50 observations using parameter value $\theta = 6.5,$ so in this demonstration we
do know that the CI covers the true parameter value $\theta.$ We could have used the
probability-symmetric CI with quantiles .025 and .975, but the one shown is a little shorter.]
set.seed(213)
B = 10000; n = 50; th.mle.obs=6.511
v.re = th.mle.obs/replicate(B, -n/sum(log(rbeta(n,th.mle.obs,1))))
L.re = quantile(v.re, .02); U.re = quantile(v.re, .97)
c(th.mle.obs/U.re, th.mle.obs/L.re)
## 98% 3%
## 4.936096 8.691692
Best Answer
You got the correct Objective Function.
As Michael Hardy noted you need to pay attention to the valid domain of $ \theta $ which is $ \theta \in \left[ -1, 1 \right] $.
In order to verify solution I created a small simulation.
The first step is to create a a sampler from the given distribution. The (One) way to do so is using the Inverse Transform Sampling (Nice example is given at Generate a Random Variable from a Given Probability Density Function (PDF)).
In the above case we have:
$$ \int_{-1}^{x} 0.5 \left(1 + \theta s \right) ds = 0.25 \theta {x}^{2} + 0.5 x - 0.25 \theta + 0.5 $$
Setting $ u = 0.25 \theta {x}^{2} + 0.5 x - 0.25 \theta + 0.5 $ yields 2 solutions for $ x $:
$$ {x}_{1, 2} = \mp \frac{\sqrt{ {\theta}^{2} + \theta \left( 4 u - 2 \right) + 1 } \pm 1}{\theta}, \; \theta \neq 0 $$
As can be seen, the above holds for $ \theta \neq 0 $ (As in that case we have uniform model which can be sampled directly).
With simple chack of validty one could see that the valid root is given by:
$$ x = \frac{\sqrt{ {\theta}^{2} + \theta \left( 4 u - 2 \right) + 1 } - 1}{\theta}, \; \theta \neq 0 $$
So, all needed is to generate random samples from $ u \sim U \left[ 0, 1 \right] $ and apply the transformation on them to get $ x \sim f \left( x ; \theta \right) = 0.5 \left( 1 + \theta x \right) $.
One this is done it is easy to check and verify the optimization problem (In this example using $ \theta = 0.3 $):
The code is available at my StackExchange Mathematics Q2821115 GitHub Repository.
Remark
As @Did noted the simulation fails for $ \theta = \pm 1 $.
The reason is I use MATLAB
fzero()
which assumes the function is unconstrained. There 2 solutions to this: Use a grid search which works or maximize the Log Likelihood Function (By minimizing its negation) usingfminbnd()
which supports boundaries for the solution.