Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %Problem 1
- A1 = [];
- A2 = [];
- A3 = [];
- tol = 1e16;
- for i = 2:50
- hilbert = hilb(i);
- if cond(hilbert, inf) < tol
- A1 = [A1; cond(hilbert, inf)];
- end
- if cond(hilbert, inf) > tol
- break
- end
- end
- i = i-2;
- save A1.dat A1 '-ascii';
- temp = [];
- tempArray1 = [];
- tempArray2 = [];
- for n = 2:i
- %temp(1:n) = 1;
- %temp = temp.';
- temp = ones([n, 1]);
- hilbert1 = hilb(n);
- z1 = temp - (hilbert1.'*(hilbert1*temp));
- tempArray1 = [tempArray1; norm(z1, inf)];
- z2 = temp - (hilbert1 * (hilbert1.' * temp));
- tempArray2 = [tempArray2; norm(z2, inf)];
- end
- A2 = [tempArray1 tempArray2];
- save A2.dat A2 '-ascii';
- temp2 = [];
- tempArray12 = [];
- tempArray22 = [];
- for n = 2:i
- temp2 = ones([n, 1]);
- hilbert2 = hilb(n);
- invhilb2 = invhilb(n);
- z12 = temp2 - (invhilb2*(hilbert2*temp2));
- tempArray12 = [tempArray12; norm(z12, inf)];
- z22 = temp2 - (hilbert2 * (invhilb2 * temp2));
- tempArray22 = [tempArray22; norm(z22, inf)];
- end
- A3 = [tempArray12 tempArray22];
- save A3.dat A3 '-ascii';
- %Problem 2
- clear all
- A = [ 4 -1 -1 0 0 0 0 0 0 0;
- -1 5 -1 -1 -1 0 0 0 0 0;
- -1 -1 5 0 -1 -1 0 0 0 0;
- 0 -1 0 5 -1 0 -1 -1 0 0;
- 0 -1 -1 -1 6 -1 0 -1 -1 0;
- 0 0 -1 0 -1 5 0 0 -1 -1;
- 0 0 0 -1 0 0 4 -1 0 0;
- 0 0 0 -1 -1 0 -1 5 -1 0;
- 0 0 0 0 -1 -1 0 -1 5 -1;
- 0 0 0 0 0 -1 0 0 -1 4;];
- b = [0; 0; 0; 0; 0; 0; 1; 1; 1; 1];
- x = A\b;
- save A4.dat x '-ascii';
- tol = 1e-4;
- maxIter = 100;
- %Split up matrix
- D = diag(diag(A));
- L = tril(A) - D;
- U = triu(A) - D;
- guess = [1; 0; 0; 0; 0; 0; 0; 0; 0; 0];
- %Jacobi
- for i = 1:maxIter
- guess(:, i+1) = D\(b-(L+U)*guess(:,i));
- if norm(guess(:,i+1)-guess(:,i), inf) < tol
- break
- end
- end
- save A5.dat guess '-ascii'
- %Gauss-Seidel
- guess1 = [1; 0; 0; 0; 0; 0; 0; 0; 0; 0];
- for i = 1:maxIter
- guess1(:,i+1) = (L+D)\(b-U*guess1(:,i));
- if norm(guess1(:,i+1) - guess1(:,i),inf) < tol
- break
- end
- end
- save A6 guess1 '-ascii'
- [X,FLAG,RELRES,ITER] = bicg(A,b);
- A7 = [X;ITER];
- save A7.dat A7 '-ascii'
- M = [0 1/4 1/4 0 0 0 0 0 0 0;
- 1/2 0 1/4 1/4 1/6 0 0 0 0 0;
- 1/2 1/4 0 0 1/6 1/4 0 0 0 0;
- 0 1/4 0 0 1/6 0 1/2 1/4 0 0;
- 0 1/4 1/4 1/4 0 1/4 0 1/4 1/4 0;
- 0 0 1/4 0 1/6 0 0 0 1/4 1/2;
- 0 0 0 1/4 0 0 0 1/4 0 0;
- 0 0 0 1/4 1/6 0 1/2 0 1/4 0;
- 0 0 0 0 1/6 1/4 0 1/4 0 1/2;
- 0 0 0 0 0 1/4 0 0 1/4 0];
- sum(M,1);
- [V,D] = eig(M);
- diagD = diag(D);
- save A8.dat diagD '-ascii'
- %Problem 3
- clear all
- N = [ 7.24; 9.64; 12.87; 17.07; 23.19;
- 31.44; 38.56; 50.19; 62.98; 76.21;
- 92.23;106.02;123.20;132.16;151.33;
- 179.32;203.30;226.54;248.71;281.42;
- 307.75];
- t = [-90; -80; -70; -60; -50; -40; -30; -20; -10;
- 0; 10; 20; 30; 40; 50; 60; 70; 80; 90; 100; 110];
- t = t.';
- N = N.';
- y = @(x) log((500/x)-1);
- ytemp = [21,1];
- A9 = polyfit(t,N,1);
- A9(1,2) = log(A9(1,2));
- save A9.dat A9 '-ascii'
- temp = [-90 1;-80 1;-70 1;-60 1;-50 1;-40 1;
- -30 1;-20 1;-10 1;0 1;10 1;20 1;30 1;
- 40 1;50 1;60 1;70 1;80 1;90 1;100 1;
- 110 1];
- years = linspace(-90,110,21);
- %what you had before was down below
- %in the for loop
- %ytemp(i,1) = y(i);
- for i = 1:21
- ytemp(i,1) = y(years(1,i));
- end
- ytemp
- ytemp = ytemp(1:21,1);
- %ans = temp\ytemp;
- [X,FLAG,RELRES,ITER] = lsqr(temp,ytemp);
- X = X.';
- lsqrans = A9-X;
- lsqrans = [lsqrans ITER];
- save A10.dat lsqrans '-ascii';
- predTemp = linspace(120,300,20); %list of years
- predTemp = predTemp.'; %transpose since it was naughty before
- eqTemp = [20,1]; %hold values of y(predTemp)
- for i = 1:20
- eqTemp(i,1) = y(predTemp(i)); %plug into anon eq
- end
- nEq = @(m) 500/(1+exp(m)); %original funct
- for i = 1:20
- eqTemp(i,1) = nEq(eqTemp(i,1)); %plugging back in
- end
- eqTemp = eqTemp(1:20,1).';
- save A11.dat eqTemp '-ascii';
Advertisement
Add Comment
Please, Sign In to add comment