Oleh:
FEBRINA RAHAYU WIDYA A.S
15726251013
PENDIDIKAN FISIKA
PROGRAM PASCASARJANA
UNIVERSITAS NEGERI YOGYAKARTA
2017
A. METODE BISECTION
printf("\t\t\t\t r^3-4r+2=0\n\n");
printf("\tMasukkan batas atas persamaan(r1): ");scanf("%f",&r1);
printf("\tMasukkan batas bawah persamaan (rr): ");scanf("%f",&r2);
printf("\tMasukkan nilai toleransi: ");scanf("%f",&tol);
printf("\tTidak ada akar di antara kedua batas persamaan\n");
{
printf("\n \ti \tr1 \tr2 \trr \tf(r1) \tf(r2) \tf(rr) \terror \n");
do
{
rr=(r1+r2)/2;
error=fabs(r2-r1);
printf("\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t
%.3f\n",i,r1,r2,rr,f(r1),f(r2),f(rr),error);
if(f(r1)*f(r2)<tol)
r2=rr;
else
r1=rr;
i++;
}
while(error>tol);
printf("\n \tnilai rr terakhir : %.3f\n",rr);
printf("\tBanyaknya iterasi : %d \n",i-3);
printf("\n\t\t\t\t\t\t\tTERIMA KASIH");
printf("\n\t\t\t\t\t\t\t*************");
printf("\n\t\t\t\t\t\t\tfebrinarahayu");
}
getch();
return 0;
}
Outputnya :
2.
f =x 3+4 x 210
Coding
#include<stdio.h>
#include<conio.h>
#include<math.h>
float f(float x)
{
float d;
d=(x*x*x)+(4*x*x)-10;
return d;
}
main()
{
float d,x1,x2,xr,error,tol;
int i=1;
printf(\n\t\t\t\t METODE BISECTION\n);
printf(\t\t\t\t METODE BAGI DUA \n);
printf(\t\t\t\t ****************\n\n);
printf(\t\t\t\t x^3+4x^2-10=0\n\n);
printf(\tMasukkan batas atas persamaan(x1): );scanf(%f,&x1);
printf(\tMasukkan batas bawah persamaan (x2): );scanf(%f,&x2);
printf(\tMasukkan nilai toleransi: );scanf(%f,&tol);
printf(\tTidak ada akar di antara kedua batas persamaan\n);
{
printf(\n \ti \tx1 \tx2 \txr \tf(x1) \tf(x2) \tf(xr) \terror \n);
do
{
xr=(x1+x2)/2;
error=fabs(x2-x1);
printf(\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t
%.3f\n,i,x1,x2,xr,f(x1),f(x2),f(xr),error);
if(f(x1)*f(x2)<tol)
x2=xr;
else
x1=xr;
i++;
}
while(error>tol);
printf(\n \tnilai xr terakhir : %.3f\n,xr);
printf(\tBanyaknya iterasi : %d \n,i-1);
}
getch();
return 0;
}
Outputnya :
B. Metode Newton-Rhapson
Metode Newton-Rhapson adalah metode pencarian akar suatu fungsi f(x)
dengan pendekatak satu titik, dimana fungsi f (x) mempunyai turunan. metode ini
dianggap lebih mudah dari metode bisection 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 nilai akarnya. Metode
Newton-Rhapson merupakan salah satu metode terbuka untuk menentukan soluai
akar dari persamaan non linear, dengan prinsip utama sebagai berikut:
1. Metode ini melakukan pendekatan terhadap kurva f(x) dengan garis
singgung (gradien) pada suatu titik niali awal.
2. Nilai taksiran selanjutnya adalah titik potong antara garis singgung (gradien)
kurva dengan sumbu x.
Metode Newton Rapshon adalah metode yang digunakan untuk mencari solusi
sebuh persamaan menggunakan metode numerik.
dengan
dari fungsi
adalah turunan
untuk n = 0, maka
akan menghasilkan nilai
dan
untuk n = 1, maka
Demikian seterusnya cara di atas kita ulangi hingga mendapatkan nilai
yang
kita tadi.
nilai e = 0.0005
a. Listing Program
#include <stdio.h>
#include <math.h>
#include <conio.h>
float Fungsi(float x);
float FungsiTurunan(float x);
main()
{
int n=0;
float x[100];
float e = 0.0005;
printf( Program Newton Rapshon \n);
printf( ====================== \n\n);
printf(Persamaan Fungsi f(x) : \n);
return 2*x+3;
}
Output Program
C. INTEGRASI NUMERIK
Integrasi numerik mengambil peranan penting dalam masalah sains dan
teknik. Hal ini menginat di dalam bidang sains sering ditemukan ungkapanungkapam integral matematis yang tidak mudah atau bahkan tidak dapat
diselesaikan secara analitis. Disamping itu, kadang-kadang fungsi yang
integralkan tidak berbentuk analitis melainkan berupa titik-titik data. Hal ini
sering muncul dalam banyak aplikasi teknik. Oleh sebab itu, kehadiran analisis
numerik menjadi penting manakala pendekatan analitis mengalami kebuntuan.
Dalam bab ini kita akan membahas beberapa teknik integrasi numerik yang
sangat umum digunakan untuk memperoleh pendekatan integral fungsi y(x) pada
batas interval [a,b] . Secara umum, integral fungsi y(x) pada interval tersebut
dapat dinyatakan
I= f ( x ) dx
x=a
y (x )
I ( x )= w 1 y ( x i )
i=1
y ( x1 ) = y ( a ) dan
y ( xn ) = y ( b )
x i terbentang dari
x i dievaluasi fungsi
y ( x ) . Faktor
x=a
x i ini
sering disebut sebagai titik simpul (node). Sedangkan, faktor pengali wi disebut
faktor bobot.
Code Program
#include <cstdlib>
#include <iostream>
#include <math.h>
#include<conio.h>
#include <stdlib.h>
#include <Windows.h>
#include<iomanip>
using namespace std;
void head(){
cout<<"\n =============================";
cout<<"\n QUIZ METODE NUMERIK";
cout<<"\n =============================";
cout<<"\n ";
cout<<"\n =============================\n";
}
void RegresiLinier(int n);
void RegresiNonLinier(int n);
void AnalisisRegresiPolinomial(int n);
void SistemPersLinier(int n);
int main()
{
char pil,plh;
int n;
system("cls");
head();
cout<<"\n Masukkan Jumlah Data yang akan diinputkan : ";cin>>n;
cout<<"\n [ 1 ] Metode Regresi Linier\n"
" [ 2 ] Metode Regresi Non Linier\n"
" [ 3 ] Analisis Regresi Polinomial\n"
" [ 4 ] Sistem Persamaan Linier\n"
" [ 0 ] Exit\n"
"\n Silahkan Pilih Metode Yang digunakan : ";cin>>pil;
switch(pil){
case '1':
system("cls");
RegresiLinier(n);
break;
case '2':system("cls");RegresiNonLinier(n);
break;
case '3':AnalisisRegresiPolinomial(n);
break;
case '4':SistemPersLinier(n);
break;
case '0':
exit(0);
break;
}
system("pause");
return 0;
}
void RegresiLinier(int q){
system("cls");
long jumx=0,jumy=0,jumxy=0,jumxx=0,xy=0,xx=0,X,Y;
int n=q;
long ratx,raty,a,b;
float x[100],y[100];
cout<<"\n -------------";
cout<<"\n Input Data";
cout<<"\n -------------";
for (int h=1;h<=n;h++){
cout<<"\nNilai x"<<h<<" = ";cin>>x[h];
}cout<<"\n\n -------------";
for(int k=1;k<=n;k++){
cout<<"\nNilai y"<<k<<" = ";cin>>y[k];
}
system("cls");
cout<<"\n
========================================================
===========";
cout<<"\n | Data ke | X |
Y |
XY |
X^2
|";
cout<<"\n
========================================================
===========\n";
for(int i=1;i<=n;i++){
jumx=jumx+x[i];
jumy=jumy+y[i];
xy=(x[i]*y[i]);
xx=(x[i]*x[i]);
jumxy=jumxy+xy;
jumxx=jumxx+xx;
cout<<" "<<setiosflags(ios::left)<<setw(13)<<i;
cout<<setiosflags(ios::left)<<setw(11)<<x[i];
cout<<setiosflags(ios::left)<<setw(16)<<y[i];
cout<<setiosflags(ios::left)<<setw(16)<<xy;
cout<<setiosflags(ios::left)<<setw(11)<<xx;
cout<<"\n\n";
}
cout<<" -------------------------------------------------------------------\n";
cout<<" "<<setiosflags(ios::left)<<setw(13)<<"JUMLAH";
cout<<setiosflags(ios::left)<<setw(11)<<jumx;
cout<<setiosflags(ios::left)<<setw(16)<<jumy;
cout<<setiosflags(ios::left)<<setw(16)<<jumxy;
cout<<setiosflags(ios::left)<<setw(11)<<jumxx;
cout<<"\n
========================================================
===========";
ratx=jumx/n;
raty=jumy/n;
b=((jumxy*n)-(jumx*jumy))/((jumxx*n)-(jumx*jumx));
a=raty-(b*ratx);
cout<<"\n Nilai Rata - Rata x = "<<ratx;
cout<<"\n Nilai Rata - Rata y = "<<raty;
cout<<"\n Nilai b = "<<b;
cout<<"\n Nilai a = "<<a;
cout<<"\n\n Jadi Persamaanya adalah Y = "<<a<<" + "<<b<<" X";
cout<<"\n\n Masukkan Nilai taksiran untuk X = ";cin>>X;
Y=a+(b*X);
cout<<"\n untuk Taksiran x="<<X<<", maka nilai Y = "<<Y;
getch();main();
}
void RegresiNonLinier(int q){
system("cls");
int n=q;
float x[100],y[100];
float qi=0,pi=0,qipi=0,qi2=0,jumpi=0,jumqi=0,jumqipi=0,jumqiqi=0;
float ratqi,ratpi,B,A,P,a,b;
/* ---------------Tranformasi Dengan log --------------------------*/
cout<<"\n -------------";
cout<<"\n Input Data";
cout<<"\n -------------";
for (int h=1;h<=n;h++){
cout<<"\nNilai x"<<h<<" = ";cin>>x[h];
}cout<<"\n\n -------------";
for(int k=1;k<=n;k++){
cout<<"\nNilai y"<<k<<" = ";cin>>y[k];
}
system("cls");
cout<<"\n =====================Tabel Penolong Dengan Log
=====================";
cout<<"\n
========================================================
===========\n";
cout<<" "<<setiosflags(ios::left)<<setw(9)<<" No."<<setw(7)<<" xi
"<<setw(7)<<" yi";
cout<<setiosflags(ios::left)<<setw(12)<<"qi=log xi"<<setw(12)<<"pi=log
yi"<<setw(12)<<"qi.pi";
cout<<setiosflags(ios::left)<<setw(12)<<"qi^2";
cout<<"\n
========================================================
===========\n";
for(int i=1;i<=n;i++){
qi=log10(x[i]);
pi=log10(y[i]);
qipi=(qi*pi);
qi2=(qi*qi);
jumpi=jumpi+pi;
jumqi=jumqi+qi;
jumqipi=jumqipi+qipi;
jumqiqi=jumqiqi+qi2;
cout<<" "<<setiosflags(ios::left)<<setw(9)<<i;
cout<<setiosflags(ios::left)<<setw(7)<<x[i];
cout<<setiosflags(ios::left)<<setw(7)<<y[i];
cout<<setiosflags(ios::left)<<setw(12)<<qi;
cout<<setiosflags(ios::left)<<setw(12)<<pi;
cout<<setiosflags(ios::left)<<setw(12)<<qipi;
cout<<setiosflags(ios::left)<<setw(12)<<qi2;
cout<<"\n\n";
}
cout<<" -------------------------------------------------------------------\n";
cout<<" "<<setiosflags(ios::left)<<setw(22)<<"JUMLAH";
cout<<setiosflags(ios::left)<<setw(12)<<jumqi;
cout<<setiosflags(ios::left)<<setw(12)<<jumpi;
cout<<setiosflags(ios::left)<<setw(12)<<jumqipi;
cout<<setiosflags(ios::left)<<setw(12)<<jumqiqi;
cout<<"\n
========================================================
===========";
ratqi=jumqi/n;
ratpi=jumpi/n;
B=((n*jumqipi)-(jumqi*jumpi))/((n*jumqiqi)-(jumqi*jumqi));
A=ratpi-(B*ratqi);
cout<<"\n\n Nilai Rata-rata qi : "<<ratqi;
cout<<"\n Nilai Rata-rata pi : "<<ratpi;
cout<<"\n Nilai B : "<<B;
cout<<"\n Nilai A : "<<A;
cout<<"\n Jadi Persamaan Transformasi Log-nya adalah : ";
cout<<A<<" + "<<B<<" q\n";
cout<<"\n Karena A log a ----> "<<A<<" = log a\n";
a=pow(10,A);
b=B;
cout<<"\n Maka Nilai a : "<<a;
cout<<"\n Maka Persamaan yang dicari adalah : \n";
cout<<"\n y = "<<a<<" X^"<<b<<endl;
/* ---------------Tranformasi Dengan ln --------------------------*/
float fqi=0,fpi=0,fqipi=0,fqi2=0,fjumpi=0,fjumqi=0,fjumqipi=0,fjumqiqi=0;
float fratqi,fratpi,fB,fA,fP,fa,fb;
cout<<"\n\n";
cout<<"\n =====================Tabel Penolong Dengan Ln
=====================";
cout<<"\n
========================================================
===========\n";
cout<<" "<<setiosflags(ios::left)<<setw(9)<<" No."<<setw(7)<<" xi
"<<setw(7)<<" yi";
cout<<setiosflags(ios::left)<<setw(12)<<"qi=xi"<<setw(12)<<"pi=ln
yi"<<setw(12)<<"qi.pi";
cout<<setiosflags(ios::left)<<setw(12)<<"qi^2";
cout<<"\n
========================================================
===========\n";
for(int i=1;i<=n;i++){
fqi=(x[i]);
fpi=logf(y[i]);
fqipi=(fqi*fpi);
fqi2=(fqi*fqi);
fjumpi=fjumpi+fpi;
fjumqi=fjumqi+fqi;
fjumqipi=fjumqipi+fqipi;
fjumqiqi=fjumqiqi+fqi2;
cout<<" "<<setiosflags(ios::left)<<setw(9)<<i;
cout<<setiosflags(ios::left)<<setw(7)<<x[i];
cout<<setiosflags(ios::left)<<setw(7)<<y[i];
cout<<setiosflags(ios::left)<<setw(12)<<fqi;
cout<<setiosflags(ios::left)<<setw(12)<<fpi;
cout<<setiosflags(ios::left)<<setw(12)<<fqipi;
cout<<setiosflags(ios::left)<<setw(12)<<fqi2;
cout<<"\n\n";
}
cout<<" -------------------------------------------------------------------\n";
cout<<" "<<setiosflags(ios::left)<<setw(22)<<"JUMLAH";
cout<<setiosflags(ios::left)<<setw(12)<<fjumqi;
cout<<setiosflags(ios::left)<<setw(12)<<fjumpi;
cout<<setiosflags(ios::left)<<setw(12)<<fjumqipi;
cout<<setiosflags(ios::left)<<setw(12)<<fjumqiqi;
cout<<"\n
========================================================
===========";
fratqi=fjumqi/n;
fratpi=fjumpi/n;
B=((n*fjumqipi)-(fjumqi*fjumpi))/((n*fjumqiqi)-(fjumqi*fjumqi));
fA=fratpi-(fB*fratqi);
cout<<"\n\n Nilai Rata-rata qi : "<<fratqi;
cout<<"\n Nilai Rata-rata pi : "<<fratpi;
cout<<"\n Nilai B : "<<fB;
cout<<"\n Nilai A : "<<fA;
cout<<"\n Jadi Persamaan Transformasi Log-nya adalah : ";
cout<<fA<<" + "<<fB<<" q\n";
cout<<"\n Karena A= ln a ----> "<<fA<<" = ln a\n";
fa=pow(10,A);
fb=fB;
cout<<"\n Maka Nilai a : "<<fa;
cout<<"\n Maka Persamaan yang dicari adalah : \n";
cout<<"\n y = "<<fa<<" X^"<<fb<<endl;
getch();main();
}
void AnalisisRegresiPolinomial(int q){
system("cls");
float
jumx=0,jumy=0,jumxy=0,jumxx=0,jumxxx=0,jumxxxx=0,jumx2y=0,xy=0,xx
=0,X,Y,xxx=0,xxxx=0,x2y=0;
float ratx,raty,a,b;float L[3][3],U[3][3];float A[3][3];float B[3][3];
float y0=0,y1=0,y2=0,a0=0,a1=0,a2=0;
int n=q;
float x[100],y[100];
cout<<"\n -------------";
cout<<"\n Input Data";
cout<<"\n -------------";
for (int h=1;h<=n;h++){
cout<<"\nNilai x"<<h<<" = ";cin>>x[h];
}cout<<"\n\n -------------";
for(int k=1;k<=n;k++){
cout<<"\nNilai y"<<k<<" = ";cin>>y[k];
}
system("cls");
cout<<"\n
========================================================
==========="
"===========================\n";
cout<<" "<<setiosflags(ios::left)<<setw(13)<<" Data ke-"<<setw(12)<<" x
"<<setw(12)<<" y";
cout<<setiosflags(ios::left)<<setw(12)<<"xi^2"<<setw(12)<<" xi^3
"<<setw(12)<<"xi^4";
cout<<setiosflags(ios::left)<<setw(12)<<"xiyi"<<setw(12)<<" xi^2yi ";
cout<<"\n
========================================================
==========="
"===========================\n";
for(int i=1;i<=n;i++){
jumx=jumx+x[i];
jumy=jumy+y[i];
xy=(x[i]*y[i]);
xx=(x[i]*x[i]);
xxx=(x[i]*x[i]*x[i]);
xxxx=(x[i]*x[i]*x[i]*x[i]);
x2y=(xx*y[i]);
jumxy=jumxy+xy;
jumxx=jumxx+xx;
jumxxx=jumxxx+xxx;
jumxxxx=jumxxxx+xxxx;
jumx2y=jumx2y+x2y;
cout<<" "<<setiosflags(ios::left)<<setw(13)<<i;
cout<<setiosflags(ios::left)<<setw(12)<<x[i];
cout<<setiosflags(ios::left)<<setw(12)<<y[i];
cout<<setiosflags(ios::left)<<setw(12)<<xx;
cout<<setiosflags(ios::left)<<setw(12)<<xxx;
cout<<setiosflags(ios::left)<<setw(12)<<xxxx;
cout<<setiosflags(ios::left)<<setw(12)<<xy;
cout<<setiosflags(ios::left)<<setw(12)<<x2y;
cout<<"\n\n";
}
cout<<" ---------------------------------------------------------------------"
"-------------------------\n";
cout<<" "<<setiosflags(ios::left)<<setw(13)<<"Jumlah";
cout<<setiosflags(ios::left)<<setw(12)<<jumx;
cout<<setiosflags(ios::left)<<setw(12)<<jumy;
cout<<setiosflags(ios::left)<<setw(12)<<jumxx;
cout<<setiosflags(ios::left)<<setw(12)<<jumxxx;
cout<<setiosflags(ios::left)<<setw(12)<<jumxxxx;
cout<<setiosflags(ios::left)<<setw(12)<<jumxy;
cout<<setiosflags(ios::left)<<setw(12)<<jumx2y;
cout<<"\n=============================================="
"===========================\n";
cout<<"\n
========================================================
==========="
"===========================\n";
cout<<"\n ==========ELIMINASI============";
cout<<"\n
========================================================
==========="
"===========================\n";
///metode Eliminasi--cout<<"\n\n\n";
cout<<n<<"a0 + "<<jumx<<"a1 + "<<jumxx<<"a2 = "<<jumy<<" -----------(1)\n";
cout<<jumx<<"a0 + "<<jumxx<<"a1 + "<<jumxxx<<"a2 = "<<jumxy<<"
------------(2)\n";
cout<<jumxx<<"a0 + "<<jumxxxx<<"a1 + "<<jumxxxx<<"a2 =
"<<jumx2y<<" ------------(3)\n";
cout<<"\n ============================";
cout<<"\n Eliminasi Pers. 1 dan 2\n";
cout<<n<<"a0 + "<<jumx<<"a1 + "<<jumxx<<"a2 = "<<jumy<<endl;
cout<<jumx<<"a0 + "<<jumxx<<"a1 + "<<jumxxx<<"a2 = "<<jumxy<<endl;
cout<<"\n ============================\n";
float fa[10],fb[10],fc[10],fd[10],ha[5],hb[5],hc[5],hd[5];
fa[1]=n;fb[1]=jumx;fc[1]=jumxx;fd[1]=jumy;
fa[2]=jumx;fb[2]=jumxx;fc[2]=jumxxx;fd[2]=jumxy;
fa[3]=jumxx;fb[3]=jumxxx;fc[3]=jumxxxx;fd[3]=jumxy;
///eliminasi pers.1 dan 2
ha[1]=fa[1]*fa[2];
hb[1]=fb[1]*fa[2];
hc[1]=fc[1]*fa[2];
hd[1]=fd[1]*fa[2];
ha[2]=fa[2]*fa[1];
hb[2]=fb[2]*fa[1];
hc[2]=fc[2]*fa[1];
hd[2]=fd[2]*fa[1];
ha[3]=ha[1]-ha[2];//pers.4--->udah nilai 0
hb[3]=hb[1]-hb[2];
hc[3]=hc[1]-hc[2];
hd[3]=hd[1]-hd[2];
cout<<"\n ============================";
cout<<"\n Persamaan 4\n";
cout<<" *"<<ha[3]<<" a0 + "<<hb[3]<<" a1 + "<<hc[3]<<" a2 =
"<<hd[3]<<endl;
cout<<"\n ============================\n";
//eliminasi pers.1.dan pers.3
cout<<"\n ============================";
cout<<"\n Eliminasi Pers. 1 dan 3\n";
cout<<fa[1]<<" a0 + "<<fb[1]<<" a1 + "<<fc[1]<<" a2 = "<<fd[1]<<endl;
cout<<fa[3]<<" a0 + "<<fb[3]<<" a1 + "<<fc[3]<<" a2 = "<<fd[3]<<endl;
cout<<"\n ============================\n";
ha[4]=fa[1]*fa[3];
hb[4]=fb[1]*fa[3];
hc[4]=fc[1]*fa[3];
hd[4]=fd[1]*fa[3];
ha[5]=fa[3]*fa[1];
hb[5]=fb[3]*fa[1];
hc[5]=fc[3]*fa[1];
hd[5]=fd[3]*fa[1];
fa[4]=ha[4]-ha[5];//pers.5---->udah nilai 0
fb[4]=hb[4]-hb[5];
fc[4]=hc[4]-hc[5];
fd[4]=hd[4]-hd[5];
cout<<"\n ============================";
cout<<"\n Persamaan 5\n";
cout<<" *"<<fa[4]<<" a0 + "<<fb[4]<<" a1 + "<<fc[4]<<" a2 =
"<<fd[4]<<endl;
cout<<"\n ============================\n";
//eliminasi pers. 4 dan 5
cout<<"\n ============================";
cout<<"\n Eliminasi Pers. 4 dan 5\n";
cout<<ha[3]<<" a0 + "<<hb[3]<<" a1 + "<<hc[3]<<" a2 = "<<hd[3]<<endl;
cout<<fa[4]<<" a0 + "<<fb[4]<<" a1 + "<<fc[4]<<" a2 = "<<fd[4]<<endl;
cout<<"\n ============================\n";
fb[5]=hb[3]*fb[4];
fc[5]=hc[3]*fb[4];
fd[5]=hd[5]*fb[4];
fb[6]=fb[4]*hb[3];
fc[6]=fc[4]*hb[3];
fd[6]=fd[4]*hb[3];
fb[7]=fb[5]-fb[6];
fc[7]=fc[5]-fc[6];
fd[7]=fd[5]-fd[6];
cout<<"\n ============================";
cout<<"\n Persamaan 6( HASIL)\n";
cout<<fa[7]<<" a0 + "<<fb[7]<<" a1 + "<<fc[7]<<" a2 = "<<fd[7]<<endl;
cout<<"\n ============================\n";
a2=fd[7]/fc[7];
cout<<"\n ----------> Nilai a2 = "<<a2<<endl;
cout<<"\n Masukkan nilai a2 ke pers.4\n";
a1 = (hd[3]-(hc[3]*a2))/hb[3];
cout<<"\n ----------> Nilai a1 = "<<a1<<endl;
cout<<"\n Masukkan Nilai a1 dan a2 ke pers. 1\n";
a0 = (fd[1]- ((fb[1]*a1) + (fc[1]*a2)))/fa[1];
cout<<"\n ----------> Nilai a0 = "<<a0<<endl;
cout<<"\n\n Kemudian masukkan a0,a1,a2 ke Persemaan grais kurva ,yaitu\n";
cout<<"\n E(i)^2 = (y - a0 - a1xi - a2xi^2)\n";
cout<<"\n\n Jadi Persamaan kurva orde duanya adalah \n";
cout<<" y = "<<a0<<" - "<<a1<<" xi - "<<a2<<" xi^2"<<endl;
getch();main();
}
void SistemPersLinier(int q){
system("cls");
int n=q;
float A[3][3],B[3][3],L[3][3],U[3][3];
float y1=0,y2=0,y3=0,x1=0,x2=0,x3=0;
A[1][1]=3;A[1][2]=-1;A[1][3]=2;
A[2][1]=1;A[2][2]=2;A[2][3]=3;
A[3][1]=2;A[3][2]=-2;A[3][3]=-1;
/* --- Metode Lu------*/
B[1][1]=12;B[1][2]=0;B[1][3]=0;
B[2][1]=11;B[2][2]=0;B[2][3]=0;
B[3][1]=2;B[3][2]=0;B[3][3]=B[1][2];
L[1][1]=A[1][1];
L[2][1]=A[2][1];
L[3][1]=A[3][1];
U[1][2]=A[1][2]/L[1][1];
U[1][3]=A[1][3]/L[1][1];
L[2][2]=A[2][2]-(L[2][1]*U[1][2]);
L[3][2]=A[3][2]-(L[3][1]*U[1][2]);
U[2][3]=(A[2][3]-(L[2][1]*U[1][3]))/L[2][2];
L[3][3]=A[3][3]-((L[3][1]*U[1][3])-(L[3][2]*U[2][3]));
L[1][2]=0;L[1][3]=0;L[2][3]=0;
U[1][1]=1;U[2][2]=1;U[3][3]=U[2][2];
U[2][1]=0;U[3][1]=0;U[3][2]=0;
cout<<endl;}
cout<<"\n\n Sehingga Didapatkan :\n";
cout<<" "<<L[1][1]<<"y1 = "<<B[1][1];
cout<<"\n "<<L[2][1]<<"y1 + "<<L[2][2]<<" y2 = "<<B[2][1];
cout<<"\n "<<L[3][1]<<"y1 + "<<L[3][2]<<" y2 + "<<L[3][3]<<" y3 =
"<<B[3][1]<<endl;
y1=B[1][1]/L[1][1];
y2=(B[2][1]-(L[2][1]*y1))/L[2][2];
y3=(B[3][1]-(L[3][1]*y1+L[3][2]*y2))/L[3][3];
cout<<"\n hasil : "<<L[3][3];
x3=y3;
x2=(y2-(U[2][3]*x3));
x1=y1-((U[1][2]*x2)+(U[1][3]*x3));
cout<<"\n Jadi Didatakan Nilai-nilainya :\n";
cout<<"\n x1 : "<<x1;
cout<<"\n x2 : "<<x2;
cout<<"\n x3 : "<<x3;
cout<<"\n y1 : "<<y1;
cout<<"\n y2 : "<<y2;
cout<<"\n y3 : "<<y3<<endl;
/*-------Metode Gaus Jordan------*/
getch();main();
}
Hasil output
D. PERSAMAAN DIFFERENSIAL
2!
1!
y(xr+1)=y(xr)+
y(xr)+
y(xr)+
bila persamaan di atas dipotng samapai suku orde tiga, peroleh
x
y(xr+1) = y(xr) +
r 1
xr
1!
xr 1 xr
y(xr) +
2!
y(t),
xr<t<xr+1
2
y(xr+1)
y(xr)+hf(xr,yr)+ y(t)
dua suku pertama persamaan di atas yaitu :
y(xr+1) = y(xr) + hf(xr, yr) ;
atau dapat ditulis
r = 0, 1, 2,,n
yr+1 = yr + hfr
yang merupakan metode Euler.
Penyelesaian persamaan
dy/dx = x+y
Coding
#include<stdio.h>
float fun(float x,float y)
{
float f;
f=x+y;
return f;
}
main()
{
float a,b,x,y,h,t,k;
printf("\nEnter x0,y0,h,xn: ");
scanf("%f%f%f%f",&a,&b,&h,&t);
x=a;
y=b;
printf("\n x\t y\n");
while(x<=t)
{
k=h*fun(x,y);
y=y+k;
x=x+h;
printf("%0.3f\t%0.3f\n",x,y);
}
}
Input/Output:
2. Diferensial Biasa
Misalkan diketahui sebuah fungsi y = x2
Bila x digeser sejauh
dx , menjadi
:"); scanf("%f",&x);
Xr = a + rh,
r = 1,2,3 .n
2.
3.
Coding
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
int main ()
{
double batas_atas, batas_bawah, h;
int r, exit;
r=0;
}
Input/ Output