# Plotting with two variable

GF = 1.16*10^(-5)
MW = 80
mt = 172.44
x = (mt^2)/(MW^2)
C1 = (x/8)*((x - 6)/(x - 1) + ((3*x + 2)/(x - 1)^2)*Log[10, x])
S1 = ((4*x - 11*x^2 + x^3)/(4*(1 - x)^2)) - (3/2)*(((Log[10, x])*x^3)/(1 - x)^3)
λ = 0.0396
a = (C1/S1)*4
b = (2*Sqrt[2]*3.14^2)/(GF*MW^2*S1)
M = ((1 + (a*U*Cos[Φ])/λ + (b*U^2*
Cos[2 Φ])/λ^2)^2 + ((a*U*
Sin[Φ])/λ + (b*U^2*
Sin[2 Φ])/λ^2)^2)/0.8464


If I want to plot U vs. Φ then what command I will use?

This is how I will try to plot an implicit function without using ContourPlot.

First define a SetDelay,

M[U_, \[CapitalPhi]_] := ((1 + (a*U*
Cos[\[CapitalPhi]])/\[Lambda] + (b*U^2*
Cos[2 \[CapitalPhi]])/\[Lambda]^2)^2 + ((a*U*
Sin[\[CapitalPhi]])/\[Lambda] + (b*U^2*
Sin[2 \[CapitalPhi]])/\[Lambda]^2)^2)/0.8464


then make a list of data points using Table. While doing this, solve for the dependent variable U,

data = Table[{\[CapitalPhi], U /. Solve[M[U, \[CapitalPhi]] == 0, U][[1]]}, {\[CapitalPhi], -5,
5, 0.1}];


From the list you will see that we getting complex numbers, so lets plot both,

ListLinePlot[{Re@data, Im@data}, PlotStyle -> {Red, Green}]


There are multiple roots, you can choose it by changing the placement position [[1]].

Second root,

Third root,

Fourth root,

You haven't really established a relationship between U and Φ for plotting, but if we change your last statement to an equation instead of an assignment, we can solve for U in terms of Φ and then make plots over a range of M.

M =.;
GF = 1.16*10^(-5);
MW = 80;
mt = 172.44;
x = (mt^2)/(MW^2);
C1 = (x/8)*((x - 6)/(x - 1) + ((3*x + 2)/(x - 1)^2)*Log[10, x]);
S1 = ((4*x - 11*x^2 + x^3)/(4*(1 - x)^2)) - (3/
2)*(((Log[10, x])*x^3)/(1 - x)^3);
λ = 0.0396;
a = (C1/S1)*4;
b = (2*Sqrt[2]*3.14^2)/(GF*MW^2*S1);
ueq = M == ((1 + (a*U*Cos[Φ])/λ + (b*U^2*
Cos[2 Φ])/λ^2)^2 + ((a*U*
Sin[Φ])/λ + (b*U^2*
Sin[2 Φ])/λ^2)^2)/0.8464


Then solve for U by the last equation

Sol = Solve[ueq, U] // Simplify;


We get four very long solutions and each solution has quadrants of Φ that have real values yielding curves and quadrants that have complex values which yield no curve. The more interesting plots are those where all four solutions are plotted on the same plot. We will just make a Table of plots over a range of M.

Assign the four results for U.

U1[M_, Φ_] = U /. Sol[[1]];
U2[M_, Φ_] = U /. Sol[[2]];
U3[M_, Φ_] = U /. Sol[[3]];
U4[M_, Φ_] = U /. Sol[[4]];

gifs = Table[ Plot[{U1[M, Φ], U2[M, Φ], U3[M, Φ], U4[M, Φ]} //
Chop, {Φ, 0, 2 π}, PlotRange -> {-.0016, .0016},
PlotLabel -> "M = " <> ToString[M]], {M, .5, 5, .25}];
ListAnimate[gifs]


Note that these plots are for the real values of U only.

• If I want to vary this M value within the range then what command I will use? Means if I want to plot sol[1], Sol[2], Sol[3] and sol[4] together in a single plotting then what command I will use? – Priti Nayek Dec 27 '18 at 11:56
• Actually I want to plot U Vs Phi by varying M from 0.6 to 1.24 in the same graph. What command I will use? – Priti Nayek Dec 28 '18 at 5:48
• Change the range of M in the Table command to {M, 0.6, 1.24, 0.1} or whatever interval you prefer. – Bill Watts Dec 28 '18 at 7:45
• Can I write these commands directly in mathematica or is it necessary to change somethings? – Priti Nayek Dec 28 '18 at 10:06
• These answers are Mathematica code. Just copy and paste into a notebook and change (or not) whatever you want and execute. – Bill Watts Dec 28 '18 at 18:20