# PRAKTIKUM 14
`Solusi Persamaan Differensial Parsial (PDP)`

1. Persamaan Gelombang
2. Persamaan Panas
3. Persamaan Laplace
    - Dengan kondisi batas Dirichlet
    - Dengan kondisi batas Neumann

<hr style="border:2px solid black"> </hr>

# 1 Persamaan Gelombang
Suatu persamaan gelombang memiliki bentuk umum, yaitu

$\begin{align} 
u_{tt}(x,t)=c^2u_{xx}(x,t)\ \ \ \text{ untuk } 0<x<a \text{ dan } 0<t<b
\end{align}$

dengan kondisi batas

$\begin{align}\label{eq:14 gelombang batas}
\begin{split}
&u(0,t)=0\ \text{ dan }\ u(a,t)=0\\
&u(x,0)=f(x)\\
&u_t(x,0)=g(x)
\end{split}
\hskip1cm
\begin{split}
&\text{ untuk } 0\le t\le b\\
&\text{ untuk } 0\le x\le a\\
&\text{ untuk } 0< x< a\\
\end{split}
\end{align}$

## Solusi Persamaan Gelombang
Partisikan persegi $ R=\{(x,t):x\in[0,a],t\in[0,b]\} $ menjadi suatu grid yang mengandung persegi sebanyak $ n-1 \times m-1 $ dengan panjang sisi $ \Delta x=h $ dan $ \Delta t=k $. Solusi numerik dimulai dari 

$ t_1=0 $ yaitu menggunakan kondisi batas $ u(x_i,0)=f(x_i) $

dan

$ t_2 $ menggunakan persamaan $u_{i,2}=(1-r^2)f_i+kg_i+\dfrac{r^2}{2}(f_{i+1}+f_{i-1})$

Selanjutnya, akan digunakan metode beda-hingga untuk mencari hampiran solusi persamaan differensial $ u_{i,j} \approx u(x_i,t_j) $.

Formula beda-pusat untuk hampiran $ u_{tt}(x,t) $ dan $ u_{xx}(x,t) $ adalah 

$$
u_{tt}(x,t)=\dfrac{u(x,t+k)-2u(x,t)+u(x,t-k)}{k^2}+O(k^2)
$$

dan 

\begin{align} 
u_{xx}(x,t)=\dfrac{u(x+h,t)-2u(x,t)+u(x-h,t)}{h^2}+O(h^2)
\end{align}

Selanjutnya, dengan menghilangkan $ O(k^2) $ dan $ O(h^2) $ serta menggunakan $ u_{i,j} $ untuk menghampiri $ u(x_i,t_j) $, hasil substitusi kedua persamaan tersebut pada persamaan gelombang adalah

\begin{equation}
\dfrac{u_{i,j+1}-2u_{i,j}+u_{i,j-1}}{k^2}=c^2\dfrac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{h^2}
\end{equation}

Supaya lebih mudah, substitusi nilai $ r=ck/h $ , sehingga diperoleh persamaan

\begin{align} 
u_{i,j+1}=(2-2r^2)u_{i,j}+r^2(u_{i+1,j}+u_{i-1,j})-u_{i,j-1}
\end{align}

untuk $ i=2,3,\dots,n-1 $.


<p style="text-align: center"><i>Stensil Persamaan Gelombang</i></p>

Hal yang perlu diperhatikan dalam penggunaan metode beda-hingga untuk mencari nilai hampiran solusi persamaan gelombang adalah solusi yang dihasilkan tidak selalu stabil. Syarat yang diperlukan agar mendapatkan solusi yang stabil adalah nilai $ r=ck/h\le1 $.


```julia
#%%METODE BEDA PUSAT UNTUK PERSAMAAN GELOMBANG
#%
#% Digunakan untuk mencari solusi persamaan differensial
#%   parsial yaitu persamaan gelombang
#%
#% U = gelombang(f,g,a,b,c,m,n)
#% Input  : f,g  -> fungsi nilai batas
#%          a,b  -> batas atas solusi x dan t
#%          c    -> koefisien persamaan gelombang
#%          m,n  -> jumlah partisi x dan t
#% Output : U    -> solusi PDP, U(t,x)
#%
#% Digunakan Sebagai Pedoman Praktikum Metode Numerik
#%
#% Lihat juga : panas, laplace 
function gelombang(f,g,a,b,c,m,n)
  h = a/(m-1);
  x = 0:h:1;
  k = b/(n-1);
  r = c*k/h;
  U = zeros(m,n);
  for i = 2:m-1
    U[i,1] = f(x[i]);
    U[i,2] = (1-r^2)*f(x[i]) + k*g(x[i]) + r^2/2*(f(x[i+1])+f(x[i-1]));
  end
  for j = 3:n
    for i = 2:(m-1)
      U[i,j] = (2-2*r^2)*U[i,j-1] + r^2*(U[i-1,j-1] + U[i+1,j-1])-U[i,j-2];
    end
  end
  U = U';
end
```

### Contoh 1
Gunakan metode beda-hingga untuk mencari solusi persamaan gelombang dari suatu senar yang bergetar.

\begin{align*} 
u_{tt}(x,t)=4u_{xx}(x,t)\ \ \ \text{ untuk } 0<x<1 \text{ dan } 0<t<0.5
\end{align*}

dengan kondisi batas

\begin{align*} 
\begin{split}
&u(0,t)=0\ \text{ dan }\ u(1,t)=0\\
&u(x,0)=f(x)=\sin(\pi x)+\sin(2\pi x)\\
&u_t(x,0)=g(x)=0
\end{split}
\hskip1cm
\begin{split}
&\text{ untuk } 0\le t\le 0.5\\
&\text{ untuk } 0\le x\le 1\\
&\text{ untuk } 0\le x\le 1\\
\end{split}
\end{align*}

dan panjang sisi $ h=0.1 $ dan $ k=0.05 $.


```julia
# Solusi U(x,t)
f(x) = sin(pi*x)+sin(2*pi*x);
g(x) = 0;
a = 1;
b = 0.5;
c = 2;
m = 11;
t = 0:0.05:b;
n = length(t);
U = gelombang(f,g,a,b,c,m,n)
```


```julia
using Plots
```


```julia
# Plot Solusi
x = 0:0.1:a;
t = 0:0.05:b; 
gr()
plot(x,t,U,st=:wireframe,camera=(50,45))
xlabel!("x")
ylabel!("t") 
```

# 2 Persamaan Panas
Suatu persamaan panas memiliki bentuk umum, yaitu

$\begin{align} 
u_{t}(x,t)=c^2u_{xx}(x,t)\ \ \ \text{ untuk } 0<x<a \text{ dan } 0<t<b
\end{align}$

dengan kondisi batas

$\begin{align} 
\begin{split}
&u(0,t)=c_1\ \text{ dan }\ u(a,t)=c_2\\
&u(x,0)=f(x)
\end{split}
\hskip1cm
\begin{split}
&\text{ untuk } 0\le t\le b\\
&\text{ untuk } 0\le x\le a\\
\end{split}
\end{align}$

## Solusi Persamaan Panas
Partisikan persegi $ R=\{(x,t):x\in[0,a],t\in[0,b]\} $ menjadi suatu grid yang mengandung persegi sebanyak $ n-1 \times m-1 $ dengan panjang sisi $ \Delta x=h $ dan $ \Delta t=k $. Solusi numerik dimulai dari 

$ t_1=0 $ yaitu menggunakan kondisi batas $ u(x_i,t_1)=f(x_i) $.

Selanjutnya, akan digunakan metode beda-hingga untuk mencari hampiran solusi persamaan differensial untuk

\begin{align*}
\{ u_{i,j}:i=1,2,\dots,n \} \ \ \ \text{ untuk } j=2,3,\dots,m
\end{align*}

Formula beda-maju dapat digunakan untuk menghampiri $ u_t(x,t) $ dan formula beda-tengah untuk $ u_{xx}(x,t) $, yaitu

\begin{align}\label{eq:14 panas 1}
u_t(x,t)=\dfrac{u(x,t+k)-u(t,k)}{k}+O(k)
\end{align}

dan

\begin{align}\label{eq:14 panas 2}
u_{xx}(x,t)=\dfrac{u(x-h,t)-2u(x,t)+u(x+h,t)}{h^2}+O(h^2)
\end{align}

Selanjutnya, dengan menghilangkan $ O(k) $ dan $ O(h^2) $ serta menggunakan $ u_{i,j} $ untuk menghampiri $ u(x_i,t_j) $, hasil substitusi adalah

\begin{equation}\label{eq:14 panas 3}
\dfrac{u_{i,j+1}-u_{i,j}}{k}=c^2\dfrac{u_{i-1,j}-2u_{i,j}+u_{i+1,j}}{h^2}
\end{equation}

Supaya lebih mudah, substitusi $ r=c^2k/h^2 $, sehingga diperoleh persamaan

\begin{align}\label{eq:14 panas numerik}
u_{i,j+1}=(1-2r)u_{i,j}+r(u_{i-1,j}+u_{i+1,j})
\end{align}

untuk $ i=2,3,\dots,n-1 $. 


<p style="text-align: center"><i>Stensil Persamaan Panas</i></p>

Hal yang perlu diperhatikan dalam penggunaan metode beda-hingga untuk mencari nilai hampiran solusi persamaan panas adalah solusi yang dihasilkan tidak selalu stabil. Syarat yang diperlukan agar solusi yang dihasilkan stabil adalah nilai $ 0\le c^2k/h^2\le\frac{1}{2} $.



```julia
#%%METODE BEDA MAJU UNTUK PERSAMAAN PANAS
#%
#% Digunakan untuk mencari solusi persamaan differensial
#%   parsial yaitu persamaan panas
#%
#% [U,r] = panas(f,c1,c2,a,b,c,m,n)
#% Input  : f    -> fungsi nilai awal u(x,0)
#%          c1,c2-> nilai batas u(0,t) dan u(a,t)
#%          a,b  -> batas solusi x dan t
#%          c    -> koefisien persamaan panas
#%          m,n  -> jumlah titik x dan t
#% Output : U    -> solusi PDP, U(t,x)
#%
#% Digunakan Sebagai Pedoman Praktikum Metode Numerik
#%
#% Lihat juga : gelombang, laplace 
function panas(f,c1,c2,a,b,c,m,n)
  h = a/(m-1);
  k = b/(n-1);
  r = c^2*k/h^2;
  U = zeros(m,n);
  U[1,:] .= c1;
  U[m,:] .= c2;
  U[2:m-1,1] = f.(h:h:(m-2)*h)';
  for j = 2:n
    for i = 2:m-1
      U[i,j]=(1-2*r)*U[i,j-1]+ r*(U[i-1,j-1]+U[i+1,j-1]);
    end
  end
  U=U';
  return U,r
end
```

### Contoh 2
Gunakan metode beda-maju untuk mencari solusi persamaan panas

\begin{align} 
u_{t}(x,t)=u_{xx}(x,t)\ \ \ \text{ untuk } 0<x<1 \text{ dan } 0<t<0.2
\end{align}

dengan kondisi batas

\begin{align} 
\begin{split}
&u(0,t)=0\ \text{ dan }\ u(1,t)=0\\
&u(x,0)=4x-4x^2
\end{split}
\hskip1cm
\begin{split}
&\text{ untuk } 0\le t\le 0.2\\
&\text{ untuk } 0\le x\le 1\\
\end{split}
\end{align}

dengan panjang sisi $ h=0.2 $ dan $ k=0.02 $.


```julia
f(x) = 4*x - 4*x.^2;
c1 = 0;
c2 = 0;
a = 1;
b = 0.2;
c = 1 ;
m = 6;
n = 11;
U,r = panas(f,c1,c2,a,b,c,m,n)
@show r
U
```


```julia
x = 0:0.2:a
t = 0:0.02:b 
plot(x,t,U,st=:wireframe,camera=(50,45))
xlabel!("x")
ylabel!("t")
```

# 3 Persamaan Laplace
Beberapa contoh dari persamaan eliptik antara lain persamaan Laplace, Poisson, dan Helmholtz. Laplacian dari fungsi $ u(x,y) $ didefinisikan sebagai

\begin{equation}\label{eq:14 eliptik}
\nabla^2u=u_{xx}+u_{yy}
\end{equation}

Dengan notasi tersebut, persamaan Laplace, Poisson, dan Helmholtz dapat dituliskan dalam bentuk

\begin{align}
\begin{split}
&\nabla^2u=0   \\ 
&\nabla^2u=g(x,y)   \\
&\nabla^2u+f(x,y)u=g(x,y) 
\end{split}
\begin{split}
&\text{Persamaan Laplace} \\
&\text{Persamaan Poisson} \\
&\text{Persamaan Helmholtz}
\end{split}
\end{align}


## Solusi Persamaan Laplace
Dengan menerapkan hampiran beda hingga seperti pada persamaan panas dan gelombang, didapatkan persamaan 

\begin{align}\label{eq:14 laplace}
u_{i+1,j}+u_{i-1,j}+u_{i,j+1}+u_{i,j-1}-4u_{i,j}=0
\end{align}

untuk $ i=2,3,\dots,n-1 $.


<p style="text-align: center"><i>Stensil Persamaan Laplace</i></p>

Apabila dimisalkan grid berukuran $5\times5$, maka akan diperoleh


<p style="text-align: center"><i>Pembagian grid kondisi batas Dirichlet</i></p>

Dengan menerapkan persamaan stensil Laplace, jika dipilih $ p_1 $ sebagai pusat stensil yaitu $ u_{2,2} $, maka akan diperoleh persamaan $ p_2+u_{1,2}+p_4+u_{2,1}-4p_1=0 $. Selanjutnya, jika persamaan stensil Laplace diterapkan dengan pusat stensil mulai dari $ p_1 $, $ p_2 $, hingga $ p_9 $, maka akan diperoleh sistem persamaan berikut.

\begin{align}
p_2+u_{1,2}+p_4+u_{2,1}-4p_1&=0\\
p_3+p_1+p_5+u_{3,1}-4p_2&=0\\
u_{5,2}+p_2+p_6+u_{4,1}-4p_3&=0\\
p_5+u_{1,3}+p_7+p_1-4p_4&=0\\
p_6+p_4+p_8+p_2-4p_5&=0\\
u_{5,3}+p_5+p_9+p_3-4p_6&=0\\
p_8+u_{1,4}+u_{2,5}+p_4-4p_7&=0\\
p_9+p_7+u_{3,5}+p_5-4p_8&=0\\
u_{5,4}+p_8+u_{4,5}+p_6-4p_9&=0
\end{align}


Dalam notasi matriks, sistem persamaan linear tersebut dapat ditulis menjadi

$\begin{align}
\begin{bmatrix}
-4 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
 1 &-4 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\
 0 & 1 &-4 & 0 & 0 & 1 & 0 & 0 & 0 \\
 1 & 0 & 0 &-4 & 1 & 0 & 1 & 0 & 0 \\
 0 & 1 & 0 & 1 &-4 & 1 & 0 & 1 & 0 \\
 0 & 0 & 1 & 0 & 1 &-4 & 0 & 0 & 1 \\
 0 & 0 & 0 & 1 & 0 & 0 &-4 & 1 & 0 \\
 0 & 0 & 0 & 0 & 1 & 0 & 1 &-4 & 1 \\
 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 &-4 \\
\end{bmatrix}
\begin{bmatrix}
p_1\\p_2\\p_3\\p_4\\p_5\\p_6\\p_7\\p_8\\p_9
\end{bmatrix}
=
\begin{bmatrix}
-u_{2,1}-u_{1,2}\\
-u_{3,1}\\
-u_{4,1}-u_{5,2}\\
-u_{1,3}\\
0\\
-u_{5,3}\\
-u_{2,5}-u_{1,4}\\
-u_{3,5}\\
-u_{4,5}-u_{5,4}\\
\end{bmatrix}
\end{align}$

Solusi interior $ p_1 $, $ p_2 $, hingga $ p_9 $ dapat diperoleh dengan menyelesaikan SPL di atas.


```julia
function dirichlet(f1,f2,f3,f4,a,b,h)
  maxi = 100;
  tol = 1e-7;
  n = Int(a/h)+1;
  m = Int(b/h)+1;
  U = (a*(f1(0)+f2(0))+b*(f3(0)+f4(0)))/(2*a+2*b).+ones(n,m);
  # Masalah nilai batas 
  U[1:n,1]=f1.(0:h:(n-1)*h);
  U[1:n,m]=f2.(0:h:(n-1)*h);
  U[1,1:m]=f3.(0:h:(m-1)*h);
  U[n,1:m]=f4.(0:h:(m-1)*h);
  U[1,1]=(U[1,2]+U[2,1])/2;
  U[1,m]=(U[1,m-1]+U[2,m])/2;
  U[n,1]=(U[n-1,1]+U[n,2])/2;
  U[n,m]=(U[n-1,m]+U[n,m-1])/2;
  w = 4/(2+sqrt(4-(cos(pi/(n-1))+cos(pi/(m-1)))^2));
  err=1;   iter=0;
  while (err>tol)&&(iter<=maxi)
    err = 0;
    for j = 2:m-1
      for i = 2:n-1
        relx = w*(U[i,j+1]+U[i,j-1]+U[i+1,j]+U[i-1,j]-4*U[i,j])/4;
        U[i,j]=U[i,j]+relx;
        if err<=abs(relx)
          err=abs(relx);
        end
      end
    end
    iter=iter+1;
  end
  U = U';
end
```

### Contoh 3 - Kondisi Batas Dirichlet
Diberikan persamaan Laplace $\nabla^2 u=0$ pada daerah persegi $R=\{(x,y)│0\le x\le 4, 0\le y\le 4\}$

dengan $u(x,y)$ menyatakan suhu pada titik $(x,y)$ dan nilai-nilai batas Dirichlet berikut:

$u(x,0)=20$ untuk $0<x<4$,

$u(x,4)=180$ untuk $0<x<4$,

$u(0,y)=80$ untuk $0\le y<4$,

$u(4,y)=0$ untuk $0\le y<4$.

Berikut merupakan langkah-langkah untuk menghitung solusi numerik dari masalah persamaan Laplace di atas menggunakan

1. sistem linear yang terbentuk dari stensil persamaan laplace dengan $ h=1 $ 
2. metode dirichlet pada fungsi `dirichlet` dengan $ h=1 $ dan $ h=0.1 $ 
    
serta gambar solusi numerik dalam grafik 3 dimensi.

**Langkah 1** Pendefinisian SPL berdasarkan stensil yang diperoleh dengan $ h=1 $.}

Karena digunakan nilai $ h=1 $, jumlah grid yang akan terbentuk adalah $ 5 \times 5 $ dengan pembagian grid seperti pada gambar di bawah ini.


<p style="text-align: center"><i>Pembagian grid kondisi batas Dirichlet Contoh 3</i></p>

Dengan demikian, berdasarkan stensil komputasi Laplace diperoleh SPL sebagai berikut.

$\begin{align}
\begin{bmatrix}
-4 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
1 &-4 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\
0 & 1 &-4 & 0 & 0 & 1 & 0 & 0 & 0 \\
1 & 0 & 0 &-4 & 1 & 0 & 1 & 0 & 0 \\
0 & 1 & 0 & 1 &-4 & 1 & 0 & 1 & 0 \\
0 & 0 & 1 & 0 & 1 &-4 & 0 & 0 & 1 \\
0 & 0 & 0 & 1 & 0 & 0 &-4 & 1 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 & 1 &-4 & 1 \\
0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 &-4 \\
\end{bmatrix}
\begin{bmatrix}
p_1\\p_2\\p_3\\p_4\\p_5\\p_6\\p_7\\p_8\\p_9
\end{bmatrix}
=
\begin{bmatrix}
-100\\
-20 \\
-20\\
-80\\
0\\
-0\\
-260\\
-180\\
-180\\
\end{bmatrix}
\end{align}$


**Langkah 2** Selesaikan sistem linear di atas untuk mendapatkan solusi interior dari masalah persamaan Laplace yang diberikan.


```julia
A = [ -4 1 0 1 0 0 0 0 0
      1 -4 1 0 1 0 0 0 0
      0 1 -4 0 0 1 0 0 0
      1 0 0 -4 1 0 1 0 0
      0 1 0 1 -4 1 0 1 0
      0 0 1 0 1 -4 0 0 1
      0 0 0 1 0 0 -4 1 0
      0 0 0 0 1 0 1 -4 1
      0 0 0 0 0 1 0 1 -4]
B = [-100;-20;-20;-80;0;0;-260;-180;-180]
P = A\B
```

**Langkah 3** Ubah solusi interior tersebut ke bentuk matriks dan sisipkan kondisi batas di setiap sisi


```julia
reshape(P,3,3)'
```


```julia
U = zeros(5,5)
# interior
U[2:end-1,2:end-1] = reshape(P,3,3)'
# sepanjang tepi
U[1,2:end-1] .= 20
U[end,2:end-1] .= 180
U[2:end-1,1] .= 80
U[2:end-1,end] .= 0
# titik pojok
U[1,1] = (U[1,2]+U[2,1])/2
U[1,end] = (U[1,end-1]+U[2,end])/2
U[end,1] = (U[end-1,1]+U[end,2])/2
U[end,end] = (U[end-1,end]+U[end,end-1])/2
U
```

**Langkah 4** Penyelesaian persamaan Laplace di atas menggunakan metode Dirichlet pada fungsi `dirichlet` dengan ukuran langkah $ h=1 $.


```julia
f1(x)= 20+0*x;
f2(x)= 180+0*x;
f3(y)= 80+0*y;
f4(y)= 0*y;
a=4;
b=4;
h = 1;
U = dirichlet(f1,f2,f3,f4,a,b,h)
```


```julia
x = 0:4
y = 0:4
plot(x,y,U,st=:wireframe,camera=(50,45))
xlabel!("x")
ylabel!("y") 
```

**Langkah 5** Penyelesaian persamaan Laplace di atas menggunakan metode Dirichlet pada fungsi `dirichlet` dengan ukuran langkah $ h=0.1 $.


```julia
f1(x)= 20+0*x;
f2(x)= 180+0*x;
f3(y)= 80+0*y;
f4(y)= 0*y;
a=4;
b=4;
h = 0.1;
U = dirichlet(f1,f2,f3,f4,a,b,h)
```


```julia
x = 0:h:4
y = 0:h:4
plot(x,y,U,st=:wireframe,camera=(50,45))
xlabel!("x")
ylabel!("y") 
```

### Contoh 4 - Kondisi Batas Neumann
Diberikan persamaan Laplace $\nabla^2 u=0$ pada daerah persegi $R=\{(x,y)│0\le x\le 4, 0\le y\le 4\}$

dengan $u(x,y)$ menyatakan suhu pada titik $(x,y)$ dan nilai-nilai batas Neumann berikut:

$u_y(x,0)=0$ untuk $0<x<4$,

$u(x,4)=180$ untuk $0<x<4$,

$u(0,y)=80$ untuk $0\le y <4$,

$u(4,y)=0$ untuk $0\le y<4$.

Berikut merupakan langkah-langkah untuk menghitung solusi numerik dari masalah persamaan Laplace di atas menggunakan
sistem linear yang terbentuk dari stensil persamaan laplace dan Neumann dengan $ h=1 $ 
serta gambar solusi numerik dalam grafik 3 dimensi.

**Langkah 1** Pendefinisian SPL berdasarkan stensil yang diperoleh dengan $ h=1 $.

Karena digunakan nilai $ h=1 $, jumlah grid yang akan terbentuk adalah $ 5 \times 5 $ dengan pembagian grid seperti pada gambar berikut.


<p style="text-align: center"><i>Pembagian grid kondisi batas campuran Dirichlet dan Neumann Contoh 4</i></p>

dan sistem persamaan linear yang berkorespondensi adalah 

$\begin{align}
\begin{bmatrix}
-4 & 1 & 0 & 2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
 1 &-4 & 1 & 0 & 2 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
 0 & 1 &-4 & 0 & 0 & 2 & 0 & 0 & 0 & 0 & 0 & 0\\
 1 & 0 & 0 &-4 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\
 0 & 1 & 0 & 1 &-4 & 1 & 0 & 1 & 0 & 0 & 0 & 0\\
 0 & 0 & 1 & 0 & 1 &-4 & 0 & 0 & 1 & 0 & 0 & 0\\
 0 & 0 & 0 & 1 & 0 & 0 &-4 & 1 & 0 & 1 & 0 & 0\\
 0 & 0 & 0 & 0 & 1 & 0 & 1 &-4 & 1 & 0 & 1 & 0\\
 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 &-4 & 0 & 0 & 1\\
 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 &-4 & 1 & 0\\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 &-4 & 1\\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 &-4\\
\end{bmatrix}
\begin{bmatrix}
q_1\\q_2\\q_3\\q_4\\q_5\\q_6\\q_7\\q_8\\q_9\\q_{10}\\q_{11}\\q_{12}\\
\end{bmatrix}=
\begin{bmatrix}
-8\\0\\0\\-80\\0\\0\\-80\\0\\0\\-260\\-180\\-180\\
\end{bmatrix}
\end{align}$

Perhatikan titik $q_1$. Pada titik tersebut berlaku batas Neumann yaitu $𝑢_y(x,0)=0$. Dengan formula beda pusat, misalkan terdapat variable dummy $q_{-1}$ dibawah $q_1$, sehingga akan diperoleh

\begin{align}
u_y(x,0)&=0\\
\dfrac{q_4-q_{-1}}{2\Delta y}&=0\\
q_{-1} &= q_{4}
\end{align}

Dengan demikian persamaan dengan $q_1$ sebagai pusat adalah 

$80-4q_1+q_2+2q_4=0$

hal serupa berlaku untuk $q_2$ dan $q_3$

**Langkah 2** Selesaikan sistem linear di atas untuk mendapatkan solusi interior dan tepi dengan batas Neumann dari masalah persamaan Laplace yang diberikan.


```julia
A = [ -4 1 0 2 0 0 0 0 0 0 0 0
      1 -4 1 0 2 0 0 0 0 0 0 0
      0 1 -4 0 0 2 0 0 0 0 0 0 
      1 0 0 -4 1 0 1 0 0 0 0 0
      0 1 0 1 -4 1 0 1 0 0 0 0
      0 0 1 0 1 -4 0 0 1 0 0 0
      0 0 0 1 0 0 -4 1 0 1 0 0
      0 0 0 0 1 0 1 -4 1 0 1 0
      0 0 0 0 0 1 0 1 -4 0 0 1
      0 0 0 0 0 0 1 0 0 -4 1 0
      0 0 0 0 0 0 0 1 0 1 -4 1
      0 0 0 0 0 0 0 0 1 0 1 -4]
B = [-80;0;0;-80;0;0;-80;0;0;-260;-180;-180]
q = A\B
```

**Langkah 3** Ubah solusi interior tersebut ke bentuk matriks dan sisipkan kondisi batas di setiap sisi


```julia
reshape(q,3,4)'
```


```julia
U = zeros(5,5)
# interior
U[1:end-1,2:end-1] = reshape(q,3,4)'

# sepanjang tepi
U[end,2:end-1] .= 180
U[2:end-1,1] .= 80
U[2:end-1,end] .= 0
# titik pojok
U[1,1] = (U[1,2]+U[2,1])/2
U[1,end] = (U[1,end-1]+U[2,end])/2
U[end,1] = (U[end-1,1]+U[end,2])/2
U[end,end] = (U[end-1,end]+U[end,end-1])/2
U
```


```julia
x = 0:4
y = 0:4
plot(x,y,U,st=:wireframe,camera=(50,45))
xlabel!("x")
ylabel!("y")

```

<hr style="border:2px solid black"> </hr>

# Soal Latihan
Kerjakan soal berikut pada saat kegiatan praktikum berlangsung.

`Nama: ________`

`NIM: ________`

### Soal 1
Diberikan suatu persamaan gelombang dari senar yang bergetar seperti berikut.

$u_{tt}(x,t)=4u_{xx}(x,t)$ dengan $0<x<2$ dan $0<t<1$

dengan batas

$\begin{align}
\begin{split}
&u(0,t)=0\ \text{ dan }\ u(2,t)=0\\
&u(x,0)=f(x)=-\sin(\pi x)/(x+1)\\
&u_t(x,0)=g(x)=0
\end{split}
\hskip1cm
\begin{split}
&\text{ untuk } 0\le t\le 1\\
&\text{ untuk } 0\le x\le 2\\
&\text{ untuk } 0\le x\le 2\\
\end{split}
\end{align}$ 

Hitung solusi numerik dari masalah persamaan gelombang di atas menggunakan ukuran langkah $ h=0.1 $ dan $ k=0.05 $, kemudian gambarkan solusi numerik dalam suatu grafik 3 dimensi dengan langkah-langkah seperti pada **Contoh 1**.


```julia

```

### Soal 2
Diberikan suatu persamaan panas seperti berikut.

$u_{t}(x,t)=u_{xx}(x,t)$ untuk $0<x<1$ dan $0<t<0.1$

dengan kondisi awal
dan kondisi batas


\begin{align}
\begin{split}
&u(x,0)=f(x)=-\sin(2\pi x)\\
&u(0,t)=0\ \text{ dan }\ u(1,t)=-1\\
\end{split}
\hskip1cm
\begin{split}
&\text{ untuk } 0\le x\le 1\\
&\text{ untuk } 0\le t\le 0.1\\
\end{split}
\end{align}

Hitung solusi numerik dari masalah persamaan panas di atas menggunakan ukuran langkah $ h=0.1 $ dan $ k=0.005 $, kemudian gambarkan solusi numerik dalam suatu grafik 3 dimensi dengan langkah-langkah seperti pada **Contoh 2**.


```julia

```

### Soal 3
Diketahui suatu persamaan Laplace seperti berikut.

$$u_{xx}+u_{yy}=0$$

dimana $ R=\left\{\left(x,y\right)\ |\ 0\le x\le 3,\ 0\le y\le 3\right\} $ dengan masalah nilai batas

$u(x,0)=10$ 	dan 
$u(x,3)=90$ 	untuk $0<x<3$

$u(0,y)=70$ 	dan 
$u(3,y)= 0$ 	untuk $0<y<3$

Hitung solusi numerik dari masalah persamaan Laplace di atas menggunakan

1. sistem linear yang terbentuk dari stensil dengan $ h=1 $
2. metode dirichlet pada fungsi `dirichlet` dengan $ h=1 $ dan  $ h=0.1 $

serta gambar solusi numerik dalam grafik 3 dimensi dengan langkah-langkah seperti pada **Contoh 3**.


```julia

```

### Soal 4
Diketahui suatu persamaan Laplace seperti berikut.

$$u_{xx}+u_{yy}=0$$

dimana $ R=\left\{\left(x,y\right)\ |\ 0\le x\le 3,\ 0\le y\le 3\right\} $ dengan masalah nilai batas

$u(x,0)=10$ 	dan 
$u_y(x,3)=0$ 	untuk $0<x<3$

$u(0,y)=70$ 	dan 
$u_x(3,y)= 0$ 	untuk $0<y<3$

Hitung solusi numerik dari masalah persamaan Laplace di atas menggunakan sistem persamaan linear yang terbentuk dari stensil persamaan Laplace dan Neumann dengan $ h=1 $ serta gambar solusi numerik dalam grafik 3 dimensi dengan langkah-langkah seperti pada **Contoh 4**.


```julia

```

3faca3257d47d29c6be7efd9b4784ea086ab6200
ipynb
Jupyter Notebook
notebookpraktikum/Praktikum 14.ipynb
mkhoirun-najiboi/metnum.jl
a6e35d04dc277318e32256f9b432264157e9b8f4
MIT
notebookpraktikum/Praktikum 14.ipynb
mkhoirun-najiboi/metnum.jl
a6e35d04dc277318e32256f9b432264157e9b8f4
MIT
notebookpraktikum/Praktikum 14.ipynb
mkhoirun-najiboi/metnum.jl
a6e35d04dc277318e32256f9b432264157e9b8f4
MIT
Qwen/Qwen-72B
1. YES
2. YES