## Problem Description and Formulation

The problem is a linear programming optimization problem. We have $50,000 available to invest in two industries: solar energy and wind energy. The goal is to maximize the return on investment (ROI) given certain constraints.

Let's denote:
- $x_s$ as the amount invested in the solar energy industry,
- $x_w$ as the amount invested in the wind energy industry.

The objective function to maximize the total return is:
\[ \text{Maximize:} \quad 0.06x_s + 0.05x_w \]

Subject to the following constraints:
1. **Budget Constraint:** The total investment cannot exceed $50,000.
\[ x_s + x_w \leq 50000 \]
2. **Wind Energy Constraint:** At least 70% of the investment must be in the wind energy industry.
\[ x_w \geq 0.70 \times 50000 \]
3. **Solar Energy Constraint:** At most 20% of the investment can be in the solar energy industry.
\[ x_s \leq 0.20 \times 50000 \]
4. **Non-Negativity Constraints:** Investments cannot be negative.
\[ x_s \geq 0, \quad x_w \geq 0 \]

However, given that $x_w \geq 0.70 \times 50000$ and $x_s \leq 0.20 \times 50000$, and $x_s + x_w \leq 50000$, the budget constraint will be implicitly satisfied because the minimum $x_w$ can be is $0.70 \times 50000 = 35000$ and the maximum $x_s$ can be is $0.20 \times 50000 = 10000$, which sums up to $45000$. Thus, the budget constraint, while important, does not limit the solution further than the percentage constraints.

## Gurobi Code

```python
import gurobi

def solve_investment_problem():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    x_s = model.addVar(lb=0, name="Solar_Investment")  # Investment in solar energy
    x_w = model.addVar(lb=0, name="Wind_Investment")  # Investment in wind energy

    # Objective function: Maximize return
    model.setObjective(0.06 * x_s + 0.05 * x_w, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(x_s + x_w <= 50000, name="Budget_Constraint")
    model.addConstr(x_w >= 0.70 * 50000, name="Wind_Constraint")
    model.addConstr(x_s <= 0.20 * 50000, name="Solar_Constraint")

    # Optimize model
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal investment in solar energy: ${x_s.varValue}")
        print(f"Optimal investment in wind energy: ${x_w.varValue}")
        print(f"Maximal return: ${0.06 * x_s.varValue + 0.05 * x_w.varValue}")
    else:
        print("No optimal solution found.")

solve_investment_problem()
```