How to evaluate an integral?
Infos
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Afficher commentaires plus anciens
Hello,
I would like to evaluate the following function which includes an integral. The aim is to get sth. like that: Var_beta_hat_direct = a kind of number. But I only get a symbolic expression and not a number.
Does anybody have an idea?
syms t
Var_beta_hat_direct=vpa(10681743549394799937933824491520*exp(int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944)^(4831891999187463/1125899906842624))*exp(8187485477687969/1715238139330560)*((140737488355328*exp(-int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944)^(4831891999187463/1125899906842624))*exp(-8187485477687969/1715238139330560)*int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944)^(3705992092344839/1125899906842624))/8301382342175545 + (690270285598209*log(int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944))*exp(-int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944)^(4831891999187463/1125899906842624))*exp(-8187485477687969/1715238139330560)*int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944)^(3705992092344839/1125899906842624))/9487294105343480 - (690270285598209*log(int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944))*exp(-int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944)^(4831891999187463/1125899906842624))*exp(-8187485477687969/1715238139330560)*int((140737488355328*exp(-8187485477687969/(4398046511104*(20*heaviside(t - 2000) + 40*heaviside(t - 3000) - 390*heaviside(t - 14000) + 330*heaviside(t)))))/8301382342175545, t, 0, 1671787363946201/274877906944)^(4268942045766151/562949953421312))/9487294105343480))
Réponses (1)
Walter Roberson
le 30 Jan 2016
0 votes
All of those int() expressions are exactly the same. Pull that out of the expression and evaluate it and drop the result into the larger expression.
The result is about -2.546320960311438*10^28 by the way.
8 commentaires
Max
le 30 Jan 2016
Modifié(e) : Walter Roberson
le 30 Jan 2016
Walter Roberson
le 30 Jan 2016
What result do you get for that?
The Maple based symbolic toolbox that I am using gives 0.6449536423
By the way, since you are looking for a numeric value, you should use double() instead of vpa()
Max
le 30 Jan 2016
Walter Roberson
le 30 Jan 2016
What is the result you get with vpa() ?
Max
le 30 Jan 2016
Walter Roberson
le 30 Jan 2016
Odd, I cannot see any reason at the moment why a numeric integration of that might fail.
Which MATLAB version are you using? If you are using R2015a or later I suggest you experiment with using sympref to give a definite numeric value to heaviside(0)
Max
le 30 Jan 2016
Max
le 30 Jan 2016
Cette question est clôturée.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!