Belajar Coding
bahasa C aja
Jumat, 26 Juli 2019
Coding ODE metode runge kutta orde 4 dengan bahasa c
Bismillahirrahmanirrahim
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung ODE metode range kutta orde 4 dengan bahasa c.
======================================================================================================================
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i=0;
double xnew=0, ynew=0, X=5, xi, yi, h=0.1;
double k1, k2, k3, k4;
xi=0, yi=4;
printf("i = %i, y(x=%.5f) = %.5f \n",i,xi,yi);
i=1;
while(xi<(X-h))
{
k1=2*xi-3;
k2=2*(xi+0.5*h)-3;
k3=2*(xi+0.5*h)-3;
k4=2*(xi+h)-3;
ynew=yi+(k1+2*k2+2*k3+k4)*(h/6);
xnew=xi+h;
printf("i = %i, y(x=%.5f) = %.5f \n",i,xnew,ynew);
xi=xnew;
yi=ynew;
i++;
}
return 0;
}
======================================================================================================================
Selamat mencoba!
Coding ODE metode euler dengan bahasa c
Bismillahirrahmanirrahim
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung ODE metode euler dengan bahasa c.
======================================================================================================================
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i;
double ynew=0, xnew=0, N, X=5, x[100], y[100], h=0.01;
N=X/h;
x[0]=0, y[0]=4;
for(i=0;i < N; i++)
{
ynew=y[i]+(2*x[i]-3)*h; //ini fungsinya
xnew=x[i]+h;
printf("y(x=%.2f) = %.5f \n",xnew,ynew);
y[i+1]=ynew;
x[i+1]=xnew;
}
return 0;
}
======================================================================================================================
Selamat mencoba!
Coding integral metode trapezoidal dengan bahasa c
Bismillahirrahmanirrahim
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung integral dengan metode trapezoidal dengan bahasa c.
======================================================================================================================
#include <stdlib.h>
#include <math.h>
int main()
{
float X, a=1, b=2;
float L, h, temp=0, fx, temp0, tempN;
int N=5;
h = (b-a)/N;
X = a+h;
temp0 = 1/a; //sesuaikan dengan fungsi, dengan x=a
tempN = 1/b; //sesuaikan dengan fungsi, dengan x=b
//mencari f total
for(int i=1; i<N; i++)
{
fx = 1/X;
temp = temp + fx;
X = X+h;
}
L = (temp0+2*temp+tempN)*(h/2);
printf("nilai L = %.4lf\n",L);
return 0;
}
======================================================================================================================
Selamat mencoba!
Coding integral metode reimann dengan bahasa c
Bismillahirrahmanirrahim
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung integral dengan metode reimann dengan bahasa c.
======================================================================================================================
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float X, a=0, b=1;
float L, h, temp=0, fx;
int N=10;
h = (b-a)/N;
X = a;
//mencari f total
for(int i=0; i<=N; i++)
{
fx = X*X;
temp = temp + fx;
X = X+h;
}
L = temp*h;
printf("nilai L = %.4lf\n",L);
return 0;
}
======================================================================================================================
Selamat mencoba!
Coding interpolasi dengan bahasa c
Bismillahirrahmanirrahim
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung interpolasi dengan bahasa c.
======================================================================================================================
#include <stdio.h>
struct Data
{
double x,y;
};
double interpolate(struct Data f[], int xi, int n)
{
double result = 0;
for ( int i = 0; i < n; i++)
{
double term = f[i].y;
for (int j = 0; j < n; j++)
{
if (j!=i)
term = term * (xi - f[j].x)/(f[i].x - f[j].x);
}
result += term;
}
return result;
}
int main ()
{
struct Data f[] = {{1,0.54},{10, -0.84},{20, 0.41},{30, 0.15},{45, 0.53}};
printf ("value of f(15) is = %lf\n", interpolate (f,15,5));
return 0;
}
======================================================================================================================
Selamat mencoba!
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung interpolasi dengan bahasa c.
======================================================================================================================
#include <stdio.h>
struct Data
{
double x,y;
};
double interpolate(struct Data f[], int xi, int n)
{
double result = 0;
for ( int i = 0; i < n; i++)
{
double term = f[i].y;
for (int j = 0; j < n; j++)
{
if (j!=i)
term = term * (xi - f[j].x)/(f[i].x - f[j].x);
}
result += term;
}
return result;
}
int main ()
{
struct Data f[] = {{1,0.54},{10, -0.84},{20, 0.41},{30, 0.15},{45, 0.53}};
printf ("value of f(15) is = %lf\n", interpolate (f,15,5));
return 0;
}
======================================================================================================================
Selamat mencoba!
Coding gradient descent dengan bahasa c
Bismillahirrahmanirrahim
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung regresi linear dengan bahasa c. program ini untuk mencari optimasi slope-nya.
======================================================================================================================
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int sum(float *bil1, int n)
{
float temp = 0;
for (int i = 0;i < n; i++)
{
temp = temp + bil1[i];
}
printf("SUM = %f\n",temp);
return temp;
}
int main()
{
FILE *dataread;
char x[100],y[100];
float X[100],Y[100];
int i,j,N;
float sumx2 = 0;
float sumy2 = 0;
float sumxy = 0;
float Ypred[100];
float Err,SSErr, dSSErr = 0;
dataread = fopen("ceklah.txt","r");
if (dataread==NULL)
{
printf("data was not existed\n");
}
else
{
i = 0;
while(!feof(dataread))
{
fscanf(dataread,"%s\t%s",x,y);
X[i] = atoi(x);
Y[i] = atoi(y);
//printf("%d\t%d\n",X[i],Y[i]);
i++;
}
}
fclose(dataread);
N = i;
//masuk program optimasi dengan gradient descent
float anew,aold=0.1;
float lr = 0.1;
float step = 1;
int iter = 0;
while (step > 0.001)
{
i=0;
while (i < N)
{
Err = Y[i] - (1 + anew*X[i]);
SSErr = SSErr + (Err*Err);
dSSErr = dSSErr + (-2*X[i]*Err);
i++;
}
iter++;
aold = anew;
anew = aold - lr*dSSErr;
step = fabs(lr*dSSErr);
printf("Iterasi ke --> %d, slope = %.4lf \t SumSquareError = %.4lf, StepSize = %.4lf\n",iter,anew, SSErr,step);
SSErr = 0;
dSSErr = 0;
}
return 0;
}
======================================================================================================================
Selamat mencoba!
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung regresi linear dengan bahasa c. program ini untuk mencari optimasi slope-nya.
======================================================================================================================
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int sum(float *bil1, int n)
{
float temp = 0;
for (int i = 0;i < n; i++)
{
temp = temp + bil1[i];
}
printf("SUM = %f\n",temp);
return temp;
}
int main()
{
FILE *dataread;
char x[100],y[100];
float X[100],Y[100];
int i,j,N;
float sumx2 = 0;
float sumy2 = 0;
float sumxy = 0;
float Ypred[100];
float Err,SSErr, dSSErr = 0;
dataread = fopen("ceklah.txt","r");
if (dataread==NULL)
{
printf("data was not existed\n");
}
else
{
i = 0;
while(!feof(dataread))
{
fscanf(dataread,"%s\t%s",x,y);
X[i] = atoi(x);
Y[i] = atoi(y);
//printf("%d\t%d\n",X[i],Y[i]);
i++;
}
}
fclose(dataread);
N = i;
//masuk program optimasi dengan gradient descent
float anew,aold=0.1;
float lr = 0.1;
float step = 1;
int iter = 0;
while (step > 0.001)
{
i=0;
while (i < N)
{
Err = Y[i] - (1 + anew*X[i]);
SSErr = SSErr + (Err*Err);
dSSErr = dSSErr + (-2*X[i]*Err);
i++;
}
iter++;
aold = anew;
anew = aold - lr*dSSErr;
step = fabs(lr*dSSErr);
printf("Iterasi ke --> %d, slope = %.4lf \t SumSquareError = %.4lf, StepSize = %.4lf\n",iter,anew, SSErr,step);
SSErr = 0;
dSSErr = 0;
}
return 0;
}
======================================================================================================================
Selamat mencoba!
Kamis, 25 Juli 2019
Coding regresi linear dengan bahasa c
Bismillahirrahmanirrahim
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung regresi linear dengan bahasa c.
======================================================================================================================
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int sum(float *bil1, int n)
{
float temp = 0;
for (int i = 0;i < n; i++)
{
temp = temp + bil1[i];
}
printf("SUM = %f\n",temp);
return temp;
}
int main()
{
FILE *dataread;
char x[100],y[100];
float X[100],Y[100];
int i,j,N;
float sumx2 = 0;
float sumy2 = 0;
float sumxy = 0;
float Ypred[100];
float Err,SSErr, dSSErr = 0;
dataread = fopen("dataexample2.txt","r");
if (dataread==NULL)
{
printf("data was not existed\n");
}
else
{
i = 0;
while(!feof(dataread))
{
fscanf(dataread,"%s\t%s",x,y);
X[i] = atoi(x);
Y[i] = atoi(y);
//printf("%d\t%d\n",X[i],Y[i]);
i++;
}
}
fclose(dataread);
N = i;
for(i = 0;i < N; i++)
{
sumx2 = sumx2 + X[i]*X[i];
sumy2 = sumy2 + Y[i]*Y[i];
sumxy = sumxy + X[i]*Y[i];
}
printf("N data = %d\n",i);
int sumx = 0;
int sumy = 0;
sumx = sum(X,N);
sumy = sum(Y,N);
//printf("SUMXY = %d\n",sumxy);
//printf("SUMX2 = %d\n",sumx2);
//printf("SUMY2 = %d\n",sumy2);
float a,b;
a = 1.0*((sumy*sumx2)-(sumx*sumxy))/((N*sumx2)-(sumx*sumx));
b = 1.0*(N*sumxy-sumx*sumy)/((N*sumx2)-sumx*sumx);
printf("Intercept : %.6f, Slope : %.6f---> y = %.6f + %.6fx \n",a,b,a,b);
return 0;
}
======================================================================================================================
Selamat mencoba!
Alhamdulillah, washalatu wasalamu 'ala rasulillah, waba'du
Berikut ini saya berikan contoh program untuk menghitung regresi linear dengan bahasa c.
======================================================================================================================
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int sum(float *bil1, int n)
{
float temp = 0;
for (int i = 0;i < n; i++)
{
temp = temp + bil1[i];
}
printf("SUM = %f\n",temp);
return temp;
}
int main()
{
FILE *dataread;
char x[100],y[100];
float X[100],Y[100];
int i,j,N;
float sumx2 = 0;
float sumy2 = 0;
float sumxy = 0;
float Ypred[100];
float Err,SSErr, dSSErr = 0;
dataread = fopen("dataexample2.txt","r");
if (dataread==NULL)
{
printf("data was not existed\n");
}
else
{
i = 0;
while(!feof(dataread))
{
fscanf(dataread,"%s\t%s",x,y);
X[i] = atoi(x);
Y[i] = atoi(y);
//printf("%d\t%d\n",X[i],Y[i]);
i++;
}
}
fclose(dataread);
N = i;
for(i = 0;i < N; i++)
{
sumx2 = sumx2 + X[i]*X[i];
sumy2 = sumy2 + Y[i]*Y[i];
sumxy = sumxy + X[i]*Y[i];
}
printf("N data = %d\n",i);
int sumx = 0;
int sumy = 0;
sumx = sum(X,N);
sumy = sum(Y,N);
//printf("SUMXY = %d\n",sumxy);
//printf("SUMX2 = %d\n",sumx2);
//printf("SUMY2 = %d\n",sumy2);
float a,b;
a = 1.0*((sumy*sumx2)-(sumx*sumxy))/((N*sumx2)-(sumx*sumx));
b = 1.0*(N*sumxy-sumx*sumy)/((N*sumx2)-sumx*sumx);
printf("Intercept : %.6f, Slope : %.6f---> y = %.6f + %.6fx \n",a,b,a,b);
return 0;
}
======================================================================================================================
Selamat mencoba!
Langganan:
Komentar (Atom)

