my equation has 3 variables but i want to integrate with respect to only one variable ,so that i can optimize the ramaining two from the resulting equation
    6 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    bhanu kiran vandrangi
 am 27 Jul. 2021
  
    
    
    
    
    Kommentiert: bhanu kiran vandrangi
 am 27 Jul. 2021
            my equation(looks big) is as follows , which has three variables (d,e,t) I want to integrate with t from 0 to 2000 (by keeping d,e constant ) so that i can optimize those two using any optimization method . i used int(err,0,2000) command but gettting no result .so how to get past this error?
the eqaution at its basic term is in form 1483/(k-1) , where K=function(d,e,t)
err =
1483/(200*(0.99966444607127868948737159371376*d - 99966.44460712373256683349609375*d*(0.0000000061953699799058132798891540549135*exp(-0.031830333683444479980079178105257*t) + 0.000010273947474151098879779908656928*exp(-9.1132612523704400742108333588476*t) - 0.00000028014284413259036773946597520535*exp(-0.21190841394611541767881157660725*t)) + 15567.003559999167919158935546875*e*(0.0000000061953699799058132798891540549135*exp(-0.031830333683444479980079178105257*t) + 0.000010273947474151098879779908656928*exp(-9.1132612523704400742108333588476*t) - 0.00000028014284413259036773946597520535*exp(-0.21190841394611541767881157660725*t)) + 919819.0186288356781005859375*d*(0.00000019463729288918805472585749072323*exp(-0.031830333683444479980079178105257*t) + 0.0000011273623338164517199144754044937*exp(-9.1132612523704400742108333588476*t) - 0.0000013219996267057210898032693080495*exp(-0.21190841394611541767881157660725*t)) - 143208.7303999960422515869140625*e*(0.00000019463729288918805472585749072323*exp(-0.031830333683444479980079178105257*t) + 0.0000011273623338164517199144754044937*exp(-9.1132612523704400742108333588476*t) - 0.0000013219996267057210898032693080495*exp(-0.21190841394611541767881157660725*t)) - 79516.5081846714019775390625*d*(0.0000061148367096900205219789370403305*exp(-0.031830333683444479980079178105257*t) + 0.00000012370569685174297169805157636802*exp(-9.1132612523704400742108333588476*t) - 0.0000062385424065411129723734973140381*exp(-0.21190841394611541767881157660725*t)) + 6144.9373500002548098564147949219*e*(0.0000061148367096900205219789370403305*exp(-0.031830333683444479980079178105257*t) + 0.00000012370569685174297169805157636802*exp(-9.1132612523704400742108333588476*t) - 0.0000062385424065411129723734973140381*exp(-0.21190841394611541767881157660725*t)) - 1))
0 Kommentare
Akzeptierte Antwort
  Alan Weiss
    
      
 am 27 Jul. 2021
        This seems like a solution. Of course, I don't know what your real bounds are on d and e, so I just guessed.
Notice that I used ./ in the first line of the function myfun. That is because the integral function requires vectorized inputs.
lb = [1/2 1/2];
ub = [3/4 3/4];
[sol,fval,eflag,output] = fmincon(@minfn,[1/2 1/2],[],[],[],[],lb,ub)
function minit = minfn(x)
d = x(1);
e = x(2);
minit = intval(d,e);
end
function r = intval(d,e)
r = integral(@(t)myfun(d,e,t),0,2000);
end
function val = myfun(d,e,t)
val = 1483./(200*(0.99966444607127868948737159371376*d - ...
    99966.44460712373256683349609375*d*(0.0000000061953699799058132798891540549135*exp(-0.031830333683444479980079178105257*t) +...
    0.000010273947474151098879779908656928*exp(-9.1132612523704400742108333588476*t) -...
    0.00000028014284413259036773946597520535*exp(-0.21190841394611541767881157660725*t)) + ...
    15567.003559999167919158935546875*e*(0.0000000061953699799058132798891540549135*exp(-0.031830333683444479980079178105257*t) +...
    0.000010273947474151098879779908656928*exp(-9.1132612523704400742108333588476*t) -...
    0.00000028014284413259036773946597520535*exp(-0.21190841394611541767881157660725*t)) +...
    919819.0186288356781005859375*d*(0.00000019463729288918805472585749072323*exp(-0.031830333683444479980079178105257*t) +...
    0.0000011273623338164517199144754044937*exp(-9.1132612523704400742108333588476*t) -...
    0.0000013219996267057210898032693080495*exp(-0.21190841394611541767881157660725*t)) -...
    143208.7303999960422515869140625*e*(0.00000019463729288918805472585749072323*exp(-0.031830333683444479980079178105257*t) +...
    0.0000011273623338164517199144754044937*exp(-9.1132612523704400742108333588476*t) -...
    0.0000013219996267057210898032693080495*exp(-0.21190841394611541767881157660725*t)) -...
    79516.5081846714019775390625*d*(0.0000061148367096900205219789370403305*exp(-0.031830333683444479980079178105257*t) +...
    0.00000012370569685174297169805157636802*exp(-9.1132612523704400742108333588476*t) -...
    0.0000062385424065411129723734973140381*exp(-0.21190841394611541767881157660725*t)) +...
    6144.9373500002548098564147949219*e*(0.0000061148367096900205219789370403305*exp(-0.031830333683444479980079178105257*t) +...
    0.00000012370569685174297169805157636802*exp(-9.1132612523704400742108333588476*t) -...
    0.0000062385424065411129723734973140381*exp(-0.21190841394611541767881157660725*t)) - 1));
end
Alan Weiss
MATLAB mathematical toolbox documentation
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Particle Swarm finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

