intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Báo cáo thực hành phương pháp tính

Chia sẻ: Tht Tht | Ngày: | Loại File: DOC | Số trang:31

290
lượt xem
76
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Thông thường thì hàm số được xác định bằng một biểu thức tổng quát y = f(x) nào đó, ví dụ như y = x2 - 5. Tuy nhiên cũng có những hàm đặc biệt mà qui tắc cho tương ứng x với y của nó không theo bất kỳ một qui luật nào để có thể diễn đạt bằng một biểu thức toán học.

Chủ đề:
Lưu

Nội dung Text: Báo cáo thực hành phương pháp tính

  1. Báo cáo thực hành phương pháp tính
  2. MỤC LỤC CHƯƠNG III: TÍNH GIÁ TRỊ HÀM .................................................................................................. 3 Bài 10: Viết chương trình xác định giá trị x1, x2 theo định lý 3 ........................................................ 14 CHƯƠNG V: GIẢI HỆ PHƯƠNG TRÌNH ................................................................................ 15 Bài 3: Viết chương trình giải hệ phương trình đại số tuyến tinh bằng phương pháp Gauss ............ 16 Thuật toán: .......................................................................................................................................... 16 Lặp i=n1............................................................................................................................................ 16 Chương trình: ...................................................................................................................................... 16 Bài 4: viết chương trình giải hệ đại số tuyến tính bằng phương pháp lặp Gauss Siedel ................... 19 Thuật toán: .......................................................................................................................................... 19 Lặp i=1 n........................................................................................................................................... 19 Lặp j=1n do ..................................................................................................................................... 19 Chương trình: ...................................................................................................................................... 19 // Thuc hien hoan chuyen hai hang cho nhau .......................................................................................... 21 S=0; ...................................................................................................................................................... 22 Bài 5: Giải phương trình đại số tuyến tính bằng phương pháp giảm dư ........................................... 22 Thuật toán: .......................................................................................................................................... 22 Chương trình: ...................................................................................................................................... 23 Thuật toán: .......................................................................................................................................... 27 Chương trình: ...................................................................................................................................... 27 Bài 8: Lập trình in ra bảng sai phân. .................................................................................................. 28 Thuật toán: .......................................................................................................................................... 28 Chương trình: ...................................................................................................................................... 29
  3. CHƯƠNG III: TÍNH GIÁ TRỊ HÀM Bài 3: Khai báo ( định nghĩa) hàm trong C để tính giá trị đa thức bậc n tổng quát theo sơ đồ Hoocner. Thuật toán : -Nhập vào: n,c, các hệ số ai(i= ) -Xử lý: Gán p=a0 Lặp i=1n: p=p*c+ai -Xuất kết quả: p Chương trình: #include #include #define MAX 20 /*********************************************/ float hoocner(float A[],int x,int c); /*********************************************/ void main() { float A[MAX],c; int n; do { printf("\Nhap vao bac hamso :"); scanf("%d",&n); } while(n=MAX); for(int i=0;i
  4. /*********************************************/ Bài 4: Viết chương trình ( có sử dụng hàm ở câu 3) nhập vào 2 giá trị a,b. Tính p(a) +p(b) Thuật toán: Sử dụng hàm đã viết ở câu 3 để làm nhưng ở đây ta gọi hàm 2 lần. Chương trình: #include #include #define MAX 20 /*********************************************/ float hoocner(float A[],int x,int c); /*********************************************/ void main() { float A[MAX],a,b; int n; do { printf("\Nhap vao bac ham so :"); scanf("%d",&n); } while(n=MAX); for(int i=0;i
  5. Bài 5:Viết chương trình nhập vào 2 đa thức pn (x) bậc n , pm (x) bậc m và một giá trị c. Tính pn (x) + pm (x) Thuật toán: - Nhập bậc của hai đa thức n,m - Nhập hệ số của hai đa thức bậc n, m - Nhập c - In ra hoocner( A, n, c) + hoocner( B,m,c ) // với hàm hoocner được sử dụng ở câu 3 Chương trình : #include #include #include #define MAX 20 /*************************************************/ float hoocner(float A[],int n,int m,float c); void nhap(float A[],int n); /*************************************************/ void main() { float A[MAX],B[MAX],x,a,b; int n,m,chon; printf("\n Nhap bac n cua pt1 :"); scanf("%d",&n); nhap(A,n); printf("\n Nhap bac m cua pt1 :"); scanf("%d",&m); nhap(B,m); printf("\n Nhap 1 giatri c="); scanf("%f",&x); printf("\n Giatri Pn©+Pm© =%5.2f", hoocner(A,n,n,x)+hoocner(B,m,m,x)); getch(); } /*************************************************/ float hoocner(float A[],int n,int m, float c) { //Tra ve giatri int i; float s=0; for(i=n-m;i
  6. printf("\n Heso A[%d]=",i); scanf("%f",&A[i]); } } /*************************************************/ Bài 6: Cho đa thức p(x) bậc n . viết chương trình xác định các hệ số của đa thức p(y+ c) theo sơ đồ Hoocner tổng quát. Thuật toán : - Nhập n, c, hệ số của đa thức ai(i= ) - hoocnertq (A, n, c) Lặp i=n  1 Lặp j=1  i Ai=Ai-1*c+Ai - In ra đa thức p(y+c) Chương trình : #include #include #include #define MAX 20 /*************************************************/ void hoocnertq(float A[],int n,float c); void inra(float A[],int n); void nhap(float A[],int n); /*************************************************/ void main() { float A[MAX], x,a,b; int n,m,chon; printf("\n Nhap vao bac cua dathuc n="); scanf("%d",&n); nhap(A,n); printf("\n Nhap vao giatri c="); scanf("%f",&x); hoocnertq(A,n,x); printf("\n Phuongtrinh P(x+%5.2f)=",x); inra(A,n); getch(); } /*************************************************/ void hoocnertq(float A[],int n,float c) { int i,j; for(i=n;i>=1;i--) for(j=1;j
  7. void inra(float A[],int n) { //In ra ptrinh int i; for(i=0;i0?'+':' '),A[i],n-i); } /*************************************************/ void nhap(float A[],int n) { int i; for(i=0;i eps) - Xuất s; Khai báo hàm : sin(x) - n=3; s=0; a=x; - Lặp s+=a; a*=(-(x*x)/(n*(n-1))); n+=2; trong khi |a|>eps Khai báo hàm : cos(x) - n=2; s=a=1; - Lặp a*=(-(x*x)/(n*(n-1))); s+=a; n+=2; trong khi |a|>eps Chương trình : #include #include #include
  8. #define MAX 20 #define eps 1e-3 /*************************************************/ float sinx(float x); float cosx(float x); float expx(float x); /*************************************************/ void main() { float x; int chon; printf("\n Muon' tinh :"); printf("\n 1. Sin(x)"); printf("\n 2. Cos(x)"); printf("\n 3. e^x"); do { printf("\n Ban chon 1-3 :"); scanf("%d",&chon); } while(chon3); printf("\n Nhap giatri x="); scanf("%f",&x); switch(chon) { case 1: printf("\n Sin(%5.2f)=%5.2f",x,sinx(x)); break; case 2: printf("\n Cos(%5.2f)=%5.2f",x,cosx(x)); break; case 3: printf("\n e^%5.2f=%5.2f",x,expx(x)); break; } getch(); } /*************************************************/ float sinx(float x) { float s,a; int n=3; s=0; a=x; do{ s+=a; a*=(-(x*x)/(n*(n-1))); n+=2; }while(fabs(a)>eps); return(s); } /*************************************************/ float cosx(float x) {
  9. float s,a; int n=2; s=a=1; do{ a*=(-(x*x)/(n*(n-1))); s+=a; n+=2; }while(fabs(a)>eps); return(s); } /*************************************************/ float expx(float x) { float s,a; int n=2; s=1; a=x; do{ s+=a; a*=x/n; n++; }while(fabs(a)>eps); return(s); } /*************************************************/ CHƯƠNG VI: GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH Bài 7: Viết chương trình tìm nghiệm cho các dạng tổng quát : f(x)= a0xn + a1x n-1+ ...+ an-1 x + an = 0
  10. a.Áp dụng phương pháp chia đôi b.Áp dụng phương pháp dây cung Thuật toán: * Phương pháp chia đôi: float chiadoi(float A[],int n,float a,float b) với a, b là khoảng nghiệm. - Lặp: c= (a+b)/2 nếu f(b).f(a) > 0 thì a = c không thì b = c trong khi |a-b| >eps * Phương pháp dây cung: float daycung(float A[],int n,float a,float b) với a, b là khoảng nghiệm. - Lặp: x=a-(b-a)*f(A,n,a)/(f(A,n,b)-f(A,n,a)); nếu f(x) = = 0 trả về x ngược lại nếu f(x).f(a) eps) ngược lại lặp a=x x = a-(b-a).f(a)/(f(b)-f(a)) trong khi |x-a|>eps Chương trình: #include #include #include #define MAX 20 #define eps 1e-3 /**************************************************/ float chiadoi(float A[],int n,float a,float b); float daycung(float A[],int n,float a,float b); float f(float A[],int n,float x); /**************************************************/ void main() { float a,b,A[MAX]; int i,n; printf("Chuongtrinh tim nghiem cua pt a(0)*x^n+a(1)*x^(n-1)+...+a(n-1)*x+a(n)=0\n"); printf("Nhap vao bac pt :"); scanf("%d",&n); for(i=0;i
  11. printf("\nHeso A[%d]=",i); scanf("%f",&A[i]); } Do { printf("Nhap vao khoang nghiem [a,b] voi'f(a)*f(b)
  12. } while(fabs(x-a)>eps); } else { do { a=x; x=a-(b-a)*f(A,n,a)/(f(A,n,b)-f(A,n,a)); } while(fabs(x-a)>eps); } } return x; } Bài 8:Viết chương trình tìm nghiệm cho phương trình : ex -10x +7=0 bằng phương pháp tiếp tuyến Thuật toán: Lặp y = x; x = y - f(y)/f’(y) trong khi |y - x| > epsilon Chương trình: #include #include #include #define eps 1e-3 /*******************************************/ float f(float x); float fdh(float x); /*******************************************/ void main() { int n; float x,y; printf("\n Nhap vao giatri x="); scanf("%f",&x); do { y=x; x=y-f(y)/fdh(y); } while(fabs(y-x)>eps); printf("\n Giatri nghiem la : %10.3f",y); getch(); } /*******************************************/ float f(float x)
  13. { return (exp(x)-10*x+7); } /*******************************************/ float fdh(float x) { return (exp(x)-10); } /*******************************************/ Bài 9: Viết chương trình tìm nghiêm cho phương trình :x3 - x -1= 0 bằng phương pháp lặp. Thuật toán: - Khai báo hàm g(x) - Nhập nghiệm gần đúng x - Lặp y=x x = g(x) trong khi | y-x| > eps - Xuất x Chương trình: #include #include #include #define eps 1e-3 float f(float x); float lap(float x0); /******************************************/ void main() { float a; printf("\n Chuongtrinh tim nghiem pt theo pp lap"); printf("\n Nhap 1 giatri : "); scanf("%f",&a); printf("\n Nghiem gan dung' la: %7.3f",lap(a)); getch(); } /******************************************/ float f(float x) { return(exp((1.0/3)*log(x+1))); } /******************************************/ float lap(float x0) { float tmp; do {
  14. tmp=x0; x0=f(x0); } while(fabs(x0-tmp)>eps); return(tmp); } /******************************************/ Bài 10: Viết chương trình xác định giá trị x1, x2 theo định lý 3 Thuật toán: - Nhập hệ số của đa thức - Tìm m1 sao cho m1 = max{|ai|} với i= - Tìm m2 sao cho m2 = max{|ai|} với i= - Tìm x1= - Tìm x2= - Xuất x1, x2 Chương trình: #include #include #include #define MAX 20 void main() { int i,n; float A[MAX],max; printf("\n Nhap bac cua pt :"); scanf("%d",&n); for(i=0;i
  15. Thuật toán: - Nhập hàm f(x) - Nếu a[0]>0 + Tìm giá trị lớn nhất a = max{|ai|} với i= sao cho ai
  16. Bài 3: Viết chương trình giải hệ phương trình đại số tuyến tinh bằng phương pháp Gauss a) Nhập dữ liệu trực tiếp b) Nhập dữ liệu từ file Thuật toán: - Nhập n, aij(i= 1, n , j= 1, n  1 ) - Biến đổi A  A’ (ma trận tma giác trên) Lặp i=1  n-1 + Nếu aij=0  Tìm j sao cho aij#0 (j=i+1  n)  Nếu j
  17. scanf("%d",&n); printf("\n 1.Nhap du lieu truc tiep "); printf("\n 2.Nhap du lieu tu file "); do {printf("\n Ban chon:"); scanf("%d",&tt);} while(tt!=1&&tt!=2); switch(tt) { case 1: nhap(); Gauss(); break; case 2: input_from_file(); Gauss(); break; } printf("\n ----------------------------------------------------------------"); printf("\n Xuat nghiem ra man hinh de xem :"); xuat(); fflush(stdin); printf("\n Ban co muon tiep tuc khong (c/k)?\n"); scanf("%c",&key); if(key!='c') break; } } /*-------------------------------Cac ham con-----------------------------------*/ // Dinh nghia ham nhap du lieu tu file void input_from_file() { int i=1,j=1; FILE *fp; fp=fopen("INPUT.txt","rt"); if(fp==NULL) { printf("\n Can't open this file.Please try again."); exit(1); } else { while(!feof(fp)) { fscanf(fp,"%f",&A[i][j]); if(j==n+1) { i++; j=1; } else j++; } } fclose(fp); }
  18. //ham nhap du lieu truc tiep void nhap() { for(int i=1;i
  19. // Thuc hien hoan chuyen hai hang cho nhau for(k=1;k
  20. int n; void nhap(); void input_from_file(); void xuat(); int Gauss_S(); /*----------------------------Chuong trinh chinh--------------------------------*/ void main() {int tt;char key;int dem; while(1) { printf("\n------------------------He Phuong trinh--------------------------"); printf("\n Moi ban nhap n.Theo ma tran de bai ban nhap n=:"); scanf("%d",&n); printf("\n 1.Nhap du lieu truc tiep "); printf("\n 2.Nhap du lieu tu file "); do {printf("\n Ban chon:"); scanf("%d",&tt);} while(tt!=1&&tt!=2); switch(tt) { case 1: nhap(); dem=Gauss_S(); break; case 2: input_from_file(); dem=Gauss_S(); break; } printf("\n ----------------------------------------------------------------"); if(dem
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2