Help me solving to find the minimum of E2,E10,E20,E50 using optimization tool box

1 view (last 30 days)
I'm a programmer but new to matlab. I didn't understand how to solve the below equation to find minimum values for E2,E10,E20,E50. someone please help me
the code is below
Values for
T_2(length(x)) = 631.7593
T_10(length(x)) = 653.8950
T_20(length(x)) = 679.6452
T_50(length(x)) = 653.8950
syms E2 E10 E20 E50 T1 T
i2 = exp(-E2/(8.314*T));
i10 = exp(-E10/(8.314*T));
i20 = exp(-E20/(8.314*T));
i50 = exp(-E50/(8.314*T));
% ezsurf(1i);
% z = int(1i);
% ezsurf(z);
z2 = int(i2,0,T_2(length(x)));
z10 = int(i10,0,T_10(length(x)));
z20 = int(i20,0,T_20(length(x)));
z50 = int(i50,0,T_50(length(x)));
I2 = inline('z2','E1','T1');
I10 = inline('z10','E1','T1');
I20 = inline('z20','E1','T1');
I50 = inline('z50','E1','T1');
P = @(E2,E10,E20,E50)(z2*10/z10*2)+(z10*20/z20*10)+(z20*50/z50*20)+(z50*2/z2*50)-6
  2 Comments
Walter Roberson
Walter Roberson on 2 Jun 2015
The function has a theoretic minimum in a few different configurations, variations of: Let E2, E20, E50 be arbitrary non-negative and not infinite. Then the limit of the expression as E10 goes to -infinity is -infinity. I do not understand the theoretic reasons for this, but has to do with limit(Ei(1,x)) being -infinity as x approaches -infinity even though at every finite negative x it appears to have an imaginary component of -Pi*i

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 2 Jun 2015
Your i2, i10, i20, i50, are each simple decaying exponentials with respect to their respective E* variables. You take each and integrate with respect to a different variable. Now consider how the result must slope with respect to their E* variables, in order to decide what general shape each z* curve is: the derivative of exp(-E*c) is going to be -c*exp(-E*c) . Since the constants you are using are postive and exp(-E*c) is positive, -positive*positive gives -positive so you have a purely negative slope. And that implies that the maximum must be at the left side and the minimum is at the right. If you look at any one of the integrals, such as z2, you will find that the integral goes complex when the E* goes negative. This gives us a situation where each z* has its maximum at E = 0 and decays to 0 as E-> infinity.
We have now established that each z* is a nonnegative number (with a minimum value.) Let us now put aside the actual values of the z and look at p just as a function of nonnegative values. We can minimize p over nonnegative z* values, and then later we can go back and solve to find the E* value that leads to those z* values.
One way to proceed to at least get one minima is to take differentiate p with respect to z2, solve the result=0 for z2 (minima and maxima have 0 derivative), substitute that back in to p, differentiate with respect to z10, solve for 0, and so on, until you get to z50. You might get multiple roots at some points: if you analyze each of them you will find that only one of the roots is positive.
If your proceed in the order z2, z20, z10, and simplify() the result of back-substituting those into p, you will find that instead of getting out a formula that could be examined for a minima, that you get a constant, 400*sqrt(2)-6. The fact that you get a constant rather than a formula is a result of the fact that your equations are linked, each variable appearing in both numerator and denominator, so there are really only 3 freedoms in finding the minima.
You can then back-substitute the formula building back to p in terms of z50. No matter which value you choose for z50, the minima of p by following this sequence will be 400*sqrt(2)-6.
The forms you arrive at are z2=z50/sqrt(2), z20=z50/sqrt(5), z10=z50/10. Before setting z50, it is time to check boundary conditions. We explored above that the largest positive values occur at E* = 0. Further exploration shows that for each z* that the value at E* = 0, the maximum value for the z* integral, is the value of the associated T -- so for example, the maximum value for z2, at E2=0, is T_2(length(x)) = 631.7593 . All of your T* are fairly similar, so if you choose z50 to be the value of the z50 integral at E50=0, which will be T_50(length(x)) = 653.8950 then all of the other z* values come out less than that value.
This gives us an upper bound for z50, T_50, corresponding to E50=0. All the other z* are smaller and are therefore feasible to recover from the decaying exponential forms. A larger z50 is not achievable without going to a complex E50. The lower bound allowed on z50 is 0, achievable at E50 = infinity, but you don't want a divide by 0 so don't go that far ;-)
Pick any value for z50 in the range 0 to T_50 and you can generate the rest of the coordinates from there.
The obvious question from here becomes: is this a global minimum. I don't know the answer to that.
  2 Comments
Krishna saahi  Yavana
Krishna saahi Yavana on 2 Jun 2015
Thank you :) I'll keep trying on method you proposed and let you know the what results i've achieved.
Walter Roberson
Walter Roberson on 3 Jun 2015
A symbolic package is very useful for this!
A cross check for global minimum would be to take the Jacobian and look at it near the minima described above. If any component of the Jacobian is negative then there is a "down" from that minima. The construction of the minima promises that there will not be a lower value along any one of the axes corresponding to the variables, but a vector in-between is a possibility until ruled out.

Sign in to comment.

Categories

Find more on Mathematics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!