I could not integrate using MatLab, Can you please help me?
27 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Tika Ram Pokhrel
el 2 de Mayo de 2021
Comentada: Walter Roberson
el 6 de Mayo de 2021
In solving a problem I need to integrate the following function with respect to 't' from the limit 0 to t.
3*2^(1/2)*(1 - cos(4*t))^(1/2)*(a^2 + c^2)^(1/2)
I used the following commands but got the same result as given herewith.
>> syms a c t real
mag_dr = 3*2^(1/2)*(1 - cos(4*t))^(1/2)*(a^2 + c^2)^(1/2)
>> int(mag_dr,t,0,t)
ans =
int(3*2^(1/2)*(1 - cos(4*t))^(1/2)*(a^2 + c^2)^(1/2), t, 0, t)
Let me know the best way(s) to tackle this type of problem.
1 comentario
Respuesta aceptada
Dyuman Joshi
el 5 de Mayo de 2021
Editada: Dyuman Joshi
el 6 de Mayo de 2021
syms t a c
fun = 3*2^(1/2)*(1 - cos(4*t))^(1/2)*(a^2 + c^2)^(1/2);
z = int(fun,t); %gives indefinite integral
%result of integration, z = -(3*sin(4*t)*(a^2 + c^2)^(1/2))/(2*(sin(2*t)^2)^(1/2));
t=0;
res = z - subs(z);
%obtain final result by evaluating the integral, z(t)-z(0), by assigning t & using subs()
1 comentario
Walter Roberson
el 5 de Mayo de 2021
Editada: Walter Roberson
el 5 de Mayo de 2021
Not quite.
syms t a c
fun = 3*2^(1/2)*(1 - cos(4*t))^(1/2)*(a^2 + c^2)^(1/2);
z = int(fun,t); %gives indefinite integral
char(z)
z0 = limit(z, t, 0, 'right');
char(z0)
res = simplify(z - z0);
char(res)
fplot(subs(z, [a,c], [1 2]), [-5 5])
fplot((subs(fun,[a,c], [1 2])), [-5 5])
That is, the problem is that the integral is discontinuous at t = 0 and that is why int() cannot resolve it.
Más respuestas (2)
Walter Roberson
el 5 de Mayo de 2021
syms a c t real
mag_dr = 3*2^(1/2)*(1 - cos(4*t))^(1/2)*(a^2 + c^2)^(1/2)
z = int(mag_dr, t)
z - limit(z, t, 0, 'right')
The integral is discontinuous at 0, which is why it cannot be resolved by MATLAB.
4 comentarios
Dyuman Joshi
el 6 de Mayo de 2021
The wrong substitution was a mistake on my part, mostly cause I did it in a hurry. I have edited my nswer accordingly as well. Other than that, is subs() a good approach or would you recommend otherwise?
Walter Roberson
el 6 de Mayo de 2021
limit() is more robust than subs() for cases like this. But limit() is sometimes quite expensive to calculate, or is beyond MATLAB's ability to calculate, even in some finite cases.
Sindhu Karri
el 5 de Mayo de 2021
Hii
The "int" function cannot solve all integrals since symbolic integration is such a complicated task. It is also possible that no analytic or elementary closed-form solution exists.
For definite integrals, a numeric approximation can be performed by using the "integral" function.
Ver también
Categorías
Más información sobre Conversion Between Symbolic and Numeric en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!