petrivka

45 Reputation

4 Badges

15 years, 258 days

MaplePrimes Activity


These are replies submitted by petrivka

Alright, so I went ahead and uploaded the worksheet and the data (in an Excel file) required to run it. I certainly wouldn't be opposed to modifications of the code to speed evaluation, but I don't know if there is much that can be done, as the function is fairly complicated.

I wasn't expecting an optimum after 10 evaluations; I just wanted to see if the the optimization routine would even work. As I alluded earlier, I had tried computing numerical derivatives in order to use the sqp method, but computation time was becoming ridiculous. If there were a way to reduce this computation time, I would much prefer this method, as I'd like to put bounds on my variables.

I admittedly don't know how the nonlinearsimplex method works, but I didn't know that it would fail out if I had too low an evaluation limit. I bumped up the evaluation limit to 30, just to see the effect: 4500 seconds later, a "better" point was determined after 30 evaluations. I don't know what's going on under the hood, but this is a great deal more computation time than simply evaluating the procedure 30 times (~900s).

As for parallelization, I have never attempted such a thing in Maple, so I don't know how it can be done.

Again, I appreciate your help.

F2proc.mw

F2procdata.xls

Alright, so I went ahead and uploaded the worksheet and the data (in an Excel file) required to run it. I certainly wouldn't be opposed to modifications of the code to speed evaluation, but I don't know if there is much that can be done, as the function is fairly complicated.

I wasn't expecting an optimum after 10 evaluations; I just wanted to see if the the optimization routine would even work. As I alluded earlier, I had tried computing numerical derivatives in order to use the sqp method, but computation time was becoming ridiculous. If there were a way to reduce this computation time, I would much prefer this method, as I'd like to put bounds on my variables.

I admittedly don't know how the nonlinearsimplex method works, but I didn't know that it would fail out if I had too low an evaluation limit. I bumped up the evaluation limit to 30, just to see the effect: 4500 seconds later, a "better" point was determined after 30 evaluations. I don't know what's going on under the hood, but this is a great deal more computation time than simply evaluating the procedure 30 times (~900s).

As for parallelization, I have never attempted such a thing in Maple, so I don't know how it can be done.

Again, I appreciate your help.

F2proc.mw

F2procdata.xls

@acer : I honestly don't understand very well how this fdiff function is working. I can evaluate the procedure EIG itself without any trouble at the initial point I provided, as well as at points close to it. Objf works just fine as well. It's the objfgradient, where the fdiff is contained, that I'm losing track of what's happening.

EIG will not return a float value unless all 7 input variables are provided. Is that what's giving fdiff such a hard time?

I've tried the DirectSearch package, but it doesn't seem to do as well at minimizing my function as Optimization, at least for my problem.

@acer : I honestly don't understand very well how this fdiff function is working. I can evaluate the procedure EIG itself without any trouble at the initial point I provided, as well as at points close to it. Objf works just fine as well. It's the objfgradient, where the fdiff is contained, that I'm losing track of what's happening.

EIG will not return a float value unless all 7 input variables are provided. Is that what's giving fdiff such a hard time?

I've tried the DirectSearch package, but it doesn't seem to do as well at minimizing my function as Optimization, at least for my problem.

@pagan: I was using this workaround because I did want to constrain my variables. I don't have the constraints implemented yet because I was just trying to get the basics to work. I have been able to get my procedure to optimize using nonlinearsimplex earlier; I wanted to try this approach for comparison.

@acer: Sorry, I may have created some confusion by pasting the output from a slightly different program I was working on. EIG and EIGEXP are the same procedure. As far as the details of the procedure EIG/EIGEXP, the variables are used to calculate a temperature field in x,y,z, and t, which I then compare to a dataset. The procedure outputs the square of the residuals that result, a float value, which I am trying to minimize. I didn't want to include the whole code because it requires external data to run. Does that help, or would you need more details?

Thank you again for your assistance!

Page 1 of 1