How can i do optimization in matlab?

3 ビュー (過去 30 日間)
Meenu
Meenu 2013 年 2 月 14 日
Hi,
I have an equation given below
y = x- at
'x' and 't' are known value. I also have field value 'z'that is known.
I want to find the value of 'a' in the equation such that error between obtained 'y' and field value 'z' is minimum.
How can i do this in matlab? I am not sure of which optimization technique in matlab can be used.
Thanks, Menaka
  6 件のコメント
José-Luis
José-Luis 2013 年 2 月 14 日
'z' is nowhere to be found in your equation.
Meenu
Meenu 2013 年 2 月 15 日
z is the array of reference values. I want to find y values using x values using the equation. I want an optimal value for 'a' so that RMSE between obtained values y and reference values z should be minimum. z is the reference value. it is not included in the equation.

サインインしてコメントする。

回答 (2 件)

José-Luis
José-Luis 2013 年 2 月 14 日
編集済み: José-Luis 2013 年 2 月 14 日
Are you sure you asked the right question? If so, what you are asking is:
y-x = at; %Find a and t
Since y and x are known, this can be written as
some_value = at;
This has an infinite number of solutions, or none at all if a or t are equal to zero and some_value is not. Just pick whatever value for a and calculate t. Or vice-versa.
If what you mean was a linear regression then:
coeff = polyfit(x,y,1);
  1 件のコメント
Meenu
Meenu 2013 年 2 月 14 日
my question was wrong before friend.I have changed the question.

サインインしてコメントする。


Alan Weiss
Alan Weiss 2013 年 2 月 14 日
Let me try to guess what you are doing. You have a bunch of input data you call x, and a bunch of output data you call z. There is a scalar 'a' and another piece of input data t so that, approximately, for each index i,
z(i) = x(i) - a*t(i)
You want to find the value of 'a' that makes this equation as true as possible, such as minimizing the sum of the squared differences.
If I am correct, write your equation as
a*t = z - x,
where t, z, and x are column vectors. The solution is
a = (z-x)\t
For more information, see the documentation.
Alan Weiss
MATLAB mathematical toolbox documentation
  1 件のコメント
Meenu
Meenu 2013 年 2 月 15 日
the equation should be
y(i) = x(i) - a*i or y(t) = x(t) - a*t
where i= 1,2,3,.....
I have a bunch of input data you call x, and a bunch of reference data z. I want to find y as the output for each x using abouve equation. I need to find optimal value for 'a' such that RMSE between resulting y and z values should be minimum.
I can do this in MS.excel using solver. but I need to implement this in matlab.

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by