Metnum03-Laksita Aji Safitri

From ccitonlinewiki
Jump to: navigation, search
LAKSITA AJI SAFITRI.S1 Teknik Mesin-Ekstensi 2019.Universitas Indonesia

ASSALAMU'ALAIKUM WR.WB

BIODATA DIRI

Nama  : LAKSITA AJI SAFITRI

NPM  : 1906435523

Agama  : Islam

Program studi  : S1-Teknik Mesin

Pertemuan 1 Metode Numerik 03 (Senin,9 November 2020)

Untuk pembelajaran sebelum pasca UTS kita telah mengenal beberapa metode dalam numerik, yaitu

1. Deret Taylor dan Derer Mclaurin

merupakan representasi dari fungsi matematika sebagai jumlah tak hingga dari suku-suku yang nilainya dihitung dari turunan fungsi tersebut disuatu titik.deret ini dapat dianggap sebagai limit polinomial taylor.bila deret tersebut terpusat pada titik 0 atau a=0, maka deret tersebut dapat diartikan sebagai deret mclaurin atau deret taylor baku. nilai Rn(x) merupakan tangkisan errror yang mana jika kita menentukan turunan hingga turunan ke 4, maka turunan ke 5 dan seterusnya merupakan error

deret tailor dan deret mclaurin ini sagat bermanfaat dalam metode numerik untuk menghitung atau menghampiri nilai -nilai fungsi yang susah dihitungsecara manual seperti nilai sinx,cosx,ln(x+1) dll

2. Open Methode

a. Newton-Raphson Method


M2.jpg


Metode Newton-Raphson adalah metode pencarian akar suatu fungsi f(x) dengan pendekatan satu titik, dimana fungsi f(x mempunyai turunan. Metode ini dianggap lebih mudah dari Metode Bagi-Dua (Bisection Method) karena metode ini menggunakan pendekatan satu titik sebagai titik awal. Semakin dekat titik awal yang kita pilih dengan akar sebenarnya, maka semakin cepat konvergen ke akarnya.

Prosedur Metode Newton :

menentukan x_0 sebagai titik awal, kemudian menarik garis lurus (misal garis l) yang menyinggung titik f(x_0). Hal ini berakibat garis l memotong sumbu-x di titik

x_1. Setelah itu diulangi langkah sebelumnya tapi sekarang x_1 dianggap sebagai titik awalnya. Dari mengulang langkah-langkah sebelumnya akan mendapatkan x_2, 
x_3, ..... x_n dengan x_n yang diperoleh adalah bilangan riil yang merupakan akar atau mendekati akar yang sebenarnya.

Perhatikan gambar diatas untuk menurunkan rumus Metode Newton-Raphson:


b.Secant Method


M4.jpg


Pada Metode Newton-Raphson memerlukan syarat wajib yaitu fungsi f(x) harus memiliki turunan f'(x). Sehingga syarat wajib ini dianggap sulit karena tidak semua fungsi bisa dengan mudah mencari turunannya. Oleh karena itu muncul ide dari yaitu mencari persamaan yang ekivalen dengan rumus turunan fungsi. Ide ini lebih dikenal dengan nama Metode Secant. Ide dari metode ini yaitu menggunakan gradien garis yang melalui titik (x_0, f(x_0)) dan (x_1, f(x_1)). Perhatikan gambar dibawah ini.


Prosedur Metode Secant :

Ambil dua titik awal, misal x_0 dan x_1. Ingat bahwa pengambilan titik awal tidak disyaratkan alias pengambilan secara sebarang. Setelah itu hitung x_2 menggunakan rumus diatas. Kemudian pada iterasi selanjutnya ambil x_1 dan x_2 sebagai titik awal dan hitung x_3. Kemudian ambil x_2 dan x_3 sebagai titik awal dan hitung x_4. Begitu seterusnya sampai iterasi yang diingankan atau sampai mencapai error yang cukup kecil.


c.Simple fixed point

Metode Titik Tetap adalah suatu metode pencarian akar suatu fungsi f(x) secara sederhana dengan menggunakan satu titik awal. Perlu diketahui bahwa fungsi f(x) yang ingin dicari hampiran akarnya harus konvergen. Misal x adalah Fixed Point (Titik Tetap) fungsi f(x) bila g(x) = x dan f(x) = 0.


M6.jpg


Prosedur Metode Titik Tetap

Misal f(x) adalah fungsi yang konvergen dengan f(x) = 0, maka untuk mencari nilai akarnya atau hampiran akarnya kita terlebih dahulu mengubah kedalam bentuk x = g(x). Kemudian tentukan nilai titik awal, misal x1. Setelah itu disubstitusikan titik awalnya ke persamaan g(x) sedemikian sehingga g(x1) = x2, setelah itu titik x2 yang diperoleh substitusikan lagi ke g(x) sedemikian sehingga g(x2) = x3. Jadi apabila ditulis iterasinya akan menjadi

x1 (penetuan titik awal)

x2 = g(x1) (iterasi pertama)

x3 = g(x2) (iterasi kedua)

........

xn = g(xn-1) (iterasi ke-n)

Seperti rumus iterasi lain, maka kesalahan aproksimasinya:


M7.jpg


Iterasi ini akan berhenti jika x = g(x) dan f(x) = 0 atau sudah mencapai nilai error yang cukup kecil (|xn – xn-1| < ἐ).

3. Bracketing method

a.bisection method

Metode Bagi-Dua adalah algoritma pencarian akar pada sebuah interval. Interval tersebut membagi dua bagian, lalu memilih dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga diperoleh akar persamaan atau mendekati akar persamaan. Metode ini berlaku ketika ingin memecahkan persamaan f(x)=0 dengan f(x) merupakan fungsi kontinyu.


M8.jpg


Prosedur Metode Bagi-Dua :

Misal dijamin bahwa f(x) adalah fungsi kontinyu pada interval [a, b] dan f(a)f(b) < 0. Ini artinya bahwa f(x) paling tidak harus memiliki akar pada interval [a, b]. Kemudian definisikan titik tengah pada interval [a, b] yaitu c = {a+b}/{2}. Dari sini kita memperoleh dua subinterval yaitu [a, c] dan [c, b]. Setelah itu, cek apakah f(a)f(c) < 0 atau f(b)f(c) < 0 ? Jika f(a)f(c) < 0 maka b = c (artinya titik b digantikan oleh titik c yang berfungsi sebagai titik b pada iterasi berikutnya), jika tidak maka a = c. Dari iterasi pertama kita memperoleh interval [a, b] yang baru dan titik tengah c yang baru. Kemudian lakukan pengecekan lagi seperti sebelumnya sampai memperoleh error yang cukup kecil.


b.false position method


M9.jpg


alternatif perbaikan dari metode interval bagi-dua (bisection method) yang kurang efisien.Kekurangan metode bagi-dua adalah dalam membagi selang mulai dari xlower sampai xupper menjadi bagian yang sama; besaran f(xl) dan f(xu) tidak diperhitungkan, misalnya f(xl) apakah lebih dekat ke nol atau ke f(xu).


Untuk aplikasi pada matakuliah metode numerik, kita menggunakan aplikasi OpenModelica. yang mana aplikasi ini merupakan perangkat lunak permodelan dan simuasi open source yang ditujukan untuk penggunaan industri dan akademik.Pengembangan jangka panjangnya didukung oleh organisasi nirlaba-Open Source Modelica Consotium (OSMC).

Tujuan dengan upaya OpenModelica adalah untuk menciptakan lingkungan permodelan,kompilasi dan simulasi open source modelica yang komprehensif berdasarkan perangkat lunak bebas yang didistribusikan dalam bentuk kode sumber dan biner untuk penelitian, pengajaran dan penggunaan industri.

Website: http://openmodelica.org/

Tugas 1

Pengaplikasian deret mclaurin dengan menggunakan OpenModelica

youtube: https://www.youtube.com/watch?v=jCt1Vy0FRp4


Pertemuan 2 Metode Numerik 03 (Senin,16 November 2020)

Paada minggu ini saya belajar tentang cara mengkoding dengan menggunakan aplikasi modeica untu menghitung nilai mean dan membuat koding untuk mengitung nilai y1 menggunakan Specialization function dan class, berikut hasil pembelajaran yang telah disampaikan


1.Latihan membuat koding mean dengan jumlah data 10 dengan menggunakan openmodelica


Lat1.a.jpg


Lat1.b.jpg


2.Latihan membuat koding untuk mencari nilai y1 menggunakan menggunakan Specialization function dan class


Lat1.c.jpg


Lat1.d.jpg


Lat1.e.jpg


Tugas 2

1.Latihan membuat koding untuk mencari nilai a,b dan c pada 3 persamaan menggunakan Specialization function dan class

1. f(x)= 2a+4b+3c-5

2. f(x)= 2b-4c+2

3. f(x)= a+c-6


I. Kita membuat fuction equation untuk menyelesaikan persamaan diatas


Aljabarfunction.jpg


II. Kita membuat class dengan memanggil equation pada koding function


Aljabarclass.jpg


III. Hasil Perhitungan a,b dan c


Aljabarhasil.jpg


2.Latihan membuat koding untuk mencari nilai X1,X2 dan X3 pada 3 persamaan menggunakan Perintah library pda modelica (Modelica.Math.Mactrices.solve(A,b)

I. Menentukan soal yang akan kita gunakan

Soalmatriks.jpg

disini terdapat 3 persamaan aljabar simultan yang akan diselesaikan dengan metode Gauss Elimination dengan mengubah soal tersebut kedalam matriks.

II. Membuat koding penyelesaian dengan eliminasi gaus

setelah mengubah soal menjadi matriksm kemudian kita akan membuat kodingan seperti pada gambar berikut:

Kodinganmatriks.jpg

III. Hasil matriks

dari hasil kodingan yang telah aplikasikan, maka akan menemukan hasilkan nilai dari X1,x2 dan x3 yaitu

x1=1,

x2=2

x3=3

Hasilmatriks.jpg


Pertemuan 3 Metode Numerik 03 (Senin,23 November 2020)

Pada hari ini kami diminta untuk mempelajari respon dan displacement dari soal pegas yang ada di buku hal 327 dan membuktikan perhitungan tsb. untuk soal nya yaitu:

Soalspring.jpg
Soalspring1.jpg

dengan pengaplikasian Openmodelica kita dapat mengetahui nilai displacementnya:

Spring1.jpg
Spring2.jpg

Tugas 3

Menggunakan metode matriks untuk menghitung deflekdi yang ada pada rangkaian berikut:

Soalmetnum1.jpg
Soalmetnum2.jpg
Soalmetnum3.jpg
Soalmetnum4.jpg
MencariR.jpg


Hasil kodingan yang di buat yaitu,

NilaiU.jpg
NilaiU1.jpg
NilaiR.jpg
NilaiR1.jpg

Pertemuan 4 Metode Numerik 03 (Senin,30 November 2020)

Quis 2

Pada hari ini, kami diberikan quis yang berisikan soal berikut,

Soal qius 2.1.jpeg
Soal qius 2.2.jpeg


lalu untuk langkah pertama kami membuat flowchart yaang akan dipergunakan untuk perhitungan di openmodelica

Qius 2.1.jpeg
Qius 2.2.jpeg


Tugas 4 (Quis 2)

Melakukan perhitungan secra manual untuk penyelesaian dari soal quiz 2

1. SOAL 2D

Soal qius 2.1.jpeg

Penyelesaian:


La.jpeg
Lala.jpeg


Hasil kodinng

Functionstiffnes.jpg
Classk lokal.jpg
Classk lokal2.jpg
Fuctiongaus.jpg
Classk global.jpg
Classtrussers.jpg
Classtrussers1.jpg
Classtrussers2.jpg
Functionreaction.jpg
HasilRtrusses.jpg


SOAL 3D

Soal qius 2.2.jpeg

penyelesaian:

Lu.jpeg
Lulu.jpeg


Pertemuan 5 Metode Numerik 03 (Senin,7 Desember 2020)

Pembahasan Quiz 2. Jadi, dari pengerjaan soal kuis 2, terdapat beberapa koreksi mengenai hasil koding yang saya buat. yaitu sebagai berikut:

Soal 2D

Soal qius 2.1.jpeg

pada soal diatas kita akan menyelesaikan soal tersebut degan 1 class dan 7 Function. yang mana fuction tersebut digunakan untuk mempermudah proses perhitungnan, yag akan terpanggil ketika file function disebut dalam class.

1. Membuat Class dengan memasukan beberapa fuction yang akan digunakan. class ini berfungsi untuk me-list data input,output maupun fuction yag akan kita gunakan.

Class1.jpg
Class2.jpg

2. membuat fuction K atau matriks nilai K lokal per elemen/ batang

Elemen1.jpg
Elemen2.jpg

3. Setelah membuat fuction Ke lokal, maka akan dirubah menjadi Kg atau k global

Global.jpg

4. Setelah merubah menjadi k globa maka k global tersebut akan di tambahkan sebagai total Kglobal. Rumusnya yaitu SumKg= Kg1+Kg2+Kg3+Kg4+Kg5

Sumglobal.jpg

5. Setelah Kg digabungkan maka dilakukan boundary pada setiap batang sesuai dengan node yang terhubung

Boundary.jpg

6.setelah dilakukan boundary di setiap batangnya, maka dilakukna penyederhanaan melalui gaus jordan

Gaussjordan.jpg

7. setelah dilakukan gauss jordan maka kita bisa meghitung Reaction Force dari matriks yang kita dapatkan

Reactionforce.jpg

8. dari hasil reaction force yang kita hitung, maka kita akan melihat hasil dari reactin force, apakah sudah seimbang atau belum (F=0)

Checkforce.jpg

9. Hasil koding perhitungan

Hasil2D1.jpg
Hasil2D2.jpg


Soal 3D

Soal qius 2.2.jpeg

pada soal diatas kita akan menyelesaikan soal tersebut degan 1 class dan 7 Function. yang mana fuction tersebut digunakan untuk mempermudah proses perhitungnan, yag akan terpanggil ketika file function disebut dalam class.

1. Membuat Class dengan memasukan beberapa fuction yang akan digunakan. class ini berfungsi untuk me-list data input,output maupun fuction yag akan kita gunakan.

Class3D1.jpg
Class3D2.jpg

2. membuat fuction K atau matriks nilai K lokal per elemen/ batang

Elemen3D1.jpg
Elemen3D2.jpg

3. Setelah membuat fuction Ke lokal, maka akan dirubah menjadi Kg atau k global

Global3D.jpg
Global3D2.jpg

4. Setelah merubah menjadi k globa maka k global tersebut akan di tambahkan sebagai total Kglobal. Rumusnya yaitu SumKg= Kg1+Kg2+Kg3+Kg4+Kg5

Sumglobal3D.jpg

5. Setelah Kg digabungkan maka dilakukan boundary pada setiap batang sesuai dengan node yang terhubung

Boundary3D.jpg

6.setelah dilakukan boundary di setiap batangnya, maka dilakukna penyederhanaan melalui gaus jordan

Gaussjordan3D.jpg

7. setelah dilakukan gauss jordan maka kita bisa meghitung Reaction Force dari matriks yang kita dapatkan

Reactionforce3D.jpg

8. dari hasil reaction force yang kita hitung, maka kita akan melihat hasil dari reactin force, apakah sudah seimbang atau belum (F=0)

Checkforce3D.jpg

9. Hasil koding perhitungan

Hasil3D0.jpg
Hasil3D1.jpg
Hasil3D2.jpg

Tugas 5

Soal

Soal3.jpeg

Penyelesaian:

pada soal diatas kita akan menyelesaikan soal tersebut degan 1 class dan 7 Function. yang mana fuction tersebut digunakan untuk mempermudah proses perhitungnan, yag akan terpanggil ketika file function disebut dalam class.

1. Membuat Class dengan memasukan beberapa fuction yang akan digunakan. class ini berfungsi untuk me-list data input,output maupun fuction yag akan kita gunakan.

Class3DD1.jpg
Class3DD2.jpg

2. membuat fuction K atau matriks nilai K lokal per elemen/ batang

Elemen3D1.jpg
Elemen3D2.jpg

3. Setelah membuat fuction Ke lokal, maka akan dirubah menjadi Kg atau k global

Global3D.jpg
Global3D2.jpg

4. Setelah merubah menjadi k globa maka k global tersebut akan di tambahkan sebagai total Kglobal. Rumusnya yaitu SumKg= Kg1+Kg2+Kg3+Kg4+Kg5

Sumglobal3D.jpg

5. Setelah Kg digabungkan maka dilakukan boundary pada setiap batang sesuai dengan node yang terhubung

Boundary3D.jpg

6.setelah dilakukan boundary di setiap batangnya, maka dilakukna penyederhanaan melalui gaus jordan

Gaussjordan3D.jpg

7. setelah dilakukan gauss jordan maka kita bisa meghitung Reaction Force dari matriks yang kita dapatkan

Reactionforce3D.jpg

8. dari hasil reaction force yang kita hitung, maka kita akan melihat hasil dari reactin force, apakah sudah seimbang atau belum (F=0)

Checkforce3D.jpg

9. Hasil koding perhitungan

Hasil3DD.jpg

Pertemuan 6 Metode Numerik 03 (Senin,14 Desember 2020)

pada pertemuan ini, kami diminta untuk mereview pembelajaran selama paska UTS mengenai penggunaan aplikasi modelica. dan disini kami dijelaskan dari beberapa koding. yaitu untuk pembahasan menggunakan 1 model ataupun menggunakan 1class 7 fuction.


Pertemuan 7 Metode Numerik 03 (Senin,21 Desember 2020)

pada materi hari ini ita mempeljari one-dimensional unconstrained optimization yangn digunakan untuk menentukan niali maksimum atau minimum dari suatu permasalahan, disini terdapay fungsi objektif dan konstrain. namunn pada pembahasan kali ini menjelaskan tentang optimasi fungsi grafik tanpa konstrain. Metode yang kami lakukan yaitu Bracked Optimization Using Golden Ratio method. jadi pada metode ini terdapat suatu grafik fungsi yang memiliki nilai F(X) global max dan lokal max, serta F(X) min Global dan min lokal.

Contoh: F(x)= 2*sin(x)-x^2/10

Penyelesaian dengan open modelica:

1.Membuat 1 fuction optimasi

F obj3.jpg

2. Membuat 1 model optimasi

Bracked optimation1laksita.jpg
Bracked optimation2laksita.jpg

3. Mensimulasikan hasil koding

Hasil optmation1laksita.jpg
Hasil optmation2laksita.jpg


TUBES

Membuat koding dan menghitung BEP yang effisien untuk membuat rangka dengan kekuatan beban sesuai dengan ketentuan, yaitu 1000N dan 2000N. dimana akan di sesuaikan dengan bahan yang akan saya pilih untuk dapat menahan beban tersebut. Untuk ketentuannnya yaitu:

Laktubes.jpeg

Asumsi yang digunakan untuk melakukan perhitungan ini antara lain:

1. Variasi Stiffness terikat dengan material yang akan digunakan

2. Dimensi material mengukuti standar ukuran material yang dipilih

3. Beban akan terdistribusi hanya pada node (karena bersifat trusses).

4. Safety factor minimal bernilai 2.

5. Batas displacement 0,001 m sebelum buckling (pada truss paling atas).


Koding


  • Untuk perhitungan displacement, reaction force, stress, dan safety factor:
//define initial variable
parameter Integer Points=16; //Number of Points
parameter Integer Trusses=24; //Number of Trusses
parameter Real Area=3777777.778; //Area
parameter Real Elas=1; //Elasticity (equals to one in order to determine the displacement limit)

//define connection
parameter Integer C[Trusses,2]=[1,5; 
                                2,6;
                                3,7;
                                4,8;
                                5,6;  //1st floor
                                6,7;  //1st floor
                                7,8;  //1st floor
                                5,8;  //1st floor
                                5,9;
                                6,10;
                                7,11;
                                8,12;
                                9,10; //2nd floor
                                10,11;//2nd floor 
                                11,12;//2nd floor
                                9,12; //2nd floor
                                9,13;
                                10,14;
                                11,15;
                                12,16;
                                13,14;//3rd floor
                                14,15;//3rd floor
                                15,16;//3rd floor
                                13,16];//3rd floor
                                                             
//define coordinates (please put orderly)
parameter Real P[Points,3]=[0.3,-0.375,0;     //1
                            -0.3,-0.375,0;    //2
                            -0.3,0.375,0;     //3
                            0.3,0.375,0;      //4
                            0.3,-0.375,0.6;   //5
                            -0.3,-0.375,0.6;  //6
                            -0.3,0.375,0.6;   //7
                            0.3,0.375,0.6;    //8
                            0.3,-0.375,1.2;   //9
                            -0.3,-0.375,1.2;  //10  
                            -0.3,0.375,1.2;   //11
                            0.3,0.375,1.2;    //12
                            0.3,-0.375,1.8;   //13
                            -0.3,-0.375,1.8;  //14
                            -0.3,0.375,1.8;   //15
                            0.3,0.375,1.8];   //16
                            
//define external force (please put orderly)
parameter Real F[Points*3]={0,0,0,
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,0, 
                            0,0,-500, 
                            0,0,-1000, 
                            0,0,-1000, 
                            0,0,-500};

//define boundary
parameter Integer b[:]={1,2,3,4};

//solution
Real displacement[N], reaction[N];
Real check[3];

parameter Integer N=3*Points;
Integer boundary[3*size(b,1)]=cat(1,(3*b).-2,(3*b).-1,3*b);
Real q1[3], q2[3], g[N,N], G[N,N], G_star[N,N], id[N,N]=identity(N), cx, cy, cz, L, X[3,3];
Real err=10e-10;
Real ers=10e-4;

algorithm
//Creating Global Matrix
G:=id;
for i in 1:Trusses loop
for j in 1:3 loop
  q1[j]:=P[C[i,1],j];
  q2[j]:=P[C[i,2],j];
end for;
      
   //Solving Matrix
   L:=Modelica.Math.Vectors.length(q2-q1);
   cx:=(q2[1]-q1[1])/L;
   cy:=(q2[2]-q1[2])/L;
   cz:=(q2[3]-q1[3])/L; 
   X:=(Area*Elas/L)*[cx^2,cx*cy,cx*cz;
                     cy*cx,cy^2,cy*cz;
                     cz*cx,cz*cy,cz^2];

   //Transforming to global matrix
   g:=zeros(N,N); 
   for m,n in 1:3 loop
     g[3*(C[i,1]-1)+m,3*(C[i,1]-1)+n]:=X[m,n];
     g[3*(C[i,2]-1)+m,3*(C[i,2]-1)+n]:=X[m,n];
     g[3*(C[i,2]-1)+m,3*(C[i,1]-1)+n]:=-X[m,n];
     g[3*(C[i,1]-1)+m,3*(C[i,2]-1)+n]:=-X[m,n];
   end for;  

G_star:=G+g;
G:=G_star;
end for;

//Implementing boundary
for i in boundary loop
for j in 1:N loop
  G[i,j]:=id[i,j];
end for;
end for;

//Solving displacement
displacement:=Modelica.Math.Matrices.solve(G,F);

//Solving reaction
reaction:=(G_star*displacement)-F;

//Eliminating float error
for i in 1:N loop
 reaction[i]:=if abs(reaction[i])<=err then 0 else reaction[i];
 displacement[i]:=if abs(displacement[i])<=err then 0 else displacement[i];
end for; 

//Checking Force
check[1]:=sum({reaction[i] for i in (1:3:(N-2))})+sum({F[i] for i in (1:3:(N-2))});
check[2]:=sum({reaction[i] for i in (2:3:(N-1))})+sum({F[i] for i in (2:3:(N-1))});
check[3]:=sum({reaction[i] for i in (3:3:N)})+sum({F[i] for i in (3:3:N)});
  
for i in 1:3 loop
 check[i] := if abs(check[i])<=ers then 0 else check[i];
end for;

end Trusses_3D_Tugas_Besar_Simplified2;
  • Untuk membuat kurva curve fitting:
function Curve_Fitting

input Real X[:];
input Real Y[size(X,1)];
input Integer order=2;
output Real Coe[order+1];

protected
Real Z[size(X,1),order+1];
Real ZTr[order+1,size(X,1)];
Real A[order+1,order+1];
Real B[order+1];

algorithm

for i in 1:size(X,1) loop
 for j in 1:(order+1) loop
 Z[i,j]:=X[i]^(order+1-j);
 end for;
end for;
ZTr:=transpose(Z);

A:=ZTr*Z;
B:=ZTr*Y;
Coe:=Modelica.Math.Matrices.solve(A,B);

end Curve_Fitting;


Material

Perhitungan Biaya