Difference between revisions of "Muhammad Hasfi Rizki Nur"
Line 37: | Line 37: | ||
== Pertemuan 2 (18 November 2020) == | == Pertemuan 2 (18 November 2020) == | ||
Pada kegiatan pembelajaran mata kuliah metode numerik hari ini. Bapak Ahmad Indra mengawali dengan mereview tugas yang diberikan pada pertemuan minggu lalu. Review tersebut mengenai software Open Modelica dan perhitungan yang masing - masing mahasiswa lakukan. | Pada kegiatan pembelajaran mata kuliah metode numerik hari ini. Bapak Ahmad Indra mengawali dengan mereview tugas yang diberikan pada pertemuan minggu lalu. Review tersebut mengenai software Open Modelica dan perhitungan yang masing - masing mahasiswa lakukan. | ||
+ | |||
+ | Berikut ini adalah contoh penerapan aplikasi OpenModelica untuk membuat 4 algoritma metode numerik dalam mencari ''roots of equation'' (akar persamaan) dari: | ||
+ | |||
+ | <div class="center" style="width: auto; margin-left: auto; margin-right: auto;"> | ||
+ | |||
+ | ''f(x) = exp^(-x)-(x)'' | ||
+ | |||
+ | ''f'(x) = -exp^(-x)-1'' | ||
+ | |||
+ | ''error maksimum = 0.0000001'' | ||
+ | |||
+ | </div> | ||
+ | |||
+ | ===1) Newton Raphson (Terbuka)=== | ||
+ | |||
+ | model Newton_Raphson_Algorithm | ||
+ | |||
+ | parameter Real g=1; //guess | ||
+ | parameter Integer N=20; //max iteration | ||
+ | parameter Real er=0.0000001; //error maximum | ||
+ | Real a[N]; | ||
+ | Real y[N];//function | ||
+ | Real ER[N]; //error | ||
+ | Real sol; //solution | ||
+ | |||
+ | algorithm | ||
+ | |||
+ | a[1]:=g; | ||
+ | y[1]:=a[1]-(exp(-a[1])-a[1])/(-exp(-a[1])-1); | ||
+ | ER[1]:=abs(1-a[1]/y[1]); | ||
+ | |||
+ | for i in 2:N loop | ||
+ | a[i]:=y[i-1]; | ||
+ | y[i]:=a[i]-(exp(-a[i])-a[i])/(-exp(-a[i])-1); | ||
+ | ER[i]:=abs(1-y[i-1]/y[i]); | ||
+ | |||
+ | if ER[i]<er then | ||
+ | sol:=y[i]; | ||
+ | break; | ||
+ | end if; | ||
+ | end for; | ||
+ | |||
+ | end Newton_Raphson_Algorithm; | ||
+ | |||
+ | ===2) Secant (Terbuka)=== | ||
+ | |||
+ | model Secant_Algorithm | ||
+ | |||
+ | parameter Real a=0; //guess | ||
+ | parameter Real b=1; //guess | ||
+ | parameter Integer N=10; //max iteration | ||
+ | parameter Real er=0.0000001; //error maximum | ||
+ | Real A[N]; | ||
+ | Real B[N]; | ||
+ | Real y[N]; | ||
+ | Real ER[N]; | ||
+ | Real sol; //solution | ||
+ | |||
+ | algorithm | ||
+ | |||
+ | A[1]:=a; | ||
+ | B[1]:=b; | ||
+ | y[1]:=B[1]-(exp(-B[1])-B[1])*(A[1]-B[1])/((exp(-A[1])-A[1])-(exp(-B[1])-B[1])); | ||
+ | ER[1]:=abs(1-B[1]/y[1]); | ||
+ | |||
+ | for i in 2:N loop | ||
+ | A[i]:=B[i-1]; | ||
+ | B[i]:=y[i-1]; | ||
+ | y[i]:=B[i]-(exp(-B[i])-B[i])*(A[i]-B[i])/((exp(-A[i])-A[i])-(exp(-B[i])-B[i])); | ||
+ | ER[i]:=abs(1-y[i-1]/y[i]); | ||
+ | |||
+ | if ER[i]<er then | ||
+ | sol:=y[i]; | ||
+ | break; | ||
+ | |||
+ | end if; | ||
+ | end for; | ||
+ | |||
+ | end Secant_Algorithm; | ||
+ | |||
+ | ===3) Bisection (Tertutup)=== | ||
+ | |||
+ | model Bisection_Algorithm | ||
+ | |||
+ | parameter Real a=0; //guess bawah | ||
+ | parameter Real b=1; //guess atas | ||
+ | parameter Integer N=50; //max iteration | ||
+ | parameter Real er=0.0000001; //error maximum | ||
+ | Real fa=(exp(-a)-a); | ||
+ | Real fb=(exp(-b)-b); | ||
+ | Real A[N]; | ||
+ | Real B[N]; | ||
+ | Real fy[N]; | ||
+ | Real y[N]; | ||
+ | Real ER[N]; | ||
+ | Real sol; //solution | ||
+ | |||
+ | algorithm | ||
+ | |||
+ | if fa*fb<0 then | ||
+ | |||
+ | A[1]:=a; | ||
+ | B[1]:=b; | ||
+ | y[1]:=(A[1]+B[1])/2; | ||
+ | fy[1]:=exp(-y[1])-y[1]; | ||
+ | ER[1]:=1; | ||
+ | |||
+ | for i in 2:N loop | ||
+ | if fy[i-1]>0 then | ||
+ | A[i]:=y[i-1]; | ||
+ | B[i]:=B[i-1]; | ||
+ | else | ||
+ | A[i]:=A[i-1]; | ||
+ | B[i]:=y[i-1]; | ||
+ | end if; | ||
+ | |||
+ | y[i]:=(A[i]+ B[i])/2; | ||
+ | fy[i]:=exp(-y[i])-y[i]; | ||
+ | ER[i]:=abs(1-y[i-1]/y[i]); | ||
+ | |||
+ | if ER[i]<er then | ||
+ | sol:=y[i]; | ||
+ | break; | ||
+ | end if; | ||
+ | |||
+ | end for; | ||
+ | end if; | ||
+ | |||
+ | end Bisection_Algorithm; | ||
+ | |||
+ | ===4) Regula Falsi (Tertutup)=== | ||
+ | |||
+ | model Regula_Falsi_Algorithm | ||
+ | |||
+ | parameter Real a=0; //guess bawah | ||
+ | parameter Real b=1; //guess atas | ||
+ | parameter Integer N=20; //max iteration | ||
+ | parameter Real er=0.0000001; //error maximum | ||
+ | Real A[N]; | ||
+ | Real B[N]; | ||
+ | Real fa[N]; | ||
+ | Real fb[N]; | ||
+ | Real fy[N]; | ||
+ | Real y[N]; | ||
+ | Real ER[N]; | ||
+ | Real sol; //solution | ||
+ | |||
+ | algorithm | ||
+ | |||
+ | A[1]:=a; | ||
+ | B[1]:=b; | ||
+ | fa[1]:=exp(-A[1])-A[1]; | ||
+ | fb[1]:=exp(-B[1])-B[1]; | ||
+ | |||
+ | if fa[1]*fb[1]<0 then | ||
+ | |||
+ | y[1]:=(A[1]*fb[1]-B[1]*fa[1])/(fb[1]-fa[1]); | ||
+ | fy[1]:=exp(-y[1])-y[1]; | ||
+ | ER[1]:=1; | ||
+ | |||
+ | for i in 2:N loop | ||
+ | if fy[i-1]>0 then | ||
+ | A[i]:=y[i-1]; | ||
+ | B[i]:=B[i-1]; | ||
+ | else | ||
+ | A[i]:=A[i-1]; | ||
+ | B[i]:=y[i-1]; | ||
+ | end if; | ||
+ | |||
+ | fa[i]:=exp(-A[i])-A[i]; | ||
+ | fb[i]:=exp(-B[i])-B[i]; | ||
+ | y[i]:=(A[i]*fb[i]-B[i]*fa[i])/(fb[i]-fa[i]); | ||
+ | fy[i]:=exp(-y[i])-y[i]; | ||
+ | ER[i]:=abs(1-y[i-1]/y[i]); | ||
+ | |||
+ | if ER[i]<er then | ||
+ | sol:=y[i]; | ||
+ | break; | ||
+ | end if; | ||
+ | end for; | ||
+ | end if; | ||
+ | |||
+ | end Regula_Falsi_Algorithm; | ||
'''Tugas Video''' | '''Tugas Video''' | ||
− | Berikut video yang sudah saya buat https://youtu.be/Q8-usKi9NsM | + | Berikut video yang sudah saya buat: https://youtu.be/Q8-usKi9NsM |
Revision as of 14:20, 2 December 2020
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ
السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُ
Biodata Diri
Nama: Muhammad Hasfi Rizki Nur
NPM : 1806201163
TTL : Jakarta, 26 Oktober 2000
Saya mahasiswa prodi Teknik Mesin Universitas Indonesia angkatan 2018. Saat ini saya sedang menempuh kuliah pada semester kelima.
Alasan saya memilih prodi ini adalah saya tertarik belajar dan bekerja di bidang energi dan ingin memberikan dampak yang baik kepada perkembangan teknologi energi di Indonesia.
Contents
Pertemuan 1 (11 November 2020)
Materi pertemuan pertama
Pada pertemuan pertama, Bapak Ahmad Indra memberikan penjelasan bagaiman mengoperasikan situs wiki air dan memberikan 4 poin tujuan pembelajaran Metode Numerik saat ini. Keempat poin tersebut adalah:
- Mempelajari dan memahami konsep dasar dari pelajaran Metode Numerik.
- Mampu menerapkan pemahaman konsep kedalam permodelan numerik.
- Mengaplikasikan metode numerik dengan output yang berasal dari persoalan seputar Teknik Mesin.
- Mengevaluasi diri sendiri sehingga menjadi orang yang lebih beradab sesuai Sila kedua dari Pancasila.
Tugas Video
Diberikan tugas berupa menjelaskan perangkat lunak OpenModelica dan pengoperasikannya. Berikut video yang sudah saya buat:
Pertemuan 2 (18 November 2020)
Pada kegiatan pembelajaran mata kuliah metode numerik hari ini. Bapak Ahmad Indra mengawali dengan mereview tugas yang diberikan pada pertemuan minggu lalu. Review tersebut mengenai software Open Modelica dan perhitungan yang masing - masing mahasiswa lakukan.
Berikut ini adalah contoh penerapan aplikasi OpenModelica untuk membuat 4 algoritma metode numerik dalam mencari roots of equation (akar persamaan) dari:
f(x) = exp^(-x)-(x)
f'(x) = -exp^(-x)-1
error maksimum = 0.0000001
1) Newton Raphson (Terbuka)
model Newton_Raphson_Algorithm parameter Real g=1; //guess parameter Integer N=20; //max iteration parameter Real er=0.0000001; //error maximum Real a[N]; Real y[N];//function Real ER[N]; //error Real sol; //solution algorithm a[1]:=g; y[1]:=a[1]-(exp(-a[1])-a[1])/(-exp(-a[1])-1); ER[1]:=abs(1-a[1]/y[1]); for i in 2:N loop a[i]:=y[i-1]; y[i]:=a[i]-(exp(-a[i])-a[i])/(-exp(-a[i])-1); ER[i]:=abs(1-y[i-1]/y[i]); if ER[i]<er then sol:=y[i]; break; end if; end for; end Newton_Raphson_Algorithm;
2) Secant (Terbuka)
model Secant_Algorithm parameter Real a=0; //guess parameter Real b=1; //guess parameter Integer N=10; //max iteration parameter Real er=0.0000001; //error maximum Real A[N]; Real B[N]; Real y[N]; Real ER[N]; Real sol; //solution algorithm A[1]:=a; B[1]:=b; y[1]:=B[1]-(exp(-B[1])-B[1])*(A[1]-B[1])/((exp(-A[1])-A[1])-(exp(-B[1])-B[1])); ER[1]:=abs(1-B[1]/y[1]); for i in 2:N loop A[i]:=B[i-1]; B[i]:=y[i-1]; y[i]:=B[i]-(exp(-B[i])-B[i])*(A[i]-B[i])/((exp(-A[i])-A[i])-(exp(-B[i])-B[i])); ER[i]:=abs(1-y[i-1]/y[i]); if ER[i]<er then sol:=y[i]; break; end if; end for; end Secant_Algorithm;
3) Bisection (Tertutup)
model Bisection_Algorithm parameter Real a=0; //guess bawah parameter Real b=1; //guess atas parameter Integer N=50; //max iteration parameter Real er=0.0000001; //error maximum Real fa=(exp(-a)-a); Real fb=(exp(-b)-b); Real A[N]; Real B[N]; Real fy[N]; Real y[N]; Real ER[N]; Real sol; //solution algorithm if fa*fb<0 then A[1]:=a; B[1]:=b; y[1]:=(A[1]+B[1])/2; fy[1]:=exp(-y[1])-y[1]; ER[1]:=1; for i in 2:N loop if fy[i-1]>0 then A[i]:=y[i-1]; B[i]:=B[i-1]; else A[i]:=A[i-1]; B[i]:=y[i-1]; end if; y[i]:=(A[i]+ B[i])/2; fy[i]:=exp(-y[i])-y[i]; ER[i]:=abs(1-y[i-1]/y[i]); if ER[i]<er then sol:=y[i]; break; end if; end for; end if; end Bisection_Algorithm;
4) Regula Falsi (Tertutup)
model Regula_Falsi_Algorithm parameter Real a=0; //guess bawah parameter Real b=1; //guess atas parameter Integer N=20; //max iteration parameter Real er=0.0000001; //error maximum Real A[N]; Real B[N]; Real fa[N]; Real fb[N]; Real fy[N]; Real y[N]; Real ER[N]; Real sol; //solution algorithm A[1]:=a; B[1]:=b; fa[1]:=exp(-A[1])-A[1]; fb[1]:=exp(-B[1])-B[1]; if fa[1]*fb[1]<0 then y[1]:=(A[1]*fb[1]-B[1]*fa[1])/(fb[1]-fa[1]); fy[1]:=exp(-y[1])-y[1]; ER[1]:=1; for i in 2:N loop if fy[i-1]>0 then A[i]:=y[i-1]; B[i]:=B[i-1]; else A[i]:=A[i-1]; B[i]:=y[i-1]; end if; fa[i]:=exp(-A[i])-A[i]; fb[i]:=exp(-B[i])-B[i]; y[i]:=(A[i]*fb[i]-B[i]*fa[i])/(fb[i]-fa[i]); fy[i]:=exp(-y[i])-y[i]; ER[i]:=abs(1-y[i-1]/y[i]); if ER[i]<er then sol:=y[i]; break; end if; end for; end if; end Regula_Falsi_Algorithm;
Tugas Video
Berikut video yang sudah saya buat: https://youtu.be/Q8-usKi9NsM