1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
//Reference: S.S. Rao,Engineering Optimization Theory and Practice, 3rd enlarged edition, New age international publishers,2011,chapter 6
// The steady state temperature (t1 and t2) at two points (mid point and the free end) of the one dimensional fin correspond to the minimum of the function.
// f(t1,t2) = 0.6382*t(1)^2 + 0.3191*t(2)^2 - 0.2809*t(1)*t(2) - 67.906*t(1) - 14.29*t(2)
//=====================================================================
// Copyright (C) 2018 - IIT Bombay - FOSSEE
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
// Author: Remya Kommadath
// Organization: FOSSEE, IIT Bombay
// Email: toolbox@scilab.in
//=====================================================================
clc;
// Objective function
function f = ObjectiveFunction(t)
f = 0.6382*t(1)^2 + 0.3191*t(2)^2 - 0.2809*t(1)*t(2) - 67.906*t(1) - 14.29*t(2);
endfunction
// Initial guess
x0 = [100 200];
disp(x0, "Initial guess given to the solver is ")
input("Press enter to proceed: ")
[xopt,fopt,exitflag,output,gradient,hessian] = fminunc(ObjectiveFunction,x0)
// Result representation
clc
select exitflag
case 0
disp("Optimal Solution Found")
disp(xopt', "The steady state temperature at the points are")
disp(fopt, "The optimum objective function value is")
case 1
disp("Maximum Number of Iterations Exceeded. Output may not be optimal.")
disp(xopt', "The temperature at the points are")
disp(fopt, "The objective function value is")
case 2
disp("Maximum CPU Time exceeded. Output may not be optimal.")
disp(xopt', "The temperature at the points are")
disp(fopt, "The objective function value is")
case 3
disp("Stop at Tiny Step.")
disp(xopt', "The temperature at the points are")
disp(fopt, "The objective function value is")
case 4
disp("Solved To Acceptable Level.")
disp(xopt', "The temperature at the points are")
disp(fopt, "The objective function value is")
case 5
disp("Converged to a point of local infeasibility.")
end
disp(output)
|