- #1
matts0611
- 7
- 0
Hi, I am working on a project for my research and am need of some advice.
My background is in computer engineering / programming so I'm in need of some help from some math people :)
I need to use steepest descent to solve a problem, a function that needs to be minimized.
The function has 5 variables that each have a constant range, min1 < X1 < max1 etc
I am writing this program in C.
The function that needs to be minimized is complex enough that I do not know how to calculate the partial derivatives by hand.Some questions.
1. As far as I understand steepest descent (or gradient search) works without constraints. However, my variables do have constraints. Is there a way to modify steepest descent that works with constraints?
I have used the MS Excel solver to solve my problem and it solves it pretty fast (less than one second). From what I understand Excel uses something called Generalized Reduced Gradient method. Which from what I understand is based off Steepest Descent but can be used on problems with constraints. I have found some information on this algorithm but it seems so complex. Do i need to use this algorithm or can I get away with using something simpler since the constrains in my problem are simple?
2. If I don't know the partial derivatives of my function is it ok to estimate the derivatives by taking the difference of two points close together? Is there a better way?
3. On steepest descent, from what I understand, you first find the negative gradient vector and then find the step size in that direction. How do you find the best step size? There seems to be so many different methods for this?The more things I read about this stuff on my own the more confused and the more questions I seem to have. I guess I'm just looking for some guidance from someone more knowledgeable than I in this area.
Any help or advice would be greatly appreciated.
My background is in computer engineering / programming so I'm in need of some help from some math people :)
I need to use steepest descent to solve a problem, a function that needs to be minimized.
The function has 5 variables that each have a constant range, min1 < X1 < max1 etc
I am writing this program in C.
The function that needs to be minimized is complex enough that I do not know how to calculate the partial derivatives by hand.Some questions.
1. As far as I understand steepest descent (or gradient search) works without constraints. However, my variables do have constraints. Is there a way to modify steepest descent that works with constraints?
I have used the MS Excel solver to solve my problem and it solves it pretty fast (less than one second). From what I understand Excel uses something called Generalized Reduced Gradient method. Which from what I understand is based off Steepest Descent but can be used on problems with constraints. I have found some information on this algorithm but it seems so complex. Do i need to use this algorithm or can I get away with using something simpler since the constrains in my problem are simple?
2. If I don't know the partial derivatives of my function is it ok to estimate the derivatives by taking the difference of two points close together? Is there a better way?
3. On steepest descent, from what I understand, you first find the negative gradient vector and then find the step size in that direction. How do you find the best step size? There seems to be so many different methods for this?The more things I read about this stuff on my own the more confused and the more questions I seem to have. I guess I'm just looking for some guidance from someone more knowledgeable than I in this area.
Any help or advice would be greatly appreciated.