Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.06 KB | None | 0 0
  1. function [x,w]=db8d2(a,b,n,alpha1,alpha2,alpha3,beta1,beta2,beta3,p,q,r)
  2.     h=(b-a)/n;
  3.     x=a:h:b;
  4.     A=zeros(n+1,n+1);
  5.     b=zeros(n+1,1);
  6.     for i=1:n+1
  7.         l(i)=-1-0.5*h*p(x(i));
  8.         d(i)= 2 + h.^2 * q(x(i));
  9.         u(i)= -1 + 0.5*h*p(x(i));
  10.     end
  11.     if alpha2 == 0
  12.         A(1,1)=1;
  13.         b(1)=alpha3/alpha1;
  14.     else
  15.         A(1,1)=d(1)+2*h*l(1)*alpha1/alpha2;
  16.         A(1,2)=-2;
  17.         b(1)=-h^2*r(x(1))+2*h*l(1)*alpha3/alpha2;
  18.     end
  19.     if beta2 == 0
  20.         A(n+1,n+1) = 1;
  21.         b(n+1) = beta3/beta1;
  22.     else
  23.         A(n+1,n) = -2;
  24.         A(n+1,n+1) = d(n+1) - 2*h*u(n+1)*(beta1/beta2);
  25.         b(n+1) = -(h.^2*r(x(n+1))) - (2*h*u(n+1)*(beta3/beta2));
  26.     end
  27.     for i=2:n
  28.         A(i,i-1) = l(i-1);
  29.         A(i,i) = d(i-1);
  30.         A(i,i+1) = u(i-1);;
  31.         b(i) = -(h.^2*r(x(i-1)));
  32.     end
  33.     w=A\b;
  34.     plot(x,w);
  35. end
  36. %keyrsla 1
  37. % p = @(x) -2; q = @(x) 3; r = @(x) 0;
  38. % db8d2(0,1,100,1,0,exp(3),1,0,1, p,q,r)
  39. %
  40. %keyrsla 2
  41. % p = @(x) -2*x; q = @(x) 3*x; r = @(x) 0;
  42. % db8d2(-1,1,100, 1,1,exp(3),1,1,-1,p,q,r)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement