Mathematica problem involving integral

AI Thread Summary
The discussion focuses on plotting the heat capacity of solids using Debye theory in Mathematica. The formula for heat capacity is provided, and the user seeks advice on how to plot C_v/3Nk as a function of T/θ from 0.001 to 1.4. The suggestion is made to create a function for the integration rather than using a table, emphasizing the importance of using delayed evaluation in NIntegrate to avoid errors related to variable limits. The conversation also touches on Mathematica's learning curve and its potential cloud services, which could alleviate processing time issues compared to traditional programming languages like Fortran. The consensus is that Mathematica simplifies complex calculations for physicists, making it a valuable tool once users become familiar with its functionalities.
issacnewton
Messages
1,035
Reaction score
37
Hi

We know that in Debye theory,

C_v=9kN\left(\frac{T}{\theta}\right)^3 \int_0^{\theta/T} \frac{x^4 e^x}{(e^x-1)^2}\;dx

is the heat capacity of the solid. I want to plot C_v/3Nk as a function of T/ \theta from 0.001 to 1.4 using mathematica. The hint says to use NIntegrate. Now should I first create a vector of values of T/ \theta from 0.001 to 1.4 using "Table" ? Then maybe I can feed this vector to NIntegrate which could be placed inside another "Table"
statement.

any help ?
 
Technology news on Phys.org
No need for a table. Just create a function that does what you want and plot it, like the attached notebook.
 

Attachments

thanks, I tried to do something like that, but since the upper limit of the integration is
a variable itself, NIntegrate tried to give warning and didn't seem to give correct answer
 
Post what you did and we can probably figure out why.
Note that if you ask for immediate evaluation (=), and the limit of NIntegrate is a variable, then it can't evaluate and will give you an error. That's why I asked for delayed evaluation(:=), so it doesn't try to evaluate NIntegrate until after it has been supplied with a numeric limit. In this case, it doesn't even try to evaluate NIntegrate until it is making the plot and Plot has supplied it with a number to integrate up to.
 
You nailed it... that was the problem... mathematica is very easy once we become familiar with it...

I read on their website that they are coming up with cloud services... In that case, people don't have to worry about the slower processing time of mathematica as compared to say, Fortran...since cloud servers are very powerful...
 
Yes, Mathematica definitely has a learning curve, but it is very powerful once you become familiar with it.
 
do you think it will be possible send mathematica notebooks to cloud computers for evaluation since ordinary computers don't have memory sometimes. mathematica simplifies the work of a physicist to a great extent. if you are programming in say fortran, then lot of time is spent in thinking about the programming issues.
 
Back
Top