skilletwaffles

2

Apr 20th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. %Problem 1
  2. A1 = [];
  3. A2 = [];
  4. A3 = [];
  5. tol = 1e16;
  6. for i = 2:50
  7. hilbert = hilb(i);
  8. if cond(hilbert, inf) < tol
  9. A1 = [A1; cond(hilbert, inf)];
  10. end
  11. if cond(hilbert, inf) > tol
  12. break
  13. end
  14. end
  15. i = i-2;
  16. save A1.dat A1 '-ascii';
  17. temp = [];
  18.  
  19.  
  20. tempArray1 = [];
  21. tempArray2 = [];
  22. for n = 2:i
  23. %temp(1:n) = 1;
  24. %temp = temp.';
  25. temp = ones([n, 1]);
  26. hilbert1 = hilb(n);
  27. z1 = temp - (hilbert1.'*(hilbert1*temp));
  28. tempArray1 = [tempArray1; norm(z1, inf)];
  29.  
  30. z2 = temp - (hilbert1 * (hilbert1.' * temp));
  31. tempArray2 = [tempArray2; norm(z2, inf)];
  32. end
  33. A2 = [tempArray1 tempArray2];
  34. save A2.dat A2 '-ascii';
  35.  
  36. temp2 = [];
  37.  
  38.  
  39. tempArray12 = [];
  40. tempArray22 = [];
  41. for n = 2:i
  42. temp2 = ones([n, 1]);
  43. hilbert2 = hilb(n);
  44. invhilb2 = invhilb(n);
  45. z12 = temp2 - (invhilb2*(hilbert2*temp2));
  46. tempArray12 = [tempArray12; norm(z12, inf)];
  47.  
  48. z22 = temp2 - (hilbert2 * (invhilb2 * temp2));
  49. tempArray22 = [tempArray22; norm(z22, inf)];
  50. end
  51.  
  52. A3 = [tempArray12 tempArray22];
  53. save A3.dat A3 '-ascii';
  54.  
  55. %Problem 2
  56. clear all
  57.  
  58. A = [ 4 -1 -1 0 0 0 0 0 0 0;
  59. -1 5 -1 -1 -1 0 0 0 0 0;
  60. -1 -1 5 0 -1 -1 0 0 0 0;
  61. 0 -1 0 5 -1 0 -1 -1 0 0;
  62. 0 -1 -1 -1 6 -1 0 -1 -1 0;
  63. 0 0 -1 0 -1 5 0 0 -1 -1;
  64. 0 0 0 -1 0 0 4 -1 0 0;
  65. 0 0 0 -1 -1 0 -1 5 -1 0;
  66. 0 0 0 0 -1 -1 0 -1 5 -1;
  67. 0 0 0 0 0 -1 0 0 -1 4;];
  68.  
  69. b = [0; 0; 0; 0; 0; 0; 1; 1; 1; 1];
  70. x = A\b;
  71. save A4.dat x '-ascii';
  72.  
  73. tol = 1e-4;
  74. maxIter = 100;
  75. %Split up matrix
  76. D = diag(diag(A));
  77. L = tril(A) - D;
  78. U = triu(A) - D;
  79.  
  80. guess = [1; 0; 0; 0; 0; 0; 0; 0; 0; 0];
  81. %Jacobi
  82. for i = 1:maxIter
  83. guess(:, i+1) = D\(b-(L+U)*guess(:,i));
  84. if norm(guess(:,i+1)-guess(:,i), inf) < tol
  85. break
  86. end
  87. end
  88. save A5.dat guess '-ascii'
  89. %Gauss-Seidel
  90. guess1 = [1; 0; 0; 0; 0; 0; 0; 0; 0; 0];
  91. for i = 1:maxIter
  92. guess1(:,i+1) = (L+D)\(b-U*guess1(:,i));
  93. if norm(guess1(:,i+1) - guess1(:,i),inf) < tol
  94. break
  95. end
  96. end
  97. save A6 guess1 '-ascii'
  98. [X,FLAG,RELRES,ITER] = bicg(A,b);
  99. A7 = [X;ITER];
  100. save A7.dat A7 '-ascii'
  101.  
  102. M = [0 1/4 1/4 0 0 0 0 0 0 0;
  103. 1/2 0 1/4 1/4 1/6 0 0 0 0 0;
  104. 1/2 1/4 0 0 1/6 1/4 0 0 0 0;
  105. 0 1/4 0 0 1/6 0 1/2 1/4 0 0;
  106. 0 1/4 1/4 1/4 0 1/4 0 1/4 1/4 0;
  107. 0 0 1/4 0 1/6 0 0 0 1/4 1/2;
  108. 0 0 0 1/4 0 0 0 1/4 0 0;
  109. 0 0 0 1/4 1/6 0 1/2 0 1/4 0;
  110. 0 0 0 0 1/6 1/4 0 1/4 0 1/2;
  111. 0 0 0 0 0 1/4 0 0 1/4 0];
  112. sum(M,1);
  113. [V,D] = eig(M);
  114. diagD = diag(D);
  115. save A8.dat diagD '-ascii'
  116.  
  117. %Problem 3
  118. clear all
  119. N = [ 7.24; 9.64; 12.87; 17.07; 23.19;
  120. 31.44; 38.56; 50.19; 62.98; 76.21;
  121. 92.23;106.02;123.20;132.16;151.33;
  122. 179.32;203.30;226.54;248.71;281.42;
  123. 307.75];
  124. t = [-90; -80; -70; -60; -50; -40; -30; -20; -10;
  125. 0; 10; 20; 30; 40; 50; 60; 70; 80; 90; 100; 110];
  126. t = t.';
  127. N = N.';
  128. y = @(x) log((500/x)-1);
  129. ytemp = [21,1];
  130. A9 = polyfit(t,N,1);
  131. A9(1,2) = log(A9(1,2));
  132. save A9.dat A9 '-ascii'
  133. temp = [-90 1;-80 1;-70 1;-60 1;-50 1;-40 1;
  134. -30 1;-20 1;-10 1;0 1;10 1;20 1;30 1;
  135. 40 1;50 1;60 1;70 1;80 1;90 1;100 1;
  136. 110 1];
  137. years = linspace(-90,110,21);
  138. %what you had before was down below
  139. %in the for loop
  140. %ytemp(i,1) = y(i);
  141. for i = 1:21
  142. ytemp(i,1) = y(years(1,i));
  143. end
  144. ytemp
  145. ytemp = ytemp(1:21,1);
  146. %ans = temp\ytemp;
  147. [X,FLAG,RELRES,ITER] = lsqr(temp,ytemp);
  148. X = X.';
  149. lsqrans = A9-X;
  150. lsqrans = [lsqrans ITER];
  151. save A10.dat lsqrans '-ascii';
  152.  
  153. predTemp = linspace(120,300,20); %list of years
  154. predTemp = predTemp.'; %transpose since it was naughty before
  155. eqTemp = [20,1]; %hold values of y(predTemp)
  156. for i = 1:20
  157. eqTemp(i,1) = y(predTemp(i)); %plug into anon eq
  158. end
  159.  
  160. nEq = @(m) 500/(1+exp(m)); %original funct
  161. for i = 1:20
  162. eqTemp(i,1) = nEq(eqTemp(i,1)); %plugging back in
  163. end
  164. eqTemp = eqTemp(1:20,1).';
  165. save A11.dat eqTemp '-ascii';
Advertisement
Add Comment
Please, Sign In to add comment