variable declaration for optimization

hello,
I am writing a code where I need to declare two variables which will be used for optimization in further, i.e,
a,b -----> variable(a=complex, b=real)
x=h1*a^2+h2*b^2+h3;------>h1,h2,h3 are constants
x=objective of optimization problem
what will be the code to declare 'a' and 'b';?

4 Comments

Are you doing Problem Based Optimization?
no,solver based...
You do not define variables for solver based optimization: you define a function that accepts a vector of values.

Sign in to comment.

 Accepted Answer

Only specify them as input of function handle. Normal procedure is something like this
h1 = 2;
h2 = 3;
h3 = 1;
x = @(a, b) h1*a^2+h2*b^2+h3;
objFun = @(p) x(p(1),p(2));
MATLAB optimization functions expect that the function handle only accepts one multi-dimensional input. Therefore, we converted 'x' with two scalar inputs to objFun with a single 2-dimensional input vector. Then use an optimization solver, such as fmincon()
sol = fmincon(objFun, rand(2,1))

10 Comments

Thanks... But what about the complex value of the variable?
What do you mean by the complex value of variable? Is one of the variable complex number?
yes,one veriable is complex number
Can you show your optimization problem?
This is my code-
hr = sqrt ( .5/ 2 ) .* (randn(1)+j*randn(1));
hr = sqrt ( .3/ 2 ) .* (randn(1)+j*randn(1));
n1 = sqrt ( .1/ 2 ) .* (randn(1)+j*randn(1));
constellation = sqrt(1/2)*[1+1i*1 1-1i*1 -1-1i*1 -1+1i*1];
cons_size = size(constellation);
x = constellation(randi([1 4],1,100));
r=@(b) (hr*x+hr1*b+n1); % output ------> b is optimization variable with real value
r1=@(a, b) a*r;------> a is optimization variable with complex value
rr =r1;
rr(1:2:end) = 0; % odd data of the symbol-----> objective
The objective function must return a scalar number for the minimization algorithm to work. Instead of code, can you attach an image showing the mathematical formulation of your problem?
yahh u are right,matlab shows an error like.............. "Supplied objective function must return a scalar value." how I can solve that.
Can you show the mathematical formulation of your objective function. Currently I don't understand how is it defined.
Separate the real part of the complex variables from the imaginary part. Return the norm of the expression.
Thank you both of you.

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!