Chủ đề: Hỏi về đa thức Lagrange
-
24-09-2008, 08:28 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hỏi về đa thức Lagrange
Đề bài là hãy viết chương trình tính gần đúng hàm số y =f(x) với bảng giá trị x, y cho trước = đa thức Lagrange.
Em viết như sau để tình L[i] thì chạy được.
Mã:#include <stdio.h> #define n 2 main() { float x[n], y[n], temp, X; int i,j; printf("Nhap vao so x: "); scanf("%f",&X); for (i=0; i<= n; i++) { printf(" x[%d] ", i); scanf("%f", &x[i]); } for(i=0; i <= n; i++) { temp = 1; for(j=0; j <= n; j++) if (j!=i) temp = temp*( (X-x[j]) / (x[i]-x[j]) ); printf(" %f",temp); } }
Mã:#include <stdio.h> #define n 2 void main() { float x[n], y[n], L[n], X; int i,j; printf("Nhap vao so x: "); scanf("%f",&X); for (i=0; i<= n; i++) { printf(" x[%d] ", i); scanf("%f", &x[i]); } for(i=0; i <= n; i++) { L[i] = 1; for(j=0; j <= n; j++) if (j!=i) L[i] = L[i]*( (X-x[j]) / (x[i]-x[j]) ); printf(" %f",L[i]); } }
ThanksView more random threads:
- Về cách phân nhánh trong thuật toán quay lui
- v/v Tệp trong C
- Cần giúp đỡ về Khai báo trong C++
- Đọc số phần tử (số nguyên) có trong file txt
- xin các cao thủ code hãy giúp em bài cuối kì ạ !
- Tính Toán Số Học
- [C++] Bài toán quy đổi tiền
- hiển thị từng bước
- Giúp em sáng tỏ 2 vấn đề về con trỏ này với!
- Bài tập về mảng một chiều
-
24-09-2008, 11:34 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Đang cần gấp. Ai giúp em với ạ
-
24-09-2008, 02:42 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Khi mình thêm đoạn bôi đen vào thì lại nhận được kết quả khác. Trong khi biểu thức tính L[i] của mình ko liên quan gì đến y[i]. Lỗi này là sao vậy
- Khi bạn khai báo biến float x[n], y[n], L[n], X; ở đây n=2 bạn đã cấp phát cho mỗi mảng x,y,L được 2 vùng nhớ mỗi vùng 4 byte
- Nhưng khi bạn nhập mảng: for (i=0; i<= n; i++) nhìn vòng lặp có thể thấy bạn nhập đến 3 phần tử, vậy là mảng bị thiếu nên giá trị nhập vào cuối không còn chính xác, một số compile C khá thoải mái đã không báo lỗi này, dẫn đến kết quả thu được bị sai không rõ nguyên nhân.
- Giờ bạn chỉ sửa lại một chút phần nhập mảng x,y là chạy tốt.
Have fun!
-
24-09-2008, 02:55 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình thấy nó cho kết quả giống nhau mà, không sai gì cả. Nhưng bạn cần chú ý cách trình bày code
Mã:#include <stdio.h> #define n 2 void main() { float x[n], y[n], L[n], X; int i,j; printf("Nhap vao so x: "); scanf("%f",&X); for (i=0; i<= n; i++) { printf(" x[%d] ", i); scanf("%f", &x[i]); } for(i=0; i <= n; i++) { L[i] = 1; for(j=0; j <= n; j++) if (j!=i) L[i] = L[i]*( (X-x[j]) / (x[i]-x[j]) ); printf(" %f",L[i]); } }
-
24-09-2008, 05:39 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình dùng C-Free dịch thì lại được rồi. Thanks bạn
Nhưng mình có 1 thắc mắc
Mã:#include <stdio.h> #define n 2 void main() { float x[n], y[n], L[n], X; int i,j; printf("Nhap vao so x: "); scanf("%f",&X); for (i=0; i<= n; i++) { printf(" x[%d] ", i); scanf("%f", &x[i]); } for (i=0; i<= n; i++) { printf(" y[%d] ", i); scanf("%f", &y[i]); } for(i=0; i <= n; i++) { L[i] = 1; for(j=0; j <= n; j++) if (j!=i) L[i] = L[i]*( (X-x[j]) / (x[i]-x[j]) ); printf(" %f",L[i]); } }
Thanks
-
24-09-2008, 06:32 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- hà nội
- Bài viết
- 0
Đã update câu hỏi. Mong mọi người chỉ giùm [IMG]images/smilies/smile.png[/IMG]
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...