How to reduce function evaluation in each iteration in fsolve?

조회 수: 1 (최근 30일)
Hello, I have a code which contains non-linear equations. I want to solve it using fsolve and it goes very well. But the problem is that function evaluations in each iteration is so time consuming (115 func-count in each iteration). I want to reduce function evaluations in each iteration. Is there any way or code to do it? Or how can I optimize my codes to lower the execution time. Now the running time using tic-toc is 9.5 seconds. I need it to be lower than 0.5 second. With best regards
  댓글 수: 2
Jan
Jan 2015년 10월 4일
What about posting the code? Perhaps it is possible to accelerate the function evaluations instead of reducing the number of evaluations.
Mohmmad Teymouri
Mohmmad Teymouri 2015년 10월 6일
I am not pretty sure that my codes are easily readable. But in case you send me your email address I will send them to you. I am sure there is a way to reduce the run time.

댓글을 달려면 로그인하십시오.

채택된 답변

Eng. Fredius Magige
Eng. Fredius Magige 2015년 10월 4일
You might use vectorization instead of for if is use
  댓글 수: 1
Mohmmad Teymouri
Mohmmad Teymouri 2015년 10월 6일
The "for" loops I have used in my codes are somehow complicated. I'm not sure how can I replace vectors instead of "for". I know it is possible and may be easy for a professional programmer but I am new in MATLAB and coding, so it takes a long time for me to do it. Although by a little help and guidance I can change my codes.
I have used Globals in my previous codes. I changed them to class data and also changed else if into elseif and I could reduce the run time from 9.5 seconds to about 5.5 seconds. But it is still too much for my work. I need it to be less than 0.5 seconds. I don't know what can I do?!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by