Senin, 27 Januari 2014

Program Euler dan grafik C++


















*> Program Euler


#include <iostream.h> #include <stdlib.h> #include <coni0.h> #include <stdi0.h> #include <mah.h> #define MaksData 100 main() { FILE *euler; double x[MaksData], y[MaksData], dx, dy[MaksData], xn, x0, xtemp, y0, ytemp; int i, n; char lagi; do { clrscr(); euler = fopen("euler.txt", "w+"); cout << "\n\nMetode Euler untuk Diferensiasi Numerik\n"; cout << "=======================================\n\n"; cout << "Persamaan Diferensial : f(x,y) = dy/dx = (y - x)/(y + x)\n"; cout << "--------------------------------------------------------\n\n"; /* Pemasukan Data yang diberikan */ cout << "\nMasukkan x[0] ? "; cin >> x0; cout << "\nMasukkan y[0] ? "; cin >> y0; cout << "\nNilai x yang dicari ? "; cin >> xn; cout << "\nBerapa kali Iterasi ? "; cin >> n; dx = (xn - x0)/n; printf("\n\n\tx[0] = %.2f", x0); printf("\n\n\ty[0] = %.2f", y0); printf("\n\n\tYang dicari adalah y[%.2f]", xn); printf("\n\n\th = %.2f", dx); printf("\n\n\tIterasi (n) = %d kali", n); /* Cetak x[i], y[i], dx[i] dan dy[i] serta penghitungan Euler */ printf("\n\n\t-------------------------------------------------------\n"); printf("\tIterasi\t\tx[i]\tdy[i]\t\tdx[i]\ty[i]\n"); printf("\t-------------------------------------------------------\n"); fprintf(euler,"\n\t-------------------------------------------------------\n"); fprintf(euler,"\tIterasi\t\tx[i]\tdy[i]\t\tdx[i]\ty[i]\n"); fprintf(euler,"\t-------------------------------------------------------\n"); /* Pemasukan dan Penghitungan Data */ for(i = 1; i <= n; i++) { /* Rumus Diferensiasi Euler */ dy[i] = ((y0 - x0)/(y0 + x0)) * dx; y[i] = y0 + dy[i]; x[i] = x0 + dx; printf("\t %d\t\t%.2f\t%.5f\t\t%.2f\t%.5f\n", i, x[i-1], dy[i], dx, y[i]); fprintf(euler,"\t %d\t\t%.2f\t%.5f\t\t%.2f\t%.5f\n", i, x[i-1], dy[i], dx, y[i]); ytemp = y[i]; y0 = ytemp; xtemp = x[i]; x0 = xtemp; } printf("\t-------------------------------------------------------\n"); fprintf(euler,"\t-------------------------------------------------------\n"); fprintf(euler,"\n\nx[%d] = %.2f", i-n-1, x[i-n-1]); fprintf(euler,"\n\nYang dicari adalah y[%.2f]", xn); fprintf(euler,"\n\nh = %.2f", dx); fprintf(euler,"\n\nIterasi (n) = %d kali", n); printf("\n\nMaka y[%.2f] = %.5f", xn, y0); fprintf(euler,"\n\nMaka y[%.2f] = %.5f", xn, y0); fclose(euler); cout << "\n\nCoba lagi dengan data awal atau rumus yang berbeda (y/t) ? "; cin >> lagi; }while(lagi != 't'); return 0; }

*> Program grafik metode numerik

#include <iostream.h> #include <stdlib.h> #include <conio.h> #include <stdio.h> #include <math.h> main() { FILE *stream; int i, j; double x, dx, y1, y2, dy; clrscr(); stream = fopen("grafik.txt", "w+"); cout << "Metode Grafik\n"; cout << "-------------\n\n"; cout << "Maksimum Iterasi = "; cin >>j; cout<< "Berapa Nilai Awal x = "; cin >> x; cout<< "Berapa Nilai Interval x = "; cin >> dx; //persamaan awal x^4 - 3x - 2 //y1 = x^4, y2 = 3x + 2 printf("\n\t------------------------------------------------\n"); printf("\tIterasi ke-\tx\ty1\ty2\tSelisih\n"); printf("\t------------------------------------------------\n\n"); fprintf(stream, "\n\t------------------------------------------------\n"); fprintf(stream, "\tIterasi ke-\tx\ty1\ty2\tSelisih\n"); fprintf(stream, "\t------------------------------------------------\n\n"); for(i = 0; i < j; i++) { y1 = pow(x,4); y2 = 3*x + 2; dy = y1 - y2; printf("\t\t%d\t%.2f\t%.2f\t%.2f\t%.2f\n", i+1, x, y1, y2, dy); fprintf(stream,"\t\t%d\t%.2f\t%.2f\t%.2f\t%.2f\n", i+1, x, y1, y2, dy); x += dx; } printf("\t------------------------------------------------\n\n"); fprintf(stream, "\t------------------------------------------------\n\n"); fclose(stream); getch(); return 0; }

silahkan copas dan edit sendiri...

0 komentar:

Posting Komentar