1

I have a list of plot in a list called modes. I am interested in knowing whether this list is unique or not, meaning all the plots are different from one another. how to do this?

ClearAll["Global`*"]
Clear[b]
SetDirectory[NotebookDirectory[]];
se1 = 1;
L = 4;
z[1] = L/4;
z[2] = (2*L)/4;
z[3] = (3*L)/4;
Y = 2*10^11;(*Youngs modulus *)
Iyy = 8.333*10^-6;(*area moment of inertia*)
A = 0.1^2;(*cross sectional area*)
\[Rho] = 7850;
kb = (Y*Iyy)/L^3;
n = 3; (* number of springs *)
W[1] = a[1]*Sin[b*x] + a[2]*Cos[b*x] + a[3]*Sinh[b*x] + a[4]*Cosh[b*x];
W[2] = a[5]*Sin[b*(x - z[1])] + a[6]*Cos[b*(x - z[1])] + 
   a[7]*Sinh[b*(x - z[1])] + a[8]*Cosh[b*(x - z[1])];
W[3] = a[9]*Sin[b*(x - z[2])] + a[10]*Cos[b*(x - z[2])] + 
   a[11]*Sinh[b*(x - z[2])] + a[12]*Cosh[b*(x - z[2])];
W[4] = a[13]*Sin[b*(x - z[3])] + a[14]*Cos[b*(x - z[3])] + 
   a[15]*Sinh[b*(x - z[3])] + a[16]*Cosh[b*(x - z[3])];
w = Piecewise[{{W[1], x <= z[1]}, {W[2], z[1] <= x <= z[2]}, {W[3], 
     z[2] <= x <= z[3]}, {W[4], x >= z[3]}}];

(CANTILEVER BC) boundary[i_, j_] := Module[ {bc}, bc1 = {W[i] /. {x -> 0}, (D[W[i], {x, 1}]) /. {x -> 0}, (D[ W[j], {x, 2}]) /. {x -> L}, ((D[W[j], {x, 3}]) /. {x -> L})}; bc = bc1]

countinuity[i_, j_] := Module[{eq}, eq1 = {((W[i] /. x -> z[i]) - (W[j] /. x -> z[i])), (((D[W[i], {x}]) /. x -> z[i]) - ((D[W[j], {x}]) /. x -> z[i])), (((D[W[i], {x, 2}]) /. x -> z[i]) - ((D[W[j], {x, 2}]) /. x -> z[i])), (((D[W[i], {x, 3}]) /. x -> z[i]) - ((D[W[j], {x, 3}]) /. x -> z[i])) +(K[i]* W[i] /. x -> z[i])}; eq = eq1 ]

e1 = boundary[1, 4]; e2 = countinuity[1, 2]; e3 = countinuity[2, 3]; e4 = countinuity[3, 4]; comb = Tuples[{0, 1*^12}, 3]; eq = Flatten[{e1, e2, e3, e4}]; var = Table[a[i], {i, 1, Length[eq]}]; R = Normal@CoefficientArrays[eq, var][[2]]; R = R /. {K[1] -> K1, K[2] -> K2, K[3] -> K3}; P = 4 b^15 (32 b^9 + 4 b^3 K1 K2 Cosh[2 b] - 4 b^3 K1 K3 Cosh[2 b] - 4 b^3 K2 K3 Cosh[2 b] + 2 b^3 K1 K2 Cosh[4 b] + 2 b^3 K1 K3 Cosh[4 b] + 2 b^3 K2 K3 Cosh[4 b] + 2 Sin[3 b] (-2 K1 K2 K3 Cosh[ b] + (8 b^6 (K1 - K3) + K1 K2 K3) Cosh[3 b] + 4 b^3 K2 (K1 + (3 K1 - K3) Cosh[2 b]) Sinh[b]) - 3 K1 K2 K3 Sinh[2 b] + 2 Cos[b] (-4 b^3 K1 K2 Cosh[ 3 b] + (8 b^6 (K1 - K3) + K1 K2 K3) Sinh[b] - 2 K1 K2 K3 Sinh[3 b]) + 2 Cos[3 b] (4 b^3 K1 K2 Cosh[b] + 2 K1 K2 K3 Sinh[b] + (K1 K2 K3 + 8 b^6 (-K1 + K3)) Sinh[ 3 b]) + 2 Sin[ b] ((K1 K2 K3 + 8 b^6 (-K1 + K3)) Cosh[b] + 2 K2 (K1 K3 Cosh[3 b] + b^3 (3 (K1 + K3) Sinh[b] + (-K1 + K3) Sinh[3 b]))) + 8 b^6 K2 Sinh[4 b] + 2 K1 K2 K3 Sinh[4 b] + Sin[2 b] (-3 K1 K2 K3 + 2 K1 K2 K3 Cosh[2 b] - 3 K1 K2 K3 Cosh[4 b] + 8 b^3 (-K1 K2 + 2 K1 K3 + K2 K3) Sinh[2 b] - 2 b^3 (K1 K2 + 2 K1 K3 + K2 K3) Sinh[4 b]) + Cos[2 b] (4 b^3 (-K1 K2 + (K1 + K2) K3) + 4 b^3 (K2 K3 + K1 (K2 + K3)) Cosh[4 b] + 2 K1 K2 K3 Sinh[2 b] + (K1 K2 K3 + 8 b^6 (K1 + K3)) Sinh[ 4 b]) + Sin[ 4 b] (-8 b^6 K2 + 2 K1 K2 K3 + (K1 K2 K3 - 8 b^6 (K1 + K3)) Cosh[ 2 b] - (K1 K2 K3 + 8 b^6 (K1 + K2 + K3)) Cosh[4 b] - 2 b^3 (K2 K3 + K1 (K2 + 2 K3)) Sinh[2 b] - 4 b^3 (K2 K3 + K1 (K2 + K3)) Sinh[4 b]) + Cos[4 b] (-2 b^3 (K2 K3 + K1 (K2 + K3)) - 4 b^3 (K2 K3 + K1 (K2 + K3)) Cosh[2 b] + 32 b^9 Cosh[4 b] - 3 K1 K2 K3 Sinh[ 2 b] + (-K1 K2 K3 + 8 b^6 (K1 + K2 + K3)) Sinh[4 b]));

f[k1_, k2_, k3_, beta_] := Module[{m}, K1 = k1; K2 = k2; K3 = k3; r = beta; s1 = P; s2 = NSolve[s1 == 0 && 0 < b < 30]; s3 = N[b /. s2]; s4 = s3[[r]]; {uu, ww, vv} = SingularValueDecomposition[R /. b -> s4]; NN = Last[Transpose[vv]]; sub1 = Flatten[{var, b}]; sub2 = Flatten[{NN, s4}];
m = w /. Table[sub1[[i]] -> sub2[[i]], {i, 1, Length[sub1]}]; Return[m]]; comb = Tuples[{0, 1*^12}, 3] g[i_, r_] := Module[{s5}, spring = comb[[i]]; a1 = spring[[1]]; a2 = spring[[2]]; a3 = spring[[3]]; a4 = r; s5 = f[a1, a2, a3, a4]] mode1 = Table[g[i, 1], {i, 1, 2^n}]; mode2 = Table[g[i, 2], {i, 1, 2^n}]; mode3 = Table[g[i, 3], {i, 1, 2^n}];

modes = Flatten[{mode1, mode2, mode3}]; Table[Plot[modes[[i]], {x, 0, L}, PlotRange -> All], {i, 1, Length[modes]}]

acoustics
  • 1,709
  • 9
  • 20
  • Do you mean finding unique values. You could just find if there are any duplicates and test it according to a boolean value? https://mathematica.stackexchange.com/questions/21341/how-to-efficiently-find-positions-of-duplicates – Letshin Nov 14 '20 at 05:56
  • I am interested in finding duplicates of the plots in that list modes – acoustics Nov 14 '20 at 06:00
  • You could try a cross-correlation? https://reference.wolfram.com/language/ref/CorrelationFunction.html – Letshin Nov 14 '20 at 13:09
  • But the correlation is applicable for numerics right. Does it be valid for plots? – acoustics Nov 15 '20 at 05:30
  • Isn't your plot based on datasets? Just run it between the datasets to find how similar they are using the x-correlation. – Letshin Nov 16 '20 at 14:19

0 Answers0