Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. //Write Functions.
  2.  
  3. function [D1,D2] = matder(h,N)
  4. h2 = 2*h;
  5. hs = h^2;
  6. D1 = zeros(N,N);
  7. D2 = zeros(N,N);
  8. for i = 2:N-1
  9. D1(i,i-1)=-1;
  10. D1(i,i+1)=1;
  11. D1(1,1) = -3;
  12. D1(1,2) = 4;
  13. D1(1,3) = -1;
  14. D1(N,N) = 3;
  15. D1(N,N-1) = -4;
  16. D1(N,N-2) = 1;
  17. D2(i,i-1)=1;
  18. D2(i,i)=-2;
  19. D2(i,i+1)=1;
  20. end
  21. D1 = D1/h2;
  22. D2 = D2/hs;
  23. endfunction
  24.  
  25. function t = tf(r,q)
  26. if q(6) == 1
  27. t = 1;
  28. else
  29. t = (q(1)*q(2))/r;
  30. end
  31. endfunction
  32.  
  33. function C=Cf(r,q)
  34. if q(6) == 1
  35. C = 1/r;
  36. else
  37. dtr = -(q(1)*q(2))/(r^2);
  38. C = (1-((r/t)*dtr))/r;
  39. end
  40. endfunction
  41.  
  42. function D=Df(r,q)
  43. if q(6) == 1
  44. D = -1/(r^2);
  45. else
  46. dtr = -(q(1)*q(2))/(r^2);
  47. D = ((((q(3)*r)/t)*dtr)-1)/(r^2);
  48. end
  49. endfunction
  50.  
  51. function E = Ef(r,q)
  52. if q(6) == 1
  53. t = 1;
  54. else
  55. t = (q(1)*q(2))/r;
  56. end
  57. E = -((3+q(3))*(q(4)^2)*q(5)*r*t);
  58. endfunction
  59.  
  60.  
  61.  
  62.  
  63. //Input.
  64. a = 4;
  65. b = 12;
  66. N = 6;
  67. ca = 0;
  68. da = 1;
  69. ea = 0;
  70. cb = 0;
  71. db = 1;
  72. eb = 0;
  73. ta= 2;
  74. mu= 0.3;
  75. omega= ((4000*%pi)/30);
  76. rho= 0.28;
  77. r = linspace(a,b,N);
  78. h = r(2)-r(1);
  79. selector = 1
  80. q = [ta,a,mu,omega,rho,selector]; //[ta,a,mu,omega,rho,selector]
  81.  
  82. //Data Setup.
  83.  
  84. C = zeros(N,N);
  85. D = zeros(N,N);
  86. E = zeros(N,1);
  87. for j = 2:N-1
  88. C(j,j) = Cf(r(j),q);
  89. D(j,j) = Df(r(j),q);
  90. E(j) = Ef(r(j),q);
  91. end
  92.  
  93. //Call the matder for D1 and D2.
  94.  
  95. [D1,D2] = matder(h,N);
  96.  
  97. //Assemble A.
  98. A = D2 + C*D1 + D;
  99.  
  100. //Apply Boundary Conditions
  101. A(1,1) = 1; //E(1) = 0
  102. A(N,N) = 1; //E(N) = 0
  103.  
  104. //Solve for Y.
  105.  
  106. Y = A\E;
  107.  
  108. //Finding st and sr.
  109. sr = Y/(r'*t);
  110. D1b = D1;
  111. D1b(1,1) = da - 3*ca/(2*h);
  112. D1b(1,2) = 2*ca/h;
  113. D1b(1,3) = -ca/(2*h);
  114.  
  115. D1b(N,N-2) = cb/(2*h);
  116. D1b(N,N-1) = -2*cb/h;
  117. D1b(N,N) = db + 3*cb/(2*h);
  118.  
  119. E(1) = ea;
  120. E(N) = eb;
  121.  
  122. Yp = D1b * Y;
  123. st = Yp + q(5)*(q(4)^2)*(r'^2);
  124.  
  125. // Plot
  126. Y
  127. A
  128. E
  129. sr
  130. D1b
  131. Yp
  132. st
  133. plot(r,st,'*',r,sr,'*')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement