MATLAB Plotting a potential function in MATLAB

AI Thread Summary
The discussion centers on plotting a specific potential function in MATLAB, defined as V(φ1, φ2) = m²(φ1² + φ2²) + λ(φ1² + φ2²)², where φ1, φ2, m², and λ are real numbers with λ > 0. The original poster, Max, seeks assistance due to limited MATLAB experience, particularly noting that different values of m² yield distinct plots. A user named Yuu suggests using the surf() function for 3D surface plotting and provides a link to MATLAB documentation. Max initially encounters an error related to matrix operations but resolves it by using the meshgrid function to correctly define φ1 and φ2. The final working code successfully plots the function using surf().
maxtor101
Messages
22
Reaction score
0
Hi all,

I would like to be able to plot this function in MATLAB\mathcal{V} (\phi_{1}, \phi_{2}) = m^2(\phi_{1}^2 + \phi_{2}^2) + \lambda( \phi_{1}^2 + \phi_{2}^2)^2Where \phi_{1,2} , m^2 , \lambda \in \mathbb{R} and \lambda > 0I am aware that the cases m^2 > 0 and m^2 < 0 yield two different plots.

I encountered this while doing some reading on QFT, this potential was used in a Lagrangian density while trying to demonstrate spontaneous U(1) symmetry breaking.

I would really like to be able to plot this in MATLAB but unfortunately I have minimal previous experience with it.

Would anybody here be able to help me please?

Thanks
Max
 
Physics news on Phys.org
Hello Maxtor,

I believe the surf() function in MATLAB to be suited for your purposes.

After defining \phi_1, \phi_2, V in MATLAB you would use it in this way:
surf(phi_1, phi_2, V). Information and examples are available here:

http://www.mathworks.de/de/help/matlab/ref/surf.html

All the best,
Yuu
 
Last edited by a moderator:
Thank you for your reply!

phi1 = [-20:0.5:20];
phi2 = [-20:0.5:20];
lam = 1;
m = 1;

V = (m^2)*(phi1.^2 + phi2^2) + lam*(phi1.^2 + phi2.^2).^2 ;


surf(phi1, phi2, V)



I tried this but I get the following error:

Error using ^
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

Error in p1a (line 6)
V = (m^2)*(phi1.^2 + phi2^2) + lam*(phi1.^2 + phi2.^2).^2 ;
 
Apologies, I got it working[phi1, phi2] = meshgrid(-20:0.5:20);

lam = 1;
m = 1;

V = (m^2)*(phi1.^2 + phi2^2) + lam*(phi1.^2 + phi2.^2).^2 ;surf(phi1, phi2, V)
thanks for your help!
 
You are very welcome :smile:
 

Similar threads

Replies
6
Views
3K
Replies
1
Views
2K
Replies
2
Views
3K
Replies
10
Views
3K
Replies
10
Views
3K
Replies
3
Views
2K
Back
Top