Wednesday, February 15, 2017

Tính toán dài

Tính toán trong vật lý, đặc biệt trong hấp dẫn và tương đối rộng, hình học Riemann nhiều chiều, thường rất cồng kềnh.
Tất nhiên nếu dùng được tính toán symbolic thì tốt nhất. Nhưng thực tế, lập trình chỉ có thể làm được khi tính xong bằng tay. Vì vậy các gói tính symbolic chỉ tốt và tiết kiệm khi phải tính lại nhiều lần cho các trường hợp riêng. Khi tính lần đầu đành phải tính bằng tay. Đó là thực tế.
Trước tôi vẫn tính trên giấy. Có lần tính hết cả chục kg giấy cho một bài báo. GS Balachandra nói chưa thấy ai thực hiện phép tính tay khủng khiếp như vậy. Lấy công làm lãi.
Gần đây tôi bắt đầu gõ các công thức bằng LATEX. Tuy có kinh khủng hơn thật. Nhưng thực ra lại đỡ tốn công hơn về sau. Số là: Công thức có thể rất dài. Nhưng sau khi gõ, ta có thể thực hiện dần dần. Mỗi bước, chỉ cần thực hiện một phép nhân hoặc một phép giản lược. Sau đó copy và past toàn bộ sang bước tiếp. Thực tế, sai sót khi tính tay thường là ở khâu chép công thức, mất dấu, sót thừa số, sai chỉ số. Cắt dán thì không thể sai được. Do đó nếu phép tính rất lớn, thì khâu cắt dán tiết kiệm được rất nhiều công sức chép công thức. Khi đó gõ các công thức ban đầu cũng giống như đầu tư hạ tầng cơ bản. Nếu công trình lớn, đầu tư hạ tầng sẽ chia sẻ chi phí rất tiết kiệm. Nếu công trình nhỏ dĩ nhiên không cần đầu tư hạ tầng. Hơn nữa, các công thức đều sẵn sàng đầy đủ nên khi chuyển sang viết bài rất tiện kiểm tra và cắt dán. Bài tính lại rất sạch sẽ, dễ nhìn, dễ sửa.
Tuy vậy các học trò của tôi lại phát triển cách làm này thêm, bằng cách gõ công thức trên doc. Do đó sửa trực tiếp dễ hơn LATEX. Họ cũng cắt công thức và chuyển sang LATEX khi viết bản thảo được. Thấy có lý nhưng có lẽ mình già nên không muốn thay đổi thêm và dùng LATEX quen thấy đẹp và sướng rồi. Thế mới biết làm cách mạng phải có tiếp nối. Mình nghĩ ra tư tưởng cách mạng nhưng vẫn không dám triệt để, vẫn còn hạn chế cá nhân, chỉ nửa chừng phải giao cho người khác làm tiếp.


Nguyễn Ái Việt (Debrecen,VIDI72)

1 comment:

  1. Ca Vu Thanh: Tôi có vài ý kiến:
    1) Bác không nên tính bằng tay. Bác nghĩ kỹ thuật toán, viết thành flow chart rồi viết chương trình theo flow chart đó. Bác chỉ chỉ cần tưởng tượng ra cần phải tính ra sao rồi mường tượng các bước cần tính trong đầu. Sau đó bác viết chương trình, tính thử rồi kiểm tra kỹ các bước, sửa sai. Bác đừng tính bằng tay. Tính bằng tay là bác cực kỳ lãng phí tài nguyên. Đã khoảng 30 năm nay tôi không tính bằng tay nữa rồi bác ạ. Ít nhất là tính bằng excel với các bài toán đơn giản. Rất dễ lập trình. Bác học trong khoảng 5 phút.
    2) Tôi đã dùng Latex khoảng 20 năm trước; sau đó chuyển toàn bộ thành MS Word. MS Word đẹp và đơn giản hơn Latex nhiều. Bác học được cách đánh máy bằng MS Word trong khoảng 2 phút.

    ReplyDelete