Matlab Optimization problem, minimize a function

Hello, So I have a simple optimization problem that consists of finding a value for a variable that minimizes the difference between two other variables. For example, First input element; An Arbitrary value of X=10. Q=100; B=X*Q; C=50; The objective is to find the value of X that minimizes the difference between (X*Q) & C; f(X)=(X*Q)-C; Is there a function that will give this output or do I need to run a loop that keeps solving for X until it finds a value that minimizes the function f(X)? Thank you so much.

Answers (1)

X = C/Q

3 Comments

Good morning, thanks for your reply. Could it be that simple? or perhaps I did not explain correctly? So the objective is to find the value of X that minimizes the difference (X*Q)-C. Example: suppose a price P=$10.00, and Quantity Q=10, The total budget is computed B=P*Q (10*100=1000), and we have C=450, I need to find a value P* that minimizes the difference [(P*Q)-C]; with one constraint P*>0 ( price must be positive). Thank you so much
You did not say before that you needed a positive value of P. In that case, use lsqnonneg:
P = lsqnonneg(Q,C)
Alan Weiss
MATLAB mathematical toolbox documentation
My pleasure.
I believe it definitely could be that simple:
P = 10; % Price = $10
Q = 10; % Quantity = 10
Budget = P*Q; % Total Budget
C = 450; % C = ???
fcn = @(Pstar) norm(Pstar*Q - C); % Objective Function
Pstar1 = fminsearch(fcn, 1) % Determine ‘P*’
Pstar2 = C/Q % Determine ‘P*’
Pstar1 =
45
Pstar2 =
45

Sign in to comment.

Asked:

on 23 Sep 2016

Commented:

on 23 Sep 2016

Community Treasure Hunt

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

Start Hunting!