Plotting a potential function in MATLAB

Click For Summary
SUMMARY

The discussion focuses on plotting the potential function \(\mathcal{V}(\phi_{1}, \phi_{2}) = m^2(\phi_{1}^2 + \phi_{2}^2) + \lambda(\phi_{1}^2 + \phi_{2}^2)^2\) in MATLAB. The user Max initially faced issues with MATLAB's syntax, particularly with element-wise operations. After guidance from Yuu, Max successfully implemented the surf() function using meshgrid to create the necessary grid for \(\phi_{1}\) and \(\phi_{2}\), resolving the errors encountered.

PREREQUISITES
  • Understanding of potential functions in quantum field theory (QFT)
  • Familiarity with MATLAB syntax and functions
  • Knowledge of element-wise operations in MATLAB
  • Experience with 3D plotting in MATLAB using surf()
NEXT STEPS
  • Learn about MATLAB meshgrid function for creating coordinate grids
  • Explore MATLAB's surf() function for 3D surface plotting
  • Study element-wise operations in MATLAB, specifically the use of .^ for power operations
  • Investigate quantum field theory concepts related to spontaneous symmetry breaking
USEFUL FOR

Researchers, physicists, and students in quantum field theory, as well as MATLAB users looking to enhance their skills in 3D plotting and mathematical modeling.

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 ·
Replies
6
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
4K
Replies
5
Views
1K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 10 ·
Replies
10
Views
4K
  • · Replies 12 ·
Replies
12
Views
967
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K