Advertisement
simov

DM2 Lab2

Mar 31st, 2016
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 7.12 KB | None | 0 0
  1. m = Input["Vnesi redici m="]
  2. n = Input["Vnesi redici n="]
  3. A = Table[Input["A[[i,j]]="], {i, m}, {j, n}];
  4. B = Table[Input["B[[i,j]]="], {i, m}, {j, n}];
  5. Print["A+B = ", MatrixForm[A + B]];
  6.  
  7. Print["A-B = " MatrixForm[A - B]];
  8.  
  9. Bt = Transpose[B];
  10. Print["Transponirana mat. B: ", MatrixForm[Bt]];
  11.  
  12. Print["Zbirot na elementite po dijagonala na dvete matrici e: ",
  13.  Tr[A] + Tr[B]]
  14.  
  15.  
  16.  
  17. n = Input["Vnesi red na matricata (nxn) n="]
  18. M = Table[Input["M[[i,j]]="], {i, n}, {j, n}];
  19. M // MatrixForm
  20. suma = 0;
  21. For[i = 1, i <= n, i++,
  22.  For[j = 1, j <= n, j++,
  23.   If[Mod[M[[i, j]], 2] == 0, suma += M[[i, j]]]
  24.   ]
  25.  ]
  26. Print["Zbirot na site parni elementi od matricata M e: ", suma];
  27.  
  28.  
  29.  
  30.  
  31.  
  32. n = Input["Vnesi go redot na matricata M nxn n="]
  33. M = ConstantArray[0, {n, n}];
  34. M // MatrixForm
  35.  
  36. poz = Round[n/2]
  37. brDzv = 1;
  38. For[i = 2, i <= n, i++,
  39.  For[j = 1, j <= n, j++,
  40.   If[j == poz, For[k = 1, k <= brDzv, k++, M[[i, j]] = "*"; j++],]
  41.   ];
  42.  poz--;
  43.  brDzv += 2;
  44.  ]
  45. M // MatrixForm
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. (*4*)
  53. (*Да се реши системот равенки со Гаусов метод:
  54.  4x+y-z = 3,
  55.     2x+7y+z = 19,
  56.     x-3y+12z = 31.
  57. *)
  58.  (*Прво од системот ја пишуваме матрицата А*)
  59. A = {{4, 1, -1}, {2, 7, 1}, {1, -3, 12}};
  60. A // MatrixForm
  61.  
  62. RHS = {3, 19, 31};
  63. RHS // MatrixForm
  64.  
  65. B = Transpose[
  66.    Append[Transpose[A],
  67.     RHS]];(*Се додава векторот со решенија RHS на матрицата А*)
  68.  
  69. GausovMetod[B_] := Module[{n, k, i, j, A1 = {}, RHS1 = {}},
  70.   n = Length[B] - 1; (*n е должината на матрицата А*)
  71.  
  72.  
  73.   Print["B = ", MatrixForm[B]];
  74.   Print["Pocetok", MatrixForm[B]]; Print[" "];
  75.  
  76.  
  77.  
  78. (*Се генерира горнотриаголна матрица*)
  79. For[k = 1, k <= n - 1, k++,
  80.   For[i = k + 1, i <= n, i++,
  81.    multiplier =
  82.     N[B[[i, k]]/
  83.       B[[k, k]]]; (*Функцијата N враќа нумеричка вредност на изразот*)
  84.  
  85.    
  86.    For[j = k, j <= n + 1, j++,
  87.     B[[i, j]] = B[[i, j]] - multiplier*B[[k, j]]
  88.     ]
  89.    ];
  90.   (*Печатење на секој чекор*)
  91.   Print["Cekor=", k, MatrixForm[B]]; Print[" "]
  92.   ];
  93. Print["Matricata B = ", MatrixForm[B]];
  94. Print["Resenijata so RowReduce: ", MatrixForm[RowReduce[B]]];
  95.  
  96.  
  97. (*---------------------*)
  98. A1 = Take[B, {1, n}, {1, n}];
  99. MatrixForm[A1];
  100.  
  101. RHS1 = Take[B, {1, n}, {n + 1, n + 1}];
  102. MatrixForm[RHS1];
  103. Print["Resenija na sistemot se: ", LinearSolve[A1, RHS1]];
  104.  
  105.  
  106. Print["Proverka so Solve: ",
  107.   Solve[{ 4*x + y - z , 2*x + 7*y + z, x - 3*y + 12*z } == {3, 19,
  108.      31}]];
  109. Print["Proverka so LinearSolve: ", LinearSolve[A, RHS]];
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119. (*5*)
  120. A = {{4, 3, 4, 2}, {1, 2, 1, 3}, {3, 2, 2, 1}, {1, 1, 2, 1}}
  121. B = {{5, 6, 4, 3}, {3, 6, 4, 2}, {1, 6, 1, 1}, {3, 6, 4, 2}}
  122. Print["A = ", MatrixForm[A]];
  123. Print["B = ", MatrixForm[B]];
  124.  
  125. Apom = Take[A, -3];
  126. Print["Apom = ", MatrixForm[Apom]];
  127.  
  128. Bpom = Take[B, 3];
  129. Print["Bpom = ", MatrixForm[Bpom]];
  130.  
  131. If[Dimensions[Apom] == Dimensions[Bpom], Bt = Transpose[Bpom];
  132.  Print["B transponirana = ", MatrixForm[Bt]];
  133.  proiz = Apom.Bt;
  134.  Print["Proizvodot na prvata i transponirana od vtorata matrica e: ",
  135.   MatrixForm[proiz]]
  136.  ]
  137.  
  138. (*Zamena na el. od 1vata matrica*)
  139. pom = {};
  140. A2 = Apom;
  141. pom = A2[[2]];
  142. A2[[2]] = A2[[3]];
  143. A2[[3]] = pom;
  144. Print["Matricata, ", MatrixForm[Apom],
  145.   " so zameneti 2-ra i 3-ta redica: ", MatrixForm[A2]];
  146.  
  147. B2 = Bpom;
  148. For[i = 1, i <= 3, i++,
  149.  For[j = 1, j <= 4, j++,
  150.   B2[[i, j]] *= 2;
  151.   ]
  152.  ]
  153. Print["Matricata, ", MatrixForm[Bpom],
  154.   " so pomnozen sekoj element so 2: ", MatrixForm[B2]];
  155.  
  156. Join[A2, B2] // MatrixForm
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167. (*6*)
  168. A = {};
  169. n = Input["Vnesete red nxn, n="]
  170.  
  171. For[i = 1, i <= n, i++,
  172.  pom = {};
  173.  For[j = 1, j <= n, j++,
  174.   AppendTo[pom, Input["A[i,j]="]]
  175.   ];
  176.  AppendTo[A, pom];
  177.  ]
  178. Print["A = ", MatrixForm[A]];
  179.  
  180. If[MatrixQ[A], B = MatrixPower[A, 5]; Print["Minori: ", Minors[B]],];
  181.  
  182. MatrixForm[UpperTriangularize[A]]
  183. MatrixForm[LowerTriangularize[A]]
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192. (*grafovi 1*)
  193.  
  194. n = 7
  195. a = MakeGraph[Range[n], (Mod[#1, #2] == 1) &]
  196. ShowGraph[a]
  197. n = 10
  198. b = MakeGraph[Range[n], (Mod[#1, #2] < 3) &]
  199. ShowGraph[b]
  200. n = 12
  201. c = MakeGraph[Range[n], (Floor[#1/#2] > 5 || Floor[#1/#2] < 3) &]
  202. ShowGraph[c]
  203. n = 20
  204. d = MakeGraph[Range[n], (#1^2 + #1 > #2^3 - #2) &]
  205. ShowGraph[d]
  206. n = 15
  207. e = MakeGraph[
  208.   Range[2, n + 1], (#1 - IntegerPart[Sqrt[#1]] >= Mod[#2, (#2 - 1)]) &]
  209. ShowGraph[e]
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216. (*2*)
  217. << DiscreteMath`Combinatorica`
  218.  
  219. n = Input["Vnesi N"]
  220. m = Input["Vnesi M"]
  221. i = Input["Vnesi I"]
  222. j = Input["Vnesi J"]
  223. completegraph = CompleteGraph[n]
  224. ShowGraph[
  225.  SetGraphOptions[
  226.   AddVertex[
  227.    completegraph, {i, j}], {{1, 2, VertexColor -> Blue,
  228.     VertexStyle -> Disk[Large]}, {n, VertexColor -> Red}},
  229.   EdgeColor -> Green]]
  230. stargraph = Star[m]
  231. ShowGraph[DeleteEdge[stargraph, {i, j}]]
  232.  
  233.  
  234.  
  235.  
  236. (*3*)
  237. << DiscreteMath`Combinatorica`
  238.  
  239.  
  240. n = Input["Vnesi N"]
  241. m = Input["Vnesi M"]
  242. t = Input["Vnesi T"]
  243. loopgraph1 = MakeGraph[Range[n], (#1 == #2) &]
  244. loopgraph2 = MakeGraph[Range[m], (#1 == #2) &]
  245. For[i = 1, i < n, i++, loopgraph1 = AddEdge[loopgraph1, {i, i + 1}];
  246.  loopgraph2 = DeleteVertex[loopgraph2, i];]
  247. For[i = 0, i < m, i++, loopgraph1 = AddVertex[loopgraph1];
  248.  loopgraph2 = DeleteEdge[loopgraph2, {i, i}];]
  249. ShowGraph[loopgraph1]
  250. ShowGraph[loopgraph2]
  251. uniongraph = GraphUnion[loopgraph1, loopgraph2]
  252. ShowGraph[uniongraph]
  253. ShowGraph[InduceSubgraph[uniongraph, RandomSubset[Range[t]]]]
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261. (*4*)
  262. While[1 == 1, opcija = Input["Izberi Opcija"];
  263.  If[opcija == 0, Break[]];
  264.  If[opcija == 1, n = Input["vnesi n"];
  265.   graph = CompleteGraph[n];];
  266.  If[opcija == 2, n = Input["vnesi n"];
  267.   graph = Star[n];];
  268.  If[opcija == 3, graph = AddVertex[graph]];
  269.  If[opcija == 4, index = Input["Vnesi indeks"];
  270.   graph = DeleteVertex[graph, index]];
  271.  If[opcija == 5, 19 teme1 = Input["Vnesi prvo teme"];
  272.   teme2 = Input["Vnesi vtoro teme"];
  273.   graph = AddEdge[opcija, {teme1, teme2}]];
  274.  If[opcija == 6, teme1 = Input["Vnesi prvo teme"];
  275.   teme2 = Input["Vnesi vtoro teme"];
  276.   graph = DeleteEdge[graph, {teme1, teme2}]]]
  277. ShowGraph[graph]
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284. (*5*)
  285. << DiscreteMath`Combinatorica`
  286.  
  287. graf1 = MakeGraph[Range[5], (#1 == #2 || #1 < #2) &];
  288. graf2 = MakeGraph[Range[5], (#1 == #2 || #1 > #2) &];
  289. Isomorphism[graf1, graf2, All]
  290. graf3 = CompleteGraph[5]
  291. graf4 = CompleteGraph[5]
  292. Isomorphism[graf3, graf4, All]
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299. (*6*)
  300. << DiscreteMath`Combinatorica`
  301.  
  302. n = Input["Vnesi vrednost za n:"]
  303. graf = CompleteGraph[n]
  304. table = TableForm[ToAdjacencyMatrix[graf]]
  305. Vertices[graf]
  306. brojac = 0;
  307. suma = 0;
  308. For[i = 1, i <= n, i++, 20 brojac = 0;
  309.  For[j = 1, j <= n, j++,
  310.   If[table[[1, i, j]] == 1 || table[[1, j, i]] == 1, brojac++];];
  311.  suma += brojac;]
  312. Print[suma]
  313. rebra = suma/2
  314. Print[rebra]
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321. (*7*)
  322. << DiscreteMath`Combinatorica`
  323.  
  324. n = 5
  325. (*graph=MakeGraph[Range[4],(True)&]*)
  326. graph = OrientGraph[RandomGraph[n, 0.85]]
  327. ShowGraph[graph]
  328. tabela = TableForm[ToAdjacencyMatrix[graph]]
  329. izleg = 0
  330. vleg = 0
  331. For[i = 1, i <= n, i++,
  332.  For[j = 1, j <= n, j++, If[tabela[[1, i, j]] == 1, izleg++];
  333.   If[tabela[[1, j, i]] == 1, vleg++];]]
  334. rebra = izleg
  335. Print[rebra]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement