Hỏi/Đáp

 Chào mừng các bạn đến với blog  Maplevn2008’s Blog .

Blog bao gồm nhiều Category như :

1. Giới thiệu về Maple

2.  Tính toán cơ bản 

3.  Lập trình cơ sở

4.  Học qua ví dụ mẫu

5.  Lập trình Form

6.  Xác suất thống kê

7. Thư viện code 

8. Tài liệu

9. Bài tập tổng hợp

Trong mỗi Category có nhiều bài viết liên quan đến chủ đề đó.

 Các bạn mới làm quen với Maple nên vào các Category “Tính toán cơ bảnTài liệu để tìm hiểu cơ bản và tham khảo một số tài liệu hướng dẫn sử dụng Maple mà mình đã upload lên.

Các bạn muốn tìm những vấn đề liên quan đến kiến thức lập trình trên Maple có thể vào Lập trình cơ sở  và Lập trình Form để xem . Ngoài ra trong Học qua ví dụ mẫu cũng có nhiều ví dụ có thể giúp ích cho các bạn.

Các vấn đề thắc mắc về việc sử dụng Maple các bạn có thể viết comment ở đây, mình sẽ cố gắng trả lời trong thời gian sớm nhất ( tất nhiên là nếu có thể).

Chú ý:  Các dấu nháy kép (1 loại) và nháy đơn (2 loại) ở các đoạn lệnh ở một số vị trí đã bị  WordPress chuyển thành dấu nháy khác. Có thể sửa lại như  sau:

luuy

Các dấu nháy ở trường hợp 1 và 2 có cùng ý nghĩa là để kí hiệu xâu. Trường hợp 3 phân biệt với trường hợp 2 ở chỗ là trường hợp 3 dùng để kí hiệu tên biến trong lệnh print ( lúc đó chỉ in tên biến mà không in ra giá trị) hay dùng trong phép gán để xóa giá trị của biến.

Trả lời

  1. Làm sao để tìm đạo hàm ẩn ? Chỉ giúp mình với. Cám ơn.

    • Chẳng hạn để tính đạo hàm ẩn của y theo x, trong đó F(x,y)=0, ta có thể gõ lệnh
      >implicitdiff(F(x,y),y,x);

  2. Minh moi tim hieu ve Maple. cho minh hoi lam sao de nhom vai cau lenh trong maple.
    va tai sao khi minh lay 2 ma tran T1,T2 nhan voi nhau thi ket qua chi la T1.T2?
    thanks

    • Trả lời bạn doankimngan:
      1. Nếu bạn đã gõ lệnh ở các dòng liên tiếp liền nhau thì để nhóm chúng lại, bạn có thể bôi đen vùng lệnh, rồi vào Edit->Split or Join->Join Excution Groups (có thể dùng phím tắt F4)
      Nếu bạn muốn gõ các lệnh trong cùng 1 group thì thay vì bạn nhấn Enter, bạn nhấn Shift-Enter, động tác này chỉ có tác dụng xuống hàng mà không tạo group mới.
      2. Câu hỏi của bạn mình không được hiểu cho lắm. Tuy nhiên, theo minh có lẽ bạn mắc phải lỗi “phép gán giá trị”. Chú ý: Phép gắn giá trị là dấu “:=” (hai chấm bằng). Dấu “=”(bằng) chỉ có tác dụng hiển thị kết quả cho đẹp mà thôi.Ví dụ:
      >T1=Matrix([[1,2],[3,2]]);
      >T2=Matrix([[3,1],[2,5]]);
      >T1.T2; # kết quả sẽ như bạn hỏi
      Còn nếu bạn gõ:
      >T1:=Matrix([[1,2],[3,2]]);
      >T2:=Matrix([[3,1],[2,5]]);
      >T1.T2; #kết quả là một ma trận 2×2

  3. Cho mình hỏi : Ví dụ khi mình giải phương trình sin(x)=0 với lệnh solve(sin(x)=0,x) thì Maple chỉ cho 1 nghiệm x=0. Vậy mình muốn Maple cho nghiệm tổng quát luôn có được không? Cám ơn.

    • Để tìm tất cả các nghiệm bạn có thể viết như sau:
      >_EnvAllSolutions:=true;
      >solve(sin(x)=0,x);
      Lúc đó nghiệm có dạng :\pi Z1~
      Dấu “~” chỉ rằng biến _Z1 là biến đã được đặt điều kiện. Bạn có thể xem các thông số qua lệnh
      >about(_Z1);

  4. Các chức năng của maple liên quan tới hàm mũ và logarith như thế nào mấy anh. Tui làm hoài mà chẳng thu hoach là bao?
    Anh em nói phác thảo sơ sơ về mấy cái đó cho tui học hỏi với.

    • Chú ý rằng trong Maple hàm ln(x) được viết là log(x) hoặc ln(x), hàm log_a b được viết là log[a](b), hàm e^x được viết là exp(x).

  5. Bạn có thể giải thích rõ hơn một tí về phương pháp Monte-Karlo để tính tích phân được không ?

  6. Trả lời bạn huycoi:
    Câu hỏi của bạn hơi đi xa chủ đề Maple một tí. Mình đã sửa lại cái post ấy rồi, bạn có thể xem lại.
    http://maplevn2008.wordpress.com/2008/11/16/tinh-tich-phan-b%E1%BA%B1ng-ph%C6%B0%C6%A1ng-phap-monte-karlo/

  7. Lệnh phân tích đa thức thành nhân tử trong maple là gì ấy anh nhỉ? Tiện tay phân tích cho em con này với:
    (((x^2-2)^2-2)^2-x-2

  8. Để phân tích đa thức thành nhân tử, em có thể dùng lệnh factor. Cụ thể với ví dụ của em, em có thể gõ
    >f:=((x^2-2)^2-2)^2-x-2;
    >factor(f);
    Kết quả:
    \left( x-2 \right)  \left( x+1 \right)  \left( {x}^{3}-3\,x+1 \right)  \left( {x}^{3}+{x}^{2}-2\,x-1 \right)
    Em có thể xem thêm ở đây:
    http://maplevn2008.wordpress.com/2008/11/14/l%E1%BB%87nh-factor/

  9. Hình ảnh trái tim 3D ở đây : http://maplevn2008.wordpress.com/2008/12/01/hinh-%E1%BA%A3nh-trai-tim-3d/
    rất đẹp. Thế hình ảnh trái tim 2D thì thế nào hả anh/chị ?

  10. Cho em hỏi sau khi mình đã vẽ đồ thị rồi thì làm sao có thể thay đổi kích thước cũng như quay đồ thị hả anh ?

  11. Trả lời bạn thanhthanh:
    Hình ảnh trái tim 2D bạn có thể xem ở đây :
    http://maplevn2008.wordpress.com/2008/12/02/hinh-%E1%BA%A3nh-trai-tim-2d/

  12. Trả lời bạn vanboi:
    Có 2 cách:
    -Dùng chuột : click vào đồ thị, bạn thấy xuất hiện một thanh công cụ cho phép tinh chỉnh đồ thị
    -Dùng lệnh :
    +plottools[rotate] : quay đồ thị
    +plottools[scale] : co giãn đồ thị
    Nếu có thời gian rãnh, mình sẽ post bài sau.

  13. Chú ý: Toàn bộ dấu nháy kép đều là dấu nháy kép thông thường .Tuy nhiên 1 số vị trí WordPress chuyển thành dấu nháy khác. Các bạn chú ý sửa lại khi copy lệnh.

  14. Bài viết “Tạo số ngẫu nhiên trong khoảng (0,1) ”
    rất hay. Tuy nhiên kết quả tạo ra là một list các số. Vậy mình muốn tạo ra một số ngẫu nhiên bất kì khi gọi lệnh thì làm thế nào ?

  15. Trả lời bạn huynhtien:
    Câu hỏi của bạn rất thú vị. Theo mình có thể căn cứ vào thời gian hệ thống mà lập trình. Mình đã bổ sung thêm 1 procedure vào bài cũ, bạn có thể xem thêm.
    http://maplevn2008.wordpress.com/2008/12/07/t%e1%ba%a1o-s%e1%bb%91-ng%e1%ba%abu-nhien-trong-kho%e1%ba%a3ng-01/

  16. Bạn có thể giúp mình được k?Các ứng dụng của Maple để tính diện tích và thể tích hình tròn xoay. và cả cách vẽ đồ thị biểu diễn nữa( Ví dụ như tính thể tích giới hạn bơi y=f(x), x=a,x=b khi quay quanh trục ox, oy).
    Cám ơn bạn!

  17. Trả lời bạn ngocmai:
    Cách tính và minh họa mặt tròn xoay bạn có thể xem ở đây
    http://maplevn2008.wordpress.com/2008/12/25/m%e1%ba%b7t-tron-xoay-minh-h%e1%bb%8da-va-di%e1%bb%87n-tich/
    Đối với trường hợp thể tích mình sẽ post lên sau .

  18. Co ai co tai lieu nao day du ve lenh dsolve cho toi xem voi. Toi dang can gap. Cam on nhieu!!!

  19. Lệnh dsolve là một lệnh giải tổng hợp: giải số, giải giải tích, giải dạng chuỗi,.. của phương trình và hệ phương trình vi phân. Bạn có thể tìm cụm từ “dsolve” trong blog để thấy 1 vài ví dụ. Ngoài ra bạn nên xem thêm trong help:
    > ?dsolve/numeric
    > ?dsolve/series
    > ?dsolve/system
    > ?dsolve/integral_transform

  20. mình có một matrix 3×3 là A .
    A11= cos(x)
    A12=sin(x+y)
    A13=0
    A21=sin(y)
    A22=sin(x)*sin(x)
    A23=0
    A31= sin(x)
    A32= 0
    A33=1
    Mình muốn tìm ma trận đạo hàm của matrix A nay .
    Mong bạn giúp mình với !!!

  21. Trả lời bạn baocam:
    Mình viết lại ma trận của bạn bằng ngôn ngữ Maple
    >A:=Matrix([[cos(x),sin(x+y),0],[sin(y),sin(x)*sin(x),0 ],[sin(x),0,1]]);
    Theo mình được biết, đạo hàm ma trận có 2 cách hiểu :
    1. Cách 1: đạo hàm theo từng thành phần
    -đạo hàm theo biến x cấp 1
    >map(diff,A,x);
    -đạo hàm theo biến x cấp 2
    >map(diff,A,x$2);
    -đạo hàm theo biến x cấp 3,4,…
    - tương tự đạo hàm theo biến y
    >map(diff,A,y);
    >map(diff,A,y$2);
    2. Cách 2: đạo hàm dòng 1 (các dòng khác giữ nguyên),đạo hàm dòng 2 (các dòng khác giữ nguyên),….rồi lấy tổng. Như thế ta thu được một ma trận mới trong đó mỗi phần tử bằng n-1 lần phần tử cũ cộng với đạo hàm của nó. Chẳng hạn bạn cần tính đạo hàm theo biến x (n=2) bạn có thể viết:
    >f:=t-> diff(t,x)+t;
    >map(f,A);
    Để biết thêm về lệnh map bạn có thể search từ khóa “map” trong blog.

  22. thanks! mình sẽ nghiên cứu tiếp cái openmaple nay`, khi nao` co’ kết quả minh` sẽ nói với bạn.

  23. Bạn có thể hướng dẫn mình cách sử dụng Maple để giải phươg trình vi phân và làm các bài tập môn hình học hoạ hình được không?
    Cám ơn ban nhiều!

  24. Lệnh để giải phương trình và hệ phương trình vi phân là lệnh dsolve. Bạn có thể search từ “dsolve” trong blog để xem 1 vài ví dụ. Đây là một lệnh tổng hợp, bạn nên xem thêm trong Help.
    Môn hình học họa hình thì mình chỉ có nghe nhắc đến tên thế thôi chứ cụ thể thì mình không rõ.

  25. Thầy cho em hỏi là dùng maplets để tạo một giao diện để thực hiện bài toán giải hệ phương trình tuyến tính bằng phương pháp Gauss thì phải làm sao ạ? Em xem trong Tutors có giao diện đấy mà không tìm thấy chương trình nguồn. Thầy chỉ giúp em với ạ. Em cảm ơn thầy trước

  26. Mình mới tìm hiểu về maple. Và mình đang gặp khó khăn trong việc vẽ một k – ellipses. MÌnh đang rất cần. Các bạn giúp mình với.

    • Bạn có thể xem một vài ví dụ:
      > s1:=sqrt((x-1)^2+(y-2)^2) + sqrt((x+1)^2 + (y-2)^2)-4;
      > plots[implicitplot](s1,x=-5..5,y=-5..5, scaling=constrained);
      > s2:=sqrt((x-2)^2+(y-1)^2)+ sqrt((x+1/2)^2 +(y-3)^2)+ sqrt(x^2+y^2)-9;
      > plots[implicitplot](s2,x=-10..10,y=-10..10, numpoints=3000, scaling=constrained);
      Lệnh implicitplot trong gói plots là lệnh dùng để vẽ đồ thị ẩn f(x,y)=0. Bạn nên xem thêm lệnh này trong Help.
      Tham số numpoints: số điểm xấp xỉ khi vẽ
      scaling=constrained : tỉ lệ đồ thị 1:1

  27. Vẫn với k-ellipses trên, mình muốn hỏi thêm rằng có cách nào ta có thể khai báo hàm >sk:= dưới dạng tổng quát theo k, u[i] và v[i] để ta chỉ việc gán hay nhập giá trị của k, u[i] và v[i] vào là có ngay 1 đồ thị mới và (nếu có) thì ta phải khai báo các giá trị k, u[i], v[i] như thế nào?
    Rất cảm ơn bạn.

  28. Bạn phải lập trình 1 chút, ví dụ
    > u:=[1,-2,0,3];
    v:=[0,-4,1,2];
    d:=[4,7,9,13];
    n:=4;
    for k from 1 to n do
    s[k]:=add(sqrt((x-u[i])^2+(y-v[i])^2),i=1..k)-d[k];
    end do;
    Các lệnh vẽ nên tách riêng, chọn miền x,y phù hợp để cho đồ thị nhìn thấy hết
    > plots[implicitplot](s[1],x=-10..10,y=-5..5, scaling= constrained);
    > plots[implicitplot](s[2],x=-10..10,y=-6..6, scaling= constrained);
    Khi biểu thức s[k] phức tạp, để đồ thị đẹp hơn, bạn nên tăng số điểm xấp xỉ
    > plots[implicitplot](s[3],x=-10..10,y=-6..6,numpoints=3000, scaling = constrained);
    > plots[implicitplot](s[4],x=-10..10,y=-6..6, numpoints= 5000, scaling=constrained);

  29. Thầy có thể hướng dẫn em cách dùng Maple khai triển chuỗi Fuorier và ứng dung của việc khai triển chuỗi Fuorier thành xung tam giác, xung chữ nhật.. trong ngành điện tử được k?
    Và thầy chỉ cho em biết cách đánh dấu vùng tính diện tích giới hạn bởi nhiều đường cong với?
    Em cám ơn thầy nhiều

  30. Có vẻ bạn đang học ngành kĩ thuật nhỉ. Theo mình được biết trong Maple chỉ có lệnh thực hiện biến đổi Fourier mà không có lệnh khai triển thành chuỗi Fourier. Tuy nhiên chúng ta có thể viết một thủ tục như http://maplevn2008.wordpress.com/2009/02/11/khai-tri%e1%bb%83n-chu%e1%bb%97i-fourier/
    Vấn đề vẽ miền giới hạn bạn có thể xem ở đây:
    http://maplevn2008.wordpress.com/2009/01/11/h%c6%b0%e1%bb%9bng-d%e1%ba%abn-s%e1%bb%ad-d%e1%bb%a5ng-goi-inequalitygraphics/

  31. Chú ý: Vì đây là blog hướng dẫn sử dụng và lập trình trên Maple nên các vấn đề ở đây đều tập trung xung quanh chủ đề này.Các vấn đề đi sâu vào toán học cũng như các chuyên ngành khác các bạn có thể post trên các diễn đàn tương ứng.

  32. Cám ơn bạn nhiều lắm!
    Nhờ có Blog của bạn mà mình đã tiến bộ rất nhiều

    • Mình rất vui khi được mọi người ghé thăm blog của mình và càng vui hơn khi biết blog của mình giúp ích cho mọi người. ( admin)

  33. Em đã đọc ví dụ thầy gửi, em rất cảm ơn thầy. Tuy nhiên em muốn dùng maplets để thiết kế một giao diện để giải hệ phương trình tuyến tính bằng phương pháp Gauss ma trên giao diện đó thực hiện cả các phép biến đổi sơ cấp trên ma trận mở rộng chứ không chỉ cho ra kết quả, thầy giúp em với. Em cảm ơn thày nhiều!

    • Việc lập trình tính từng bước đòi hỏi viết code một cách công phu và cũng mất nhiều thời gian.Bạn có thể tự mình lập trình, nếu có vấn đề cần hỏi thì bạn có thể post lên ở đây để chúng ta cùng trao đổi.
      Chú ý: Khi lập trình tính từng bước với việc sử dung Maplet thì nhất thiết bạn phải sử dụng đến 2 lệnh Get và Set trong gói Maplets[Tools]. Bạn có thể xem hướng dẫn 2 lệnh này trong help.

  34. Blog của các bạn rất có ích.

  35. thanks thầy nhìu lém !!! ^^

  36. Em mới làm quen với Maple, có một vấn đề thắc mắc là với câu lệnh seq(a[i],i=1..10) chẳng hạn thì có lúc thực hiện được, có lúc Maple lại báo lỗi. Thầy có thể giải thích vì sao và cách sữa được không ?
    Cám ơn.

    • Lỗi ở đây có thể là do biến “i” đã mang giá trị, ví dụ:
      > i:=13;
      seq(a[i],i=1..10);
      sẽ có lỗi xuất hiện.
      Do đó, bạn nên “xóa” giá trị của biến này thông qua lệnh
      > i:=’i';
      hoặc
      > i:=evaln(i);
      Ví dụ:
      > i:=13;
      seq(a[i],i=1..10);
      > i:=’i';
      seq(a[i],i=1..10);
      Tuy nhiên, lỗi này hình như không còn tồn tại đối với các phiên bản Maple 11,Mapl 12 thì phải ?

  37. Admin: Các bạn nên search bằng từ tiếng việt có dấu để có thể tìm thấy kết quả dễ dàng hơn.

  38. Thưa thầy , Khi em dùng gõ lệnh
    plot3d(x^2+y^2-2*x*y,x=-2..2,y=-2..2);
    Nó hiện lên cái hình trong không gian 3D . Khi đó ta có thể xoay cái hình . Cho em hỏi là làm sao maple có thể làm được như vậy . Và khi em kết nối maple với java thì java có thể làm được như vậy ko ?
    Em có nghe thầy em nói là làm được. Hình như là kết nối với kernel thì fải . Vậy thầy có thể giúp em được không ạ ? Thanks thầy nhìu lém.

    • Java thì mình cũng chỉ biết qua loa thôi và mình cũng chưa bao giờ làm việc với đồ họa 3D trong Java cả. Tuy nhiên khi click chuột mà có thể xoay đồ thị thì đây là vấn đề lập trình xử lí các sự kiện về chuột. Khi kết nối Java và Maple có lẽ là các tính năng này không còn nữa vì đối tượng đồ họa của Maple quá phức tạp. Bạn nên hỏi lại thầy xem sao ?

  39. Thầy cho em hỏi nữa là khi em vẽ 2 đồ thị trên cùng 1 hình . Ví dụ :
    plot([x^2,2*x], x=-3..3,linestyle=[SOLID,DASH], color=[red,blue]);
    Làm cách nào để biết 2 đồ thị này cắt nhau ở những điểm nào và tọa độ bao nhiêu ạ ?

  40. Cái này có thể làm thủ công là giải hệ để tìm giao điểm, sau đó vẽ các điểm này và các đồ thị ban đầu vào trên cùng một hệ trục tọa độ. Cụ thể với ví dụ của bạn:
    > p1:=plot([x^2,2*x], x=-3..3,linestyle=[SOLID,DASH], color=[red,blue]);

    > giaodiem:=map(t->[rhs(t[1]),rhs(t[2])], solve({y=x^2, y=2*x}, [x,y]));

    > p2:=plots[pointplot](giaodiem,symbolsize=20);

    > plots[display](p1,p2);

  41. Minh muon biet cach giai 1 phuong trinh vi phan dao ham rieng voi cac dieu kien ban dau duoc lam nhu the nao ?
    Ban lam on cho minh 1 vi du cu the. Minh chi giai duoc pt vi phan dao ham rieng con co dieu kien ban dau lam nhu the nao minh khong biet . Mong duoc su giup do

    • Đúng là lệnh pdsolve theo như Help của Maple thì chỉ giải phương trình đạo hàm riêng mà không có điều kiện đầu. Tuy nhiên ta có thể xử lí như sau : Đầu tiên ta giải nghiệm tổng quát, sau đó thế vào điều kiện đầu rồi tìm các hằng số. Ví dụ:
      > pt:=diff(u(x,y),x)-diff(u(x,y),y,y)=2*x*y;
      > dk:={u(0,y)=0,u(x,0)=0,D[2](u)(x,0)=x^2};
      - tìm nghiệm tổng quát
      > re:=pdsolve(pt,u(x,y),build);
      - gán nghiệm tổng quát cho u
      > u:=unapply(rhs(re),x,y);
      - lúc này điều kiện đầu trở thành
      > dk;
      - cho (x,y) nhận một vài cặp giá trị (cụ thể ở đây là 2) để tìm các hằng số
      > eval(subs({x=0,y=0},dk));
      eval(subs({x=1,y=2},dk));
      r:=solve({op(%),op(%%)});
      - hệ này cho 2 ta nghiệm
      + kiểm tra với nghiệm đầu
      > subs(r[1],dk);
      > subs(r[1],u(x,y));
      + kiểm tra với nghiệm thứ hai
      > subs(r[2],dk);
      > subs(r[2],u(x,y));
      Rõ ràng cả 2 trường hợp đều thỏa mãn điều kiện và đưa đến cùng 1 nghiệm u(x,y)=x^2*y và ta kết luận đây là nghiệm cần tìm.
      Đây chỉ là cách nghĩ chủ quan của mình, bạn có thể xem như lời gợi ý để tham khảo.

  42. Thưa thầy, trong maple để vẽ 1 đường thẳng có tham số, 1 đường cong, 1 đường cong bậc 2 và 1mặt cong thì như thế nào ạ ? Xin thầy chỉ giúp em ạ. Thanks thầy nhìu

  43. Bạn có thể xem ví dụ hướng dẫn ở đây:
    http://maplevn2008.wordpress.com/2009/03/06/v%e1%ba%bd-do-th%e1%bb%8b-tham-s%e1%bb%91/

  44. Thầy cho em hỏi có lệnh nào hay hàm nào trong maple mà dùng để tìm toạ độ nguyên của 1 biểu thức ko?Ví dụ: tìm tọa độ nguyên y=(x^2+3*x)/(2*x+1);
    Thầy giảm giúp em bài : biện luận theo m số giao điểm của: (E) x^2/25 + y^2/9=1 và 2*(m+1)*x+3*m-4=0.
    Em cám ơn thầy!

    • Bạn có thể sử dụng lệnh tìm nghiệm nguyên để giải (lệnh isolve), tuy nhiên khi giải bạn nên đưa về pt dạng đa thức, chẳng hạn, với trường hợp của bạn
      > isolve(x^2+3*x=y*(2*x+1),{x,y});
      Câu hỏi thứ hai của bạn đi hơi xa chủ đề Maple. Thực chất đây chỉ là bài toán tìm số giao điểm cùa ellip với đường thẳng x=c.

  45. Thưa thầy, em đã xem link thầy đưa nhưng nó không có đầy đủ những gì em muốn hỏi . Phiền thầy giúp em ạ . Thank thầy nhìu

    • Theo mình nghĩ, đồ thị pt tham số cũng được phân thành 2 loại: trong mặt phẳng và trong không gian. Bạn có sự phân loại nào khác không ?
      Còn cách đưa về pt tham số thì bạn nên xem thêm trong giáo trình hình giải tích . Ví dụ: hình ellip : x=a*cos(t),y=b*sin(t),…..

  46. Em cám ơn thầy,nhưng còn bài toán:biện luận theo m số giao điểm của: (E): x^2/25 + y^2/9=1 và 2*(m+1)*x+3*m-4=0 là bài tập thầy giáo dạy maple giao cho về nhà làm đấy ạ,em vừa học maple đc 2tuần nên chưa biết nhiều.Em cám ơn thầy!

    • Đối với bài này bạn có thể dùng phương pháp đồ thị. Như mình đã nói trước, đây là bài toán tìm số giao điểm của đường thẳng x=c và ellip.
      + m=-1 : Không tồn tại giao điểm
      + m khác -1. Tính hệ số c , vẽ ellip và dựa vào hình vẽ ta có các trường hợp
      > c:=solve(2*(m+1)*x+3*m-4=0,x);
      > plots[implicitplot](x^2/25 + y^2/9=1,x=-5..5,y=-3..3,scaling=constrained);
      > print(“Co 1 giao diem khi”);
      solve(abs(c)=5,{m});
      > print(“Khong giao nhau khi”);
      solve(abs(c)>5,{m});
      > print(“Co 2 giao diem khi”);
      solve(abs(c)<5,{m});

  47. Nhờ bạn giúp mình bài: Viết phương trình tham số của mp 3*x+4*y-7*z+20=75

    • Có nhiều cách, chẳng hạn : x=u, y=v, z=(3u+4v-55)/7.

  48. Giai giup pt sau,

    pt:=log[3]((x^2+3*x+3)/(2*x^2+2*x+3))-x^2+x ;

    • Bài này có thể dùng phương pháp đồ thị.
      >f:=[log[3]((x^2+3*x+3)/(2*x^2+2*x+3));
      >g:=x^2-x;
      >plot([f,g],x=-1..2);
      Dựa vào đồ thị ta có ngay 2 nghiệm x=0 và x=1, và khi x>1 hoặc x<0 thì f<0<g; khi 0<x0>g.

  49. Tim giup so hang tong quat u(n) cua day sau

    rsolve({u(n+1)=(2*u(n)+1)/(u(n)+2),u(0)=2},{u(n)});

    • Đây là một pt truy hồi phi tuyến nên Maple sẽ không cho nghiệm tổng quát. Tuy nhiên Maple cho phép bạn tạo ra một procedure để tính giá trị của u(n) khi biết n.
      >U:=rsolve({u(n+1)=(2*u(n)+1)/(u(n)+2),u(0)=2},{u(n)},makeproc);
      >U(20);
      >U(30);
      Ngoài ra pt dạng trên có thể đưa về hệ tuyến tính nhờ phép đặt u(n)=v(n)/w(n). Thay vào và đồng nhất tử mẫu, chọn giá trị đầu phù hợp ta được hệ:
      >eqs:={v(n+1)=2*v(n)+w(n),w(n+1)=v(n)+2*w(n),v(0)=2,w(0)=1};
      Lúc này nghiệm u(n) sẽ là
      >simplify(subs(rsolve(eqs,{v(n),w(n)}),u(n)=v(n)/w(n)));

  50. Cam on ban ve loi giai hai bai toan tren.
    Tuy nhien tai sao dung lenh solve hay fsolve deu thieu nghiem
    Lam sao de biet lop bai giai pt hay day nhu the nao thi khong nen kiem tra bang maple

    • -Lệnh solve cho nghiệm giải tích còn lệnh fsolve tìm nghiệm số. Đối với trường hợp đa thức thì các lệnh này làm việc rất tốt, tuy nhiên đối với pt phức tạp thì công cụ giải số thông thường chỉ cho phép tìm nghiệm trên những khoảng xác định hay thực hiện phép lặp tìm 1 nghiệm với giá trị đầu. Điều này dẫn tới sự “thiếu nghiệm” như bạn đã nói.
      - Để biết một lệnh có thể áp dụng cho lớp bài toán nào thì bạn có thể xem hướng dẫn trong Help , ngoài ra khi bạn thường xuyên sử dụng thì cũng có thể đúc kết một ít kinh nghiệm cho bản thân.

  51. Cam on ban nhieu. Cho hoi lenh gi de tinh dien tich hinhf phang gioi han boi cac duong y=f(x), y=g(x), x=a,x=b.

    • Mình cũng không rõ có lệnh này hay không nhưng đây là bài toán cơ bản và bạn có thể tính bằng công thức
      > int(abs(f(x)-g(x)),x=a..b);

  52. cho mình hỏi nếu muốn tìm tọa độ của một vector a(1,0,-1) đối với một cơ sở U=,trong đó
    u1=(1,1,2),u2=(-1,1,1),u3=(2,-1,0)
    thì fải làm như thế nào???? Thanks !^!

    • Mình chưa gặp lệnh nào có chức năng tìm tọa độ của 1 vecto qua cơ sở. Tuy nhiên, ý tưởng chính của lời giải là giải hệ (x,y,z) :
      a=x*u1+y*u2+z*u3. Điều này được thực hiện nhanh chóng trên Maple như sau:
      > with(LinearAlgebra);
      > a:=<1,0,-1>;
      > u1:=<1,1,2>;
      > u2:=<-1,1,1>;
      > u3:=<2,-1,0>;
      > td:=LinearSolve(<u1|u2|u3>,a);
      - kiểm tra lại :
      > td[1]*u1+td[2]*u2+td[3]*u3;

  53. ok,thanks,chỗ khúc mắc của mình là ở lệnh LinearSolve,chẳng hỉu nguyên tắc hđ của nó nên ko ứng dụng được,hjhj\^_^/

  54. Hiện nay em đang làm bài toán tối ưu dạng toàn phương có điều kiện. Việc giải bài toán này bằng maple em đã biết cách làm. Tuy nhiên, còn một yêu cầu nữa mà em chưa thể làm được. Đó là phải nhập dữ liệu từ file text, excel…vào maple (nhập các hệ số của hàm toàn phương, nhập các điều kiện rằng buộc). Thầy chỉ cho em cách nhập dữ liệu bằng maple với. Em cảm ơn thầy !!!

    • Bạn có thể xem ví dụ về ứng dụng lệnh ImportData ở đây :
      http://maplevn2008.wordpress.com/2009/03/17/import-export-d%E1%BB%AF-li%E1%BB%87u/
      Chú ý: Trường hợp bạn nhập dữ liệu từ Excel, bạn save file với đuôi CSV (chọn save as, chọn đuôi .CSV). Tuy nhiên đối với các phiên bản Maple 11 trở đi, Maple có cung cấp gói ExcelTools và bạn có thể tương tác trục tiếp với file xls. Khi sử dụng các lệnh Import thì dữ liệu phải đồng nhất.
      Vì bạn chưa đưa ra cấu trúc file dữ liệu nên mình khó có thể xác định cách xử lí cụ thể được. Mình xin đề nghị 1 phương án đơn giản: Sử dụng 1 file text lưu dữ liệu data.txt. (Giả sử C:\data.txt). Trong đó hàng đàu tiên lưu các hệ số. Các hàng tiếp theo mỗi hàng lưu 1 điều kiện. Luc này bạn có thể sử dụng đoạn lệnh sau:
      > fo:=fopen(“C:/data.txt”,READ);
      > s:=readline(fo);
      > close(fo);
      Các hệ số và các điều kiện:
      > hso:=map(parse,StringTools[Words](s));
      > dk:=ImportVector(“C:/data.txt”,skiplines=1);

  55. Cám ơn bạn đã chỉ dẫn cho mình. Mình xin nói rõ hơn về nội dung bài toán: Mình cần giải bài toán tối ưu dạng toàn phương f(x)->min có điều kiện ràng buộc tuyến tính. Trong đó các hệ số của f(x) mình đã lấy được trong excel (nhờ bạn giúp mình). Còn điều kiện ràng buộc mình cũng đã lấy được trong file text nhưng khi lắp ráp vào bài toán thì không chạy. Ví dụ giải bài toán sau:
    with(Optimization):
    f:=x1^2+x2^2;
    constr:=[x1+x2=1,x1>=0,x2>=0];
    K:=QPSolve(f,constr);
    điều quan trọng là: ở constr (tức là điều kiện ràng buộc) phải được lấy ở file text (chú ý là số điều kiện ràng buộc mình không biết trước).

    • Mình quên nhắc là lệnh
      > dk:=ImportVector(”C:/data.txt”,skiplines=1);
      ở phần trả lời trước thì dk ở đây có kiểu Vector. Chú ý: Trong lệnh QPSolve thì điều kiện phải có dạng tập hợp (set) hay dạng danh sách (list), do đó bạn phải thay đổi kiểu của dk, chẳng hạn sang kiểu list:
      >dk:=convert(dk,list);
      Với ví dụ của bạn: file C:\dk.txt chứa các điều kiện nằm trên các hàng khác nhau
      >with(Optimization):
      >f:=x1^2+x2^2;
      >constr:=ImportVector(”C:/dk.txt”);
      >constr:=convert(constr,list);
      >K:=QPSolve(f,constr);

  56. Cảm ơn bạn rất nhiều. Nhưng còn một việc cuối cùng nữa mình cần bạn giúp đỡ. Đó là làm cách nào để ghi kết quả của bài toán ra file text, excel ?

  57. À, mình tìm ra cách rồi. Cảm ơn bạn đã giúp đỡ mình. Cảm ơn rất nhiều !!!

  58. mình đang làm đề tài tìm hiểu về thư viện OpenMaple đề liên kết maple với chương trình. Bạn nào có gì kiến thức liên quan hoặc bài mẫu nào cho mình tham khảo với. Mình đang rất gấp.Cản ơn nhiều nhiều.

  59. Bạn có thể xem 1 số gợi ý về kết nối Maple với Java ở trang Maple/Java : http://maplevn2008.wordpress.com/maplejava/

  60. Thầy cho em hỏi có cách nào lấy biểu thức dưới dấu tích phân được không ? Chẳng hạn lấy biểu thức của tích phân sau:
    >Int(sin(x)*exp(-x),x=a..b);
    Em cám ơn.

  61. em co may bai maple hok biet lam sao day nua. chi gium em voi, gap lam luon:
    1.Cho haøm soá y = (m-2)x3 – mx + 2 (Cm)dinh m de do thi tiep xuc voi truc hoanh. kiem chung bang do thi
    2. viet phuong trinh tiep tuyen cua “do thi ham so” di wa 1 diem cho truoc
    3.. Tìm các số nguyên tố trong khoảng [1159, 1200]
    mong moi nguoi giup em voi, em con may bai nua . em cam on

    • Mình chỉ đưa ra một lời giải tham khảo cho câu 1 và câu 3. Câu 2 sẽ dễ dàng hơn nếu bạn cho hàm số cụ thể.
      Câu 1:
      > y:=(m-2)*x^3-m*x+2;
      > pt:=factor(y);
      > pt1:=op(1,pt);
      pt2:=op(2,pt);
      Trường hợp 1: x=1 là nghiệm của pt2.
      > subs(x=1,pt2);
      solve(%,{m});
      > plot(subs(m=3,y),x=-1..2);
      Trường hợp 2: pt2 có nghiệm kép.
      > a:=coeff(pt2,x,2);
      b:=coeff(pt2,x,1);
      c:=coeff(pt2,x,0);
      > Delta:=b^2-4*a*c;
      > solve(Delta,{m});
      Tất nhiên ta chỉ xét m khác 2.
      > plot(subs(m=-6,y),x=-1..0);
      Câu 3:
      > for i from 1159 to 1200 do
      if isprime(i) then print(i); fi;
      end;

  62. thank you very much,va cau 2 : f= x^3-x,va yeu cau la viet phuong trinh tiep tuyen di qua diem A(2/3,-1), chi giup em voi nhe, em cam on nhieu, con neu yeu cau viet phuong trinh tiep tuyen tai 1 diem thi sao nua a???
    a co the up len may bai lien quan den khao sat ham so va cac bai toan lien quan giong toan 12 khong, va cac bai giai ptrinh tham so,??

    con 1 bai nua, em muon hoi la cho 2 phuong trinh y=2 + sinx va y = 1 + cos2x , voi dieu kien x thuoc [0,pi], em giai phuong trinh roi thi duoc 2 nghiem x=-pi/2 va x=0 thi phai,
    vay em muonhoi la trong maple co lenh nao de chuyen tu x=-pi/2 thanh x=pi/2 thuoc [0,pi] vi trong toan hoc, giai 2 pt nay se ra dang nghiem tong quat la x=-pi/2+2k*pi.

    • Maple là một phần mềm toán học, bên cạnh các lệnh đã được xây dựng sẵn bạn có thể lập trình cũng như tính toán từng bước giống như bạn giải quyết vấn đề trên giấy.
      Đối với câu 2 qui tắc đơn giản là viết pt tiếp tuyến qua 1 điểm bất kì (x0,y0) trên đồ thị, rồi từ đó thu được hệ pt. Bạn có thể tự mình thức hiện các bước tính toán. Lời giải sau chỉ có tính tham khảo.
      - p.trình
      > pt:=y=x^3-x;
      -đạo hàm
      > dh:=diff(rhs(pt),x);
      -tiếp tuyến
      > tt:=y=subs(x=x0,dh)*(x-x0)+y0;
      -lập hệ
      > h1:=subs({x=2/3,y=-1},tt);
      > h2:=subs({x=x0,y=y0},pt);
      -giải hệ
      > res:=solve({h1,h2},{x0,y0});
      Có lẽ số liệu không phù hợp nên nghiệm không được “đẹp”. Chú ý chỉ chọn nghiệm thực.
      Đối với câu hỏi cuối mình chưa hiểu vấn đề mà bạn đặt ra. Tuy nhiên cần chú ý khi giải cách pt lượng giác. Ví dụ:
      >solve(sin(x)=0,x);
      chỉ cho ta 1 nghiệm x=0;
      Để thu nghiệm tổng quát, bạn gõ lệnh như sau:
      >_EnvAllSolutions:=true;
      >solve(sin(x)=0,x);

  63. EM CẢM ƠN. đúng là em tìm nghiệm tổng quát, nếu có gì thắc mắc về vấn đề này em sẽ hỏi thêm, mà em còn nhiều thắc mắc lắm vì em mới học maple mà.

  64. chỉ giùm em cách lập bảng biến thiên với a?
    và hàm đổi từ 0.5 thành 1/2. em cảm ơn

    • Bạn có thể xem trong sách giải tích 12. Maple chỉ giúp ta tính toán đạo hàm, tìm các điểm dừng và vẽ đồ thị minh họa thôi.

  65. Em đang dùng hàm s := readline(filename); với filename là file .txt Encoding Ansi để đọc từng hàng dữ liệu trong file txt. Nhưng khi em dùng file .txt Encoding Unicode hay UTF-8 để có thể đọc được Tiếng Việt thì kết quả trả về cho chuỗi s ko được như mong muốn.
    Cho em hỏi là nếu muốn load dữ liệu từ file có Tiếng Việt thì phải làm như thế nào, hoặc có thể dùng hàm nào khác để có thể đọc được Tiếng Việt ko? Em cám ơn!

    • Bạn vào Tools->Options->General->Encoding : chọn Unicode (UTF-8). Sau đó tắt Maple và khởi động lại. Lúc này mọi thứ lại bình thường giống như bạn dùng lệnh readline với tiếng Anh.

  66. ý của em là hàm để lập (vẽ) được bảng biến thiên, chứ các bước thì em đang làm rồi. vì nếu 1 bài khảo sát đủ thì có lập được bảng biến thiên mà.

    • Mình không rõ trong Maple có cung cấp lệnh vẽ bảng biến thiêng hay không, tuy nhiên ý tưởng của bạn về xây dựng một hàm để vẽ bảng biến thiêng cũng rất hay.

  67. Blog rat hay

  68. Em đang cần dùng cấu trúc dữ liệu cây (cây có 1 đến nhiều nhánh, ko phải cây nhị phân). Thầy vui lòng gợi ý cho em sơ về cách khai báo kiểu dữ liệu của 1 node trong cây.

    • Mình không biết nhiều về cái này cho lắm. Bạn có thể xem mô hình cây nhị phân của ví dụ có trong Help của Maple:
      >?examples/binarytree
      Đối với trường hợp Ktree, mình đề nghị mô hình sau:
      Ktree(key,value,[seq(Ktree(),i=1..K)]);
      Việc xây dựng mô hình này theo mình là hoàn toàn giống trường hợp binarytree, bạn thử lập trình xem sao.

  69. em can tim them tai lieu ve ket noi VB voi maple nhung hok biet tim dau ra, chi giup em voi duoc hok??

  70. @hongtra_h2n: bạn qua mục Maple/Java (http://maplevn2008.wordpress.com/maplejava/) bạn đọc hết mục đó sẽ thấy project hóa học dùng VB6+Maple xem thử có giúp j cho bạn được ko.

  71. cho em hoi mot chut ve nhan hai ma tran co chua tham so,em tao 2 matran nhu the nay:
    >with(linalg):with(LinearAlgebra):with(student):
    Tx:=proc(x)
    return mattrix(2,2,[1,x,0,1]);
    end:
    Ty:=proc(y)
    return mattrix(2,2,[1,0,0,y]);
    end:
    >MatrixMatrixmultiply(Tx(x),Ty(y));
    sao ket qua la:Tx.Ty

    • 1. Đầu tiên mình xin nêu lên một vài chú ý:
      - matrix chứ không phải là mattrix.
      - mặc dù gói linalg và gói LinearAlgebra có chức năng gần như nhau nhưng chúng lại làm việc trên 2 kiểu dữ liệu khác nhau.
      + linalg : làm việc với matrix và vector.
      + LinearAlgebra: làm việc với Matrix và Vector.
      Chú ý rằng matrix và Matrix, vector và Vector là những “kiểu dữ liệu” khác biệt nhau.Đây là lỗi hay mắc phải của các bạn mới làm quen với Maple.
      Ở ví dụ của bạn, bạn khai báo theo kiểu matrix trong gói linalg nhưng lại sử dụng lệnh MatrixMatrixMultiply (chứ không phải là MatrixMatrixmultiply như bạn viết) của gói LinearAlgebra để nhân 2 ma trận nên có lỗi xuất hiện. Bạn có thể sửa lại theo 2 cách:
      Cách 1: dùng gói linalg
      with(linalg):
      Tx:=proc(x)
      return matrix(2,2,[1,x,0,1]);
      end:
      Ty:=proc(y)
      return matrix(2,2,[1,0,0,y]);
      end:
      multiply(Tx(x),Ty(y));
      Cách 2: dùng gói LinearAlgebra
      with(LinearAlgebra):
      Tx:=proc(x)
      return Matrix([[1,x],[0,1]]);
      end:
      Ty:=proc(y)
      return Matrix([[1,0],[0,y]]);
      end:
      MatrixMatrixMultiply(Tx(x),Ty(y));
      Mình cũng khuyên các bạn nên sử dụng một gói thôi, tốt nhất là gói LinearAlgebra vì gói này có nhiều lệnh với nhiều tính năng hơn.
      2. Nói thêm:
      + mặc dù gói LinearAlgebra được xây dựng từ gói linalg nhưng Maple vẫn không xóa gói linalg vì để đảm bảo cho các chương trình viết trên các phiên bản cũ với gói linalg vẫn chạy được.
      + khi gõ lệnh bạn nên sử dụng chức năng gợi nhắc của Maple cho nhanh chóng và chính xác. Ví dụ gõ từ LinearAlgebra bạn gõ Linea rồi nhấn Ctrl-Space ,Lúc này 1 thanh gợi nhắc xuất hiện. Bạn chỉ việc dùng phím mũi tên tìm từ khóa cần thiết và Enter.

  72. em cam on thay

  73. e cam on, co gi hok biet em se hoi

  74. Em đang làm bài tập và đang cần biểu diễn những danh sách như thế này:
    S=
    với ∅ là ko có giá trị nào thỏa
    G=
    với ? là bất kỳ giá trị nào.
    Nếu ta có:
    h1 =
    h2 =
    thì G >= h2 >= h1 >= S.

    Thầy vui lòng gợi ý cho em cách biểu diễn dấu ∅ và dấu ? trên Maple có ý nghĩa như trên nha Thầy!

  75. S = [∅,∅,∅,∅,∅,∅]
    G = [?,?,?,?,?,?]
    h1 = [Sunny,?,?,Strong,?,?]
    h2 = [Sunny,?,?,?,?,?]

    • Mình không hiểu ý bạn hỏi cho lắm. Vấn đề biểu thị kí hiệu tập rỗng cũng như dấu hỏi bạn có thê xử lý như ví dụ sau:
      >S:=[``,``,``,``,``,``];# dấu nháy đơn nghiêng.
      >G:=[`?`,`?`,`?`,`?`,`?`];
      Tuy nhiên theo mình vấn đề chính không phải ở đây, mà ở chỗ phép toán so sánh >=. Để có thể sử dụng phéo toán so sánh >= cho trường hợp so sánh 2 đối tượng đặc biệt mà không làm mất “tính năng so sánh ban đầu” của nó, bạn có thể quan sát ví dụ sau. Ví dụ này cho phép sio sánh 2 list dữ liệu theo giá trị đầu tiên của nó.
      > Sosanh:=module()
      option package;
      export `>=`;
      `>=`:=proc(x::list,y::list)
      option overload;
      if evalb(x[1]>=y[1]) then true;
      else false;
      end if;
      end;
      end:
      > with(Sosanh);
      > [4,3,4]>=[3,4];
      > [2,3,4]>=[3,4];
      > 2>=3;evalb(%);
      Đối với trường hợp của bạn bạn phải định nghĩa phép toán so sánh >= chặt chẽ hơn, chẳng hạn như trường hợp có cùng dấu chấm hỏi , độ dài 2 list dữ liệu khác nhau, có phải luôn so sánh được không,…Sau đó bạn có thể tự mình tiến hành lập trình là xong.

  76. Thầy Tú có vẻ bận bịu nhẩy, he he, qua thăm nhà của thầy Hiếu đi, mới khai trương, nhưng chưa hoạt động tích cực đc, để hè chơi tiếp vậy!!! :)
    À, wordpress cho phép tạo Reply Comment, như thế sẽ giúp người đọc biết đc câu hỏi của mình đã đc trả lời hay chưa, Tú xem thử dùng có đc ko nhé! :p

    • Cám ơn Hiếu đã ghé thăm. Nhận trả lời qua mail là một chức năng hay của WordPress.

  77. Em dùng maple12. Khi em sử dụng lệnh dat:=ImportData(”C:/data.txt”) hoặc dat:=ImportMatrix(”C:/data.txt”) trong mục import dữ liệu từ file txt như thầy đã hướng dẫn lại không được. Rõ ràng em đã làm theo hướng dẫn của thầy, nhưng thử đi thử lại vẫn không được!!! Một việc nữa, thầy cho em hỏi, liệu trong maple có các hàm tính giá trị trung bình, phương sai, ma trận tương quan không ạ ?

    • Chú ý:
      - dấu nháy kép thẳng đứng (đây là lỗi do WordPress tạo ra nên khi copy lệnh bạn phải sửa lại).
      - khi tạo ra file data.txt trong ổ C: thì giữa các hàng dữ liệu không có dòng trống.
      Trong Maple có gói Statistics làm việc với dữ liệu thống kê cũng như tính toán đối với đại lượng ngẫu nhiên 1 chiều.
      > with(Statistics):
      Ví dụ với 2 mẫu dữ liệu:
      > X:=[2,3,1,2,3,4,5,3,4,5,6,7,8]:
      > Y:=[7,8,9,6,5,7,8,0,3,2,1,4,6]:
      - giá trị trung bình:
      > mX:=Mean(X);mY:=Mean(Y);
      -phương sai mẫu(ko chệch)
      > Variance(X);
      - ma trận tương quan ( X,Y phải cùng số phần tử)
      > CovarianceMatrix(Matrix([Vector(X),Vector(Y)]));
      - ma trận hệ số tương quan ( X,Y phải cùng số phần tử)
      > CorrelationMatrix(Matrix([Vector(X),Vector(Y)]));

  78. Thưa thầy, em đã thử đi thử lại rồi. Khi em dùng lệnh “K:=ImportMatrix(“C:/data.txt”);” thì chương trình thông báo lỗi “Error, (in ImportMatrix) cannot interpret file”. Liệu có phải maple bị lỗi không ạ?

    • Trường hợp này mình chưa gặp. Bạn có thể gửi file data.txt cùng file Maple vào địa chỉ mail của mình (tonthattu009@yahoo.com) để mình kiểm tra xem sao.
      Chú ý: Cần bổ sung thêm tham số khi sử dụng lệnh ImportMatrix dữ liệu từ file text, cụ thể:
      >ImportMatrix(“C:/data.txt”, source=Matlab);

  79. cho mình hỏi về cách viết thủ tục tính ma tận nghịch đảo. cho minh code càng tốt. thank!

    • Rất tiếc là mình không có code. Tuy nhiên chúng ta có thể giải nhờ kết quả đơn giản sau: Giả sử cần tìm ma trận nghích đảo của ma trân A, ta viết ma trận mở rộng [A,I], với I là ma trận đơn vị. Thực hiện các phép biến đổi sơ cấp hàng đưa ma trận mở rộng này về ma trân dạng [I,B]. Lúc này B chính là ma trận nghích đảo của ma trận A.
      Các phép biến đổi sơ cấp bạn có thể xem ở đây:
      http://maplevn2008.wordpress.com/2009/01/25/phep-toan-tren-ma-tr%E1%BA%ADn-t4/

  80. Thầy cho em hỏi một câu nữa. Khi em sử dụng 3 dòng lệnh:
    P:=Matrix(2,2,[[1,2],[3,4]]);
    ExportMatrix(“D:/data.txt”,P);
    Q:=ImportMatrix(“D:/data.txt”,source=Matlab);
    thì maple sẽ cho kết quả Q= [1 2]. Tại sao lại như vậy?

    • Điều này dễ hiểu vì lệnh ExportMatrix cũng như ImportMatrix đòi hỏi nhưng cấu trúc lệnh chặt chẽ về định dạng dữ liệu, kiểu file cũng như các chế độ hiển thị,…nên thông thường chúng ta hay sử dụng cặp lệnh ExportMatrix và ImportData hơn. Tuy nhiên đối với ví dụ của bạn, chúng ta có thể xử lí như sau:
      cách 1:
      P:=Matrix(2,2,[[1,2],[3,4]]);
      ExportMatrix(”D:/data.txt”,P,target=Matlab);
      Q:=ImportMatrix(”D:/data.txt”,source=Matlab);
      cách 2:
      P:=Matrix(2,2,[[1,2],[3,4]]);
      ExportMatrix(”D:/data.txt”,P);
      Q:=ImportData(”D:/data.txt”);

  81. Ý của mình ko phải là nhận trả lời qua email, mà là tạo Replay Comment, tức là khi có một ai hỏi, thì cậu sẽ comment ngay dươi câu hỏi đó, điều này sẽ làm cho blog của tú trông gọn gàng hơn, người hỏi cũng sẽ dễ tìm câu trả lời hơn, hỉu ý tớ ko? :)

  82. À, tớ mới đổi cái giao diên blog, trông gọn thoáng mát hơn nhiều lắm, sang xem thử hen, keke :P

    • Thanks. Do lúc trước mình tổ chức hơi “loạn xạ” một tí nên lúc nào rãnh sẽ tổ chức các comment lại.

  83. Theo em biết thì maple cũng có hỗ trợ lập trình mạng đúng ko Thầy, Thầy cho em hỏi nếu em có một url: “http://thanhnien.com.vn”, trong Maple có cách nào để mình có thể lấy được những link được trang web thanhnien trỏ đến, và tìm được những trang web có link tới trang thanhnien ko?.

    P/S: em cũng biết là câu hỏi cũng khá lạ so với chủ đề về Maple, thường là tính toán ma trận, đạo hàm, giải phương trình .v.v…, những cũng muốn hỏi thử để biết xem có cách nào ko? Thanks!!!

    • Mình không dám chắc là có “lập trình mạng” được không nhưng đúng là Maple có cung cấp 1 package cho phép ta thực hiện một vài tương tác về mạng.Tên package là Sockets. Nếu bạn có những kiến thức về mạng thì có thể nghiên cứu nó.

  84. thầy oi!
    nhóm em có làm đề tài maple về tích phân đặc biệt làm sao dể đóng gói phần lập trình đó hả thầy
    giúp em với

    • Câu hỏi của bạn mơ hồ quá và mình cũng không rõ bạn tổ chức các lệnh thế nào nên khó có thể trả lời được. Bạn có thể search từ khóa “package” trong blog để xem 2 ví dụ cơ bản khi tạo package.

  85. Thầy cho em hỏi nếu em tính toán trên ma trận vuông có kích thước lớn (khoảng 1000-5000) thì có kỹ thuật nào để làm giảm kích thước của ma trận để tính ko?

    • Thông thường đối với những vấn đề như thế bạn nên thực hiện các biến đổi tổng quát trước để đưa vấn đề cần giải quyết về dạng đơn giản hơn, rồi sau đó mới áp dụng vào dữ liệu thu được. Trong thống kê bạn có thể thực hiện nén dữ liệu trước (chẳng hạn bằng Principal component analysis) và tất nhiên sẽ đưa đến sai số lớn cho phương pháp. Ngoài ra bạn có thể sử dụng công cụ giải tích số.

  86. Thầy ơi! ko có cách Đóng gói cơ bản cho tát cả các file lập trình trong maple ha thầy
    em có kiems tất cả các trang rồi, nhung em ko hiểu có lam thử cũng có chút thành công nhung cuối cùng maple cua em bị lỗi, mà nhóm em sắp nộp rồi thầy ơi
    thầy giúp em với!!!!!!!!!!

    • Mình cũng muốn giúp lắm nhưng mình vẫn chưa hiểu vấn đề bạn đang cần làm là gì cả. Khái niệm “đóng gói” của bạn nghĩa là sao nhỉ? Bây giờ bạn có thể cho mình biết bạn có những file gì, những thủ tục gì,…và cần làm gì với chúng để mình xem có thể giúp gì được không ?

  87. sao maple cang ngay cang kho vay.. giup em may bai nay với, em pó tay rồi, nghì cà tuần ma vẫn hok làm được cho đúng:
    Dùng if, hoặc for, while:
    1. Hãy cho biết từ 101 đến 301 có bao nhiêu số nguyên tố.
    2. Cho số nguyên dương n, hãy cho biết n có bao nhiêu chữ số
    3. Cho 3 số nguyên dương a, b, c. Hãy cho biết chúng có nguyên tố cùng nhau hay không?
    4. Phát sinh một mảng a gồm 10 phân tử một cách ngẫu nhiên.
    a. Tìm giá trị lớn nhất, nhỏ nhất trong mảng.
    b. Tính giá trị trung bình các phần tử trong mảng.
    c. Lập một mảng mới b từ mảng a bằng cách tác động hàm 2x lên các phần tử của mảng a.
    VD: a = [1, 3, 2, 5] thì b = [2, 8, 4, 32].

    • Đây là những bài tập rất cơ bản. Nếu yêu cầu hạn chế sử dụng các hàm dựng sẵn của Maple thì mình có vài gợi ý như sau:
      1. Hàm isprime(n) kiểm tra số nguyên tố. Bạn sử dụng thêm vòng for để đếm là xong.
      2. Bạn sử dụng vòng while, tìm số i đầu tiên mà phần nguyên của n/10^i bằng 0 thì i chính là số chữ số của n.
      3. Dùng vòng for i chạy từ 2 đến min(a,b,c) để kiểm tra, nếu có i mà cả a,b,c chia hết thì kết luận sai.
      4. Ở bài này mình nghĩ vấn đề có thể là bạn chưa biết cách tạo ra các số ngẫu nhiên.
      - tạo ra số ngẫu nhiên nhận giá trị nguyên trên đoạn [a,b], bạn có thể viết
      > rand1:=rand(-2..5): # a=-2,b=5
      >rand1();
      - tạo số thực trong đoạn [a,b] bạn có thể viết:
      > rand2:=(a,b)->a+(b-a)*RandomTools[Generate](float(digits=6)):
      > rand2(-1,5);
      - hai mảng a,b có thể khai báo:
      > a:=array(1..10):
      > b:=array(1..10):
      Phần việc còn lại bạn có thể tự lập trình.

  88. GiaiTichPhanKhongCan := proc (a, b, c, c1, c2) local delta, kq; delta := b^2-4*a*c; if a = 0 then if b 0 then kq := ln(b*c2+c)/b-ln(b*c1+c)/b elif c 0 then kq := (c2-c1)/c end if end if; if a 0 then if delta = 0 then kq := -1/(a*(c2+(1/2)*b/a))+1/(a*(c1+(1/2)*b/a)) elif 0 < delta then kq := ln((2*a*c2+b-sqrt(delta))/(2*a*c2+b+sqrt(delta)))/sqrt(delta)-ln((2*a*c1+b-sqrt(delta))/(2*a*c1+b+sqrt(delta)))/sqrt(delta) else kq := 2*arctan((2*a*c2+b)/sqrt(abs(delta)))/sqrt(abs(delta))-2*arctan((2*a*c1+b)/sqrt(abs(delta)))/sqrt(abs(delta)) end if end if; return kq end proc
    em can dong goi lai, giúp em với

  89. thank nhiều

  90. bai 1 em thu roi, nhung chay hok dung… nhung du sao em cam on thay nhieu. em hoi kem ve lap trinh ma…
    thay cho em hoi them may bai nua nha

    bai 1:Xây dựng các chu trình procedure để tính:
    Xây dựng các chu trình để tìm UCLN và BCNN cho một số lượng tuỳ ý các số nguyên dương. Báo lỗi khi dữ liệu sai (số âm, không phải số nguyên, v.v…)
    Bai 2:Người ta đã chứng minh được rằng một số nguyên dương là chính phương nếu và chỉ nếu số các ước số của nó là một số lẻ. (VD: 36 có 7 ước số: 1, 2, 3, 6, 12, 24 và 36).
    a. Viết chu trình kiểm tra một số n có phải là số chính phương hay không?
    b. Cho mảng a gồm 20 phần tử gồm các số nguyên được phát sinh một cách ngẫu nhiên. Hãy xuất tất cả các số chính phương trong mảng ra màn hình. Mảng có bao nhiêu số chính phương?
    c. Tìm số chính phương lớn nhất trong mảng.
    mong thay giup em,

    • Những bài này đòi hỏi lập trình 1 tí. Mình có vài gợi ý nhỏ:
      1. Khi tìm UCLN ta có thể cho kiểm tra đến số nhỏ nhất trong các số, còn trường hợp tìm BCNN thì kiểm tra đến tích các số.
      Để kiểm tra dữ liệu nhập vào (list các số) có thuộc kiểu số nghuyên dương không, bạn dùng cấu trúc sau:
      >andmap(type,[2,3,4,5],posint); # đúng
      >andmap(type,[2,3,-4,5],posint); # sai
      2. Bài này trong đề đã nói cụ thể cách kiểm tra 1 số có chính phương hay không, do đó ta chỉ cần viết 1 thủ tục con tính số ước là xong. Cách tạo ra số ngẫu nhiên thì mình đã gợi ý ở trả lời trước. Vấn đề còn lại là dùng vòng for và lệnh điều kiện if để lập trình.
      Chúc bạn hoàn thành tốt các bài tập này.

  91. Thầy cho em hỏi, liệu có thể xem được code trong maple không? Ví dụ em muốn xem lệnh LPSolve họ viết mã như thế nào thì xem ở đâu?

    • Maple chỉ cho xem code các lệnh ở “phần chính” của nó, tức là các thủ tục con bên trong theo mình được biết là không xem được. Do đó đối với các hàm cơ bản thì ta hầu như xem được tất cả code của nó. Bạn quan sát ví dụ sau (chú ý bổ sung thêm tham số):
      > interface(verboseproc=2);
      > print(cos);
      > showstat(cos);
      Đối với ví dụ của bạn, bạ có thể viết:
      > interface(verboseproc=2);
      > print(Optimization[LPSolve]);
      Bạn có thể thấy rằng bên trong thủ tục này có chứa vài thủ tục con như Convert:-MatrixForm:-ProcessLP, LP:-SolveInteger , …, nhưng các thủ tục này lại không nằm trong các gói chuyên ngành mà Maple cung cấp.

  92. thầy ơi!
    thầy có tài liệu ” trắc nghiệm maple ” ko? share cho em va cac ban voi.
    came ơn thầy nhiều!!!!!( càng nhiều càng tốt).

    • Ôi, rất tiếc là mình không có các tài liệu trắc nghiệm về Maple. Bạn thử tìm trên mạng xem sao.

  93. thưa thầy em chuẩn bị thi giải tích 2 ,thầy giáo cho đề cương về nhà gồm những phần sau :
    -tích phân bội 2,3
    -tích phân đường loại 1,2 .tích phân mặt loại 1,2.
    về phần tích phân bội 2,3 thi em biết cấu trúc lệnh rồi nhưng về phần tích phân đường va tích phân mặt có cấu trúc nào tính thẳng trực tiếp không ( hay vẫn phải chuyển sang tích phân xác định và tích phân bội 2) thầy em viết như code của thầy thi ra kết quả :
    code : pathint(1,[x,y]=line(,));
    [0] [0]

    kết quả :pathint(1, [x, y] = line([ ], [ ]))
    [0] [1]
    và xin thầy giúp em một vấn đề nữa tai sao 1 số bài tính thì ra kết quả con một số bài tính lai thấy hiện ra biểu thức tích phân
    Em xin cảm ơn thầy .

    • Đối với một số miền đơn giản thì Maple có thể giúp ta tính trực tiếp. Bạn có thể xem thêm trong Help của Maple.
      > with(Student[VectorCalculus]);
      - đường loại 1:
      > ?PathInt
      - đường loại 2:
      > ?LineInt
      - mặt ( không thấy tham số gì cho phép phân biệt mặt loại nào cả)
      > ?SurfaceInt
      Ví dụ về tích phân đường:
      http://maplevn2008.wordpress.com/2008/11/23/tich-phan-d%C6%B0%E1%BB%9Dng/
      Khi có tham số “inert” thì kết quả là công thức dạng tích phân bội. Tuy nhiên trong một số trường hợp mà ta không thêm tham số này nhưng do tích phân bội thu được không thể tính ra kết quả giải tích thì kết quả trả về cũng là một biểu thức tính phân. Lúc này bạn có thể dùng lệnh evalf để lấy giá trị xấp xỉ của nó, ví dụ:
      > kq:=int(exp(-x^3)*sin(x^2),x=0..1);
      > evalf(kq);

  94. Trong package LinearAlgebra có thủ tục Normalize áp dụng cho Vector, cho em hỏi có cách nào áp dụng trực tiếp cho Matrix không ?

    • Normalize là thủ tục chuẩn hóa vecto. Đối với ma trận thì mình vẫn chưa biết có lệnh nào không, nhưng bạn có thể tính nhanh chóng bằng hệ thức: A/MatrixNorm(A,options) trong đó A là ma trận cần chuẩn hóa. Bạn nên xem thêm trong Help lệnh MatrixNorm để biết truyền tham số options.

  95. Em có viết 1 vài package nhỏ nhưng toàn bộ lệnh trong package này người dùng đều có thể xem qua lệnh print. Thầy cho em hỏi có cách nào để giấu code đi không? Cám ơn.

    • Theo mình được biết có 1 cách giấu code đi là bạn tạo package nhờ module. Các hàm ở phần export bạn không tiến hành định nghĩa trực tiếp mà dùng một biến local để xây dựng hàm có chức năng tương tự, rồi sau đó chỉ việc gọi ra trong thủ tục chính. Đây là một vấn đề hay, cuối tuần này mình sẽ post một ví dụ minh họa.

      • Cám ơn thầy. Em đã làm được rồi. Cách của thầy rất hiệu quả.

  96. Mình mới tìm hiểu về maple. vấn đề mình là vấn đề hiển thị là công thức: mình có công thức: p:=(a+b)*c, bây giờ mình có a+b=ab mình muốn p chuyển thành dạng sau p:=ab*c thì phải làm như thế nào. Cám ơn nhiều

    • Vấn đề chính của bạn là hiển thị hình thức. Mình đề nghị 1 giải pháp như sau:
      - sử dụng kiểu symbol để biểu diễn biểu thức
      > p:=convert((a+b)*c,symbol);
      - đưa ra “luật” tác động
      > rule:=[a+b=a-b];
      - tác động luật theo trình tự ( chuyển p về dạng toán: parse(p); tác động luật biến đổi p: applyrule(rule,parse(p)); và cuối cùng chuyển về lại kiểu symbol).
      > p:=convert(applyrule(rule,parse(p)),symbol);

  97. Sau khi tính toán, em có 1 ma trận 4×1, datatype=float[8] như sau:
    -.179605302026774882
    -.359210604053549874
    -.179605302026774938
    -.898026510133874690
    Cho em hỏi là làm sao để em có thể chuyển về thành ma trận có cách làm tròn số như sau:
    -.18
    -.36
    -.18
    -.90

    • >a:=Vector([-.179605302026774882, -.359210604053549874, -.179605302026774938, -.898026510133874690], datatype=float[8]):
      >UseHardwareFloats:=false:
      >evalf(a,2);

  98. Nếu em có 1 số cực nhỏ thế này: -4.09451679407575268*10^(-33), Thầy cho em hỏi làm sao để cho Maple làm tròn những số này thành 0.

    • Cách chính thống thì mình vẫn chưa biết, tuy nhiên bạn có thể xử lí như sau:
      - thiết lập sai số cho phép
      > saiso:=10^(-10);
      - tạo “luật” : số có modul nhỏ hơn sai số thì gán bằng 0.
      > rule:=[x::satisfies(t->is(abs(t)<saiso))=0];
      > a:=-4.09451679407575268*10^(-33);
      - áp dụng luật
      > applyrule(rule,a);
      > applyrule(rule,sin(a*x)+cos(a)+t);

  99. Thầy có thể xem lại code của dòng lệnh rule được không ?

    • Rất cám ơn bạn đã phát hiện. Do mình copy từ Maple sang mà quên chỉnh lại các kí tự đặc biệt thành mã HTML nên nó hiển thị không chính xác. Mình đã sửa lại comment rồi.

  100. Ví dụ em có 1 biểu thức:
    >f:=”R1R2.U=R1R2.I*R1R2.R”;
    nhưng em ko thể thực hiện được lệnh
    >subs({R1R2.U=2,R1R2.I=3},parse(f));
    mục đích là biết trước 2 biến, tìm biến còn lại.
    Em biết vấn để là ở chỗ dấu chấm, có nó thì không thể thực hiện được, mà ko có nó thì trật tự các chữ cái bị đảo lộn, mà em ko muốn như thế. Thầy có cách nào giúp em với ?

    • Vấn đề chính không phải ở dấu chấm mà ở chữ I. Chú ý rằng chữ I trong Maple là kí hiệu của đơn vị ảo. Do đó để sử dụng trong lệnh subs bạn phải ngăn cản sự định giá:
      >f:=”R1R2.U=R1R2.I*R1R2.R”;# dấu nháy kép thẳng đứng
      >subs({R1R2.U=2,’R1R2.I’=3},parse(f));# dấu nháy đơn thẳng đứng
      Ngoài ra bạn cũng có thể xử lí cách khác bằng cách “ép” Maple đổi kí hiệu đơn vị ảo sang chữ cái khác, ví dụ J. Lúc này bạn chỉ cần thêm câu lệnh sau vào phía trước đoạn lệnh của bạn là ổn:
      >interface(imaginaryunit=J);
      và nhớ rằng đơn vị ảo bây giờ là J.

  101. Cám ơn Thầy, nhờ Thầy chỉ dẫn mà em làm được rồi.

  102. Thầy cho em hỏi trong Maple tính đạo hàm của hàm số tại một điểm cụ thể x=a chẳng hạn thì dùng lệnh gì ?

    • Bạn dùng lệnh fdiff. Ví dụ:
      > fdiff(x^3-x,x=1);
      Đây là công cụ đào hàm số của Maple.

  103. Thầy cho em hỏi trong maple có hàm time không ạ? Em muốn tính thời gian một chu trình chạy thì phải làm sao ạ?

    • Bạn có thể dùng hàm time, ví dụ tính thời gian tính giai thừa cho bởi hàm fac:
      > fac:=proc(n)
      option remember;
      if n*(n-1)=0 then return 1;
      else return n*procname(n-1); fi;
      end;
      > time(fac(1000));
      Nếu bạn muốn tính 1 lần cho nhiều thủ tục và hàm thì có thể làm như sau:
      > t:=time(): # lưu thời điểm đầu
      fac(2000);
      evalf(int(x^x*sin(x),x=1..3));
      time()-t; # thời gian tính bằng thời điểm kết thúc trừ đi thời điểm ban đầu

  104. Em cám ơn thầy. Thầy coi dùm em coi đặt hàm time vào vị trí nào trong chu trình sau:
    > dutru:=proc(d,l,c,i,t0)
    local q,n,t,b:
    q:=sqrt((2*l*d)/(i*c)):
    print(`so luong dat hang toi uu:`):print(q):
    F(q):=l*d/q+i*c*q/2+c*d:
    print(`tong chi toan bo:`);print((F(q)));
    n:=d/q:
    print(`so lan dat hang toi uu trong 1 nam:`); print(n);
    t:=1/n:
    print(` chu ky toi uu:`);print(t);
    b:=d*(t0-t*trunc(t0/t)):
    print(` diem dat hang toi uu:`);print(b);
    end
    Nếu em muốn làm thành 1 package thì phải làm sao ạ?

    • Đặt vào vị trí nào là tùy thuộc vào yêu cầu của đề bài và mục đích tính toán. Vấn đề tạo package thì bạn có thể search từ khóa package trong blog để tìm ví dụ.

  105. Thầy ơi cho em hỏi sao sau mỗi lần chạy thì thời gian chạy lại khác nhau nhưng với cùng một số liệu ạ? Em xài maple 12 thì có khác gì maple 9 không ạ?

    • Điều này là hoàn toàn bình thường. Tốc độ tính toán phụ thuộc vào nhiều yếu tố như tài nguyên của máy ở thời điểm hiện tại (số lượng quá trình đang hoạt động, dung lượng RAM còn rãnh,…), cấu trúc lệnh sử dụng( một số option có thể giúp ta trả về cho hàm một bảng nhớ các giá trị, điều này cho phép rút ngắn thời gian ở các bước tiếp theo,…),…
      Bạn xài Maple 12 thì chạy bình thường các file viết trên Maple 9. Tuy nhiên các file viết trên Maple 12 thì có khả năng không chạy được trên Maple 9 do có nhiều hàm ,thủ tục và bố cục giao diện mà chỉ có trong phiên bản mới.

  106. Em cám ơn thầy. Để em làm thử package rùi gửi thầy coi dùm em.

  107. Cho em hỏi lập trình symbolic trên maple là gì vậy ạ.Có tài liệu và ví dụ vào không cho em với.Em đang học về cái này.cám ơn

    • Đó là lập trình hình thức, thực hiện biến đổi và tính toán trên dữ liệu vào bao gồm các kí hiệu và số. Nhờ công cụ lập trình symbolic này mà ta có thể thu được nghiệm giải tích của nhiều bài toán. Ví dụ lệnh tính tích phân:
      > int(a*x^2+b*sin(x),x);
      Có 1 quyển sách viết khá hay về một số tính toán hình thức này (tiếng Nga):

  108. thầy ơi, em đang làm một bài giới thiệu về gói student, mong thầy giúp đỡ ạ.

    • Gói student là một gói lệnh cơ bản bao gồm nhiều lệnh được thiết kế để hỗ trợ cho việc giảng dạy và học tập bộ môn giải tích đối với sinh viên. Bạn có thể xem thêm trong Help.
      >?student

  109. Em đang tạo một ứng dụng giải phương trình bằng Maplets. Nhưng sau khi thiết kết giao diện xong thì em không biết vào đâu để viết code cho 2 button “Giai Phuong Trinh” và “Thoat”. Mong thầy và các bạn ở đây hướng dẫn giúp em. Em xin cảm ơn.

  110. Cho em cách đọc 1 file như thế nào vậy thầy?
    Em muốn biết ý tưởng cho thủ tục đó ?
    Cảm ơn thầy!

  111. xin thầy và các bạn giúp mình với:
    mình đang làm đề tài về kết nối giữa maple va excel tools.Nhưng mình không biết làm sao hết,giúp mình với,minh sắp phải nộp rồi

  112. Vấn đề này đã trả lời rồi mà, cậu có thể xem ở đây:
    http://maplevn2008.wordpress.com/2008/11/05/bai-t%E1%BA%ADp-xac-su%E1%BA%A5t-va-th%E1%BB%91ng-ke/#comment-356

  113. Chào thầy! em đang cần tìm hiểu 1 package trong Maple 12 sau đó Mô tả được mục đích (tác dụng) của Package. Lấy vài ví dụ minh họa. Nếu trong package có những khái niệm hay định nghĩa mới hay những thuật ngữ thì phải nêu ra cụ thể + ví dụ. Tiếp đến Thực hiện việc giới thiệu một số hàm cơ bản trong Package + ví dụ minh họa. Sắp thi môn này mà tụi em vẫn chưa biết làm thế nào mong thầy giúp đỡ

    • Các package trong Maple đều có phần giới thiệu tổng quan ở phần mở đầu( trong Help), ví dụ:
      >?Student
      >?LinearAlgebra
      >?Maplets
      …………………………………

      Các ví dụ minh họa sẽ được trình bày trong từng lệnh cụ thể của package.
      Một vài thuật ngữ toán các bạn có thể vào Dictionary trong Maple để tra cứu
      Help-> Manuals,Dictionary and more->Dictionary.

  114. Cám ơn thầy nhiều

  115. Thay oi, cho em hoi ve plotsetupva plotuotput, 2 ham nay co lien quan gi den lenh plot khong a?? thay cho em vi du, em chua hieu ro van de nay cho lam

  116. Thay cho em hoi co cach gi xem cac gia tri dac biet cua ham sin,cos ko?

  117. thầy ơi cho em hỏi, cách tạo đường dẫn tới help như thế nào ạ, em thấy một số tài liệu click vào 1 tên hàm là xuất hiện bảng trợ giúp.

    • Ở đây mình sẽ hướng dẫn bạn tạo 1 link kiên kết đến “int” trong Help với từ khóa hiển thị trên Worksheet là “Tichphan”.
      - Chọn vị trí muốn đặt link, vào Insert—>HyperLink
      - Một hộp thoại xuất hiện, bạn điền thông tin như sau:
      + Link Text: Tichphan (Đây là tên sẽ hiển thị trên Worksheet)
      + Type: Help Topic (nơi tìm kiếm thông tin)
      + Target: int (vấn đề)

      • Cám ơn thầy

  118. Thầy ơi cho em hỏi cách tắt Auto saving trong maple

    • Bạn vào Option—> General—-> tìm dòng chữ “Auto save every”. Bạn có thể tắt hoặc tăng thời gian giữa 2 lần save.

  119. Rất hay và ấn tượng

  120. xin chào các bạn
    các bạn cho mình hỏi .Mình có chương trình sau:
    >beta:=matrix(3,1,[2.5,3.0,4.0]);
    >k[2]:=matrix(2,1,[1*sigma[c],1.5*sigma[c]]);
    > for i from 1 to 2 do c[i]:=evalm(k[1][i,1]*k[2]);
    > od;
    >for i from 1 to 2 do
    > for j from 1 to 3 do
    > n:=evalm(beta[j,1]*c[i]);
    > print(n);
    > end do
    > end do;
    Mình muốn hỏi các bạn là sau câu lệnh này sẽ xuất hiện 6 ma trận và có cách nào để gán các giá trị n1,n2,n3,n4,n5,n6 cho các ma trận đó để sử dụng trong các câu lệnh tiếp theo của bài toán. Mình rất mong được sự giúp đỡ của các bạn. Ai biết thì giúp mình với. Mình đang cần gấp rất mong nhận dc hồi âm sơm. Hay gửi cho mình vào email trong.weld.utehy@gmail.com . Xin chân thành cảm ơn

  121. >beta:=matrix(3,1,[2.5,3.0,4.0]);
    >k[2]:=matrix(2,1,[1*sigma[c],1.5*sigma[c]]);
    >k[1]:=matrix(2,1,[1.1,1.3]);
    > for i from 1 to 2 do c[i]:=evalm(k[1][i,1]*k[2]);
    > od;
    >for i from 1 to 2 do
    > for j from 1 to 3 do
    > n:=evalm(beta[j,1]*c[i]);
    > print(n);
    > end do
    > end do;
    Mình muốn hỏi các bạn là sau câu lệnh này sẽ xuất hiện 6 ma trận và có cách nào để gán các giá trị n1,n2,n3,n4,n5,n6 cho các ma trận đó để sử dụng trong các câu lệnh tiếp theo của bài toán. Mình rất mong được sự giúp đỡ của các bạn. Ai biết thì giúp mình với. Mình đang cần gấp rất mong nhận dc hồi âm sơm. Hay gửi cho mình vào email trong.weld.utehy@gmail.com . Xin chân thành cảm ơn

    • Bạn có thể gán như thế này:
      >for i from 1 to 2 do
      > for j from 1 to 3 do
      > n[(i-1)*3+j]:=evalm(beta[j,1]*c[i]);
      > print(n[(i-1)*3+j]);
      > end do
      > end do;
      Lúc này 6 ma trận liên tiếp sẽ lưu trong n[1],n[2],…, n[6].

  122. em rat cam on anh hung da giup do em va em da lam dc roi. em cam on anh nhe

  123. Mình chào các bạn mình có một bài toán đang làm thì bị vướng mắc rất mong mọi người chỉ giúp

    Tính S= sigma/(K*sigma[a]+ψ*sigma[m])
    - β = 2,5 ; 3,0 ; 4,0
    - K1 = 1,1 ; 1,30
    - K2 =295 ÷ 442,5
    - η= 0.8;0.9
    - ε = 0,5
    - ψ = 0,2; 0,3.
    - μ = 1,0
    Trong đó K=(β*K1*K2*η)/(ε*μ)
    sigma[a]=168; 239,4 ;80,9 ; 42,0 ; 86,1 ; 27,6 ; 533,6
    sigma[m]=80,304; 88,578; 18,08115; 31,227; 59,1507; 22,7424; 417,2752
    Rất mong được sự giúp đỡ của tất cả các bạn .Mình cám ơn các bạn

    • Đối với bài này bạn nên viết một hàm để tính, chẳng hạn: S=f(beta,K1,K2,eta,epsilon,psi,mu,sigma,sigma_a,sigma_m),cụ thể:
      >f:=proc(beta,K1,K2,eta,epsilon,psi,mu,sigma,sigma_a,sigma_m)
      local K;
      K:=beta*K1*K2*eta/(epsilon*mu);
      return sigma/(K*sigma_a+psi*sigma_m);
      end proc;
      Sau đó bạn muốn tính giá trị nào thì chỉ cần nhập vào giá trị biến tương ứng trong hàm là xong.
      Ví dụ:
      >S:=f(2.5,1.1,295,0.8,0.5,0.2,1,100,168,80);
      Trong đó tham số sigma=100. Bạn có thể xem lại công thức tính S, ở đó có tham số sigma và bạn chưa đưa ra giá trị ( có thể bạn gõ nhầm).

  124. mình chào các bạn mình có bài tạp lam với cấu trúc này ko dc mong các bạn sửa hộ mình với
    >psi:=[0.2,0.3];
    >beta:=[2.5,3.0,4.0];
    >k1:=[1.1,1.3];
    >eta:=0.8;
    >epsilon:=0.5;
    >mu:=1.0;
    >sigma[c]:=295;
    >sigma_1:=180;
    >k2:=[1*sigma[c],1.5*sigma[c]];
    >sigma[max]:=[168,239.4,80.9,42.0,86.1,27.6,533.6];
    >sigma[min]:=[7.392,62.244,44.7377,- 20.454,- 32.2014,-17.8848,-300.9504];
    >sigma[tong]:=evalm(sigma[max]+sigma[min]);
    >sigma[hieu]:=evalm(sigma[max]-sigma[min]);
    >sigma_a:=evalm(sigma[hieu]*0.5);
    >sigma_m:=evalm(sigma[tong]*0.5);
    mình muốn tính giá trị
    S= sigma_1/(K*sigma_a+ψ*sigma_m)
    Trong do K=beta*K1*K2*eta/(epsilon*mu)
    Mình rất mong được sự giúp đỡ của các bạn.
    Mình chân thành cảm ơn các bạn.

    • Trời đất. Bài này thì tùy mục đích mà dùng vòng for hoặc tính theo từng giá trị cũng được. Chứ bạn hỏi chung chung thế ai mà trả lời cho được.

  125. chào mọi người
    Mình muốn vẽ ba hàm số y= 1/x với x=0.2..2
    y=x^3+4x với x=0.5..3
    và hàm y=6*x với x=1..3
    trên cùng một hệ toạ độ và gán màu khác nhau cho mỗi đồ thị mình phải làm thế nào mong các bạn chỉ giúp mình với

    • Bạn xem thử thế này được không
      >p1:=plot(1/x,x=0.2..2,color=red):
      p2:=plot(x^3+4*x,x=0.5..3,color=blue):
      p3:=plot(6*x,x=1..3,color=cyan):
      plots[display](p1,p2,p3);

  126. Rất vui được các bạn cùng tham gia trao đổi trên blog. Hy vọng blog này se là nơi để các bạn yêu thích và sử dụng Maple giao lưu với nhau.

  127. Do trang này đã khá dài,c ác bạn có thể vào trang Hỏi/Đáp2 để trao đổi.
    http://maplevn2008.wordpress.com/h%e1%bb%8fidap2/

  128. Chào các bạn
    Mình đã vẽ được đồ thị của hàm như sau:
    Và bây giờ mình muốn gán vào trục tung tên hàm S. trục hoành là x và muốn đặt tên cho đường p1, p2,p3 và muốn đặt tên của đồ thị thì mình phải làm sao. Rất mong được sự giúp đỡ của các bạn
    >p1:=plot(1/x,x=0.2..2,color=red):
    p2:=plot(x^3+4*x,x=0.5..3,color=blue):
    p3:=plot(6*x,x=1..3,color=cyan):
    plots[display](p1,p2,p3);

    • Bạn thử xem lệnh này:
      >plot(1/x,x=0.2..2,color=red,labels=["x","S"]);

  129. Em đang học ĐHSP TPHCM, hiện nay em đang học HP Lập trình toán với Maple 12.
    Các anh chị có biết một số đề thi học phần không?
    Có thể giúp em một số đề để em làm thử nghiệp (cần rất gấp_sắp thi rồi).
    Chân thành cảm ơn nhiều.
    vitinhtheky22@yahoo.com.vn

  130. các bạn cho mình hỏi muốn tạo lưới trên đồ thị thì phải làm thế nào? Xin cám ơn nhé. Bạn nào biết vào giúp mình nhé. Mình đang rất cần

    • Bạn có thể sử dụng tham số gridlines khi vẽ đồ thị, ví dụ:
      > plot(sin(x),x=-Pi..Pi,gridlines=true);
      Bạn có thể xem thêm trong help
      >?plot/options
      ở phần gridlines.

  131. Cho minh hoi lam the nao de dua mot giao dien maplet ve word duoc. Minh cam on nhieu

    • Cái này thì bạn nên chụp màn hình lại rồi dán vào Word là xong. Có 2 cách chụp:
      - Nhấn phím Print-Screen trên bàn phím,lúc này toàn bộ màn hình sẽ được chụp lại. Bạn vào Paint, Paste vào đó rồi cắt phần tranh mà bạn muốn
      - Nhấn Alt+Print-Screen, lúc này giao diện Maplet ở trên nhất của màn hình sẽ được chụp, và bạn chỉ việc Paste vào Word là xong.

  132. Minh lam duoc roi, cam on ban nhieu!

  133. cho minh hoi lam sao de copy mot chuong trinh maplet sang word voi, minh lam mai chang duoc. Minh cam on nhieu!

  134. O tren minh co tra loi roi ma. Neu ban muon copy phan text vao thi chi viec copy va dan vao thoi. Neu ban muon chup hinh cai giao dien thi lam nhu tren.

  135. tim ho minh dao ham cap n cua ham y=arctanx. Xin cam on

    • Nói ngoài lề một tí:
      Ta có: (1+x^2).y’=1. Sau đó áp dụng công thức Newton ta sẽ thu được hệ thức truy hồi để tính đạo hàm cấp n.
      Trong Maple:
      > diff(arctan(x),x$n);
      > convert(%,StandardFunctions);

  136. Giả sử khi giải một hệ phương trình đại số tuyến tính em dùng lệnh fsolve thì thấy nghiệm có dạng {x1,x2,..,xn} để convert nó sang dạng Vector thì làm thế nào được ạ ?

    Phương trình đại số tuyến tính còn cách giải nào khác không dùng fsolve không vậy thầy

    • Chào bạn. Bạn có thể xem ví dụ sau:
      > htt:={2*x-y=4,x+y=7}:
      > fsolve(htt,{x,y});
      > map(rhs,%);
      > Vector(convert(%,list));
      Chú thích: hàm rhs lấy vế phải của 1 phương trình, hàm map giúp tác động vào từng đối tượng. Ngoài ra ta không thể convert trực tiếp từ kiểu tập hợp (set) về Vecto được, bởi thế ta có thể convert về kiểu list.
      Ngoài lệnh fsolve ( giải số) còn có lệnh solve (giải giải tích), lệnh LinearAlgebra[LinearSolve].

  137. Thanks thầy em đã làm được.

  138. Vài câu hỏi nữa em xin thầy giúp đỡ
    1. Làm sao để khai báo một Vector nhưng số chiều của vector đó không phải là cố định. Mỗi khi ở một phép tính nào đó có kết quả ta lấy giá trị đó đưa vào làm thành phần của vector.
    2. Khi có một vector mà mỗi phần tử của vector đó ứng với một thời điểm t. Làm thế nào để vẽ một đồ thị mà trục hoành là trục thời gian t còn trục tung là giá trị của các thành phần của vector. Các điểm có tọa độ (xi,t) (xi là thành phần thứ i của vector) được nối trơn với nhau (hoặc nối theo đường thẳng cũng được :P )

    • Chào bạn.
      - Viết thủ tục và trả giá trị về bằng 1 vector. Ví dụ: Tao vecto là các số nguyên tố nhỏ hơn n cho trước (n>=2).
      >vecNT:=proc(n)
      local i,res;
      if nvecNT(1);
      >vecNT(5);
      >vecNT(40);
      - Dùng hàm vecto theo biến thời gian t. Ví dụ:
      > v:=t->Vector([t,sin(t)*cos(t)]);
      > v(2);
      > v(Pi);
      > plot([v(t)[1],v(t)[2],t=-Pi..Pi]);
      > ?plot/parametric

  139. em hỏi:
    có một vector (100) làm thế nào để vẽ trên hệ Oxy sao cho mỗi điểm thì có hoành độ là chỉ số của thành phần, tung độ là các thành phần của vector, Các điểm được nối trơn với nhau

    • Chào bạn.
      Bạn có thể xem ví dụ sau:
      > n:=10:
      > A:=LinearAlgebra[RandomVector](n,generator=0..10):
      > B:=[seq([i,A[i]],i=1..n)]:
      > f:=CurveFitting[Spline](B,x):
      > plot(f,x=1..n);

      Để làm trơn đồ thị bạn có thể dùng spline. Maple mặc định spline bậc 3.

  140. Hi! Chào anh Tú. Thật bất ngờ vì được gặp lại anh đó. Nhớ hồi nào anh về thăm thầy Lương, em cũng có mặt ở đó. Anh biết em chứ? Cách đây mấy bữa thầy có kể với em là anh vừa đi Belarus về và đang thi tuyển giảng viên vào Đại học Khoa học Huế. Thế mà giờ đây anh đã là giảng viên của Đại học Sư phạm Đà Nẵng. Chúc mừng anh nha. Em đang học maplet trên lớp nên cần học hỏi anh nhiều, anh giúp em với anh hí!

  141. Chào em. Rất tiếc là anh không nhớ nhưng chúng ta “đồng sư” môn rồi. Có vấn đề gì thắc mắc em có thể viết comment để mọi người cùng trao đổi.

  142. gúp em giải BT về logic toán này với, em sử dụng maple 12
    chứng minh đẳng thức
    p or `≡`(q and r, p or q) and (p or r)

    • Bạn có thể sử dụng lệnh Logic[Equivalent] để giải quyết bài tập này.

  143. em chưa biết về hàm giải vi phân trong maple, thầy giúp em 2 VD này dể em hiểu thêm về vi phân đc ko, thanks
    1. sd vi phân để tính gần đúng :ln(e+0.1)
    2. Tính vi phân toàn phần : z=5*(x^2)*(y^3)

    • Để tính vi phân bạn có thể xem ví dụ trong Help:
      >?difforms/d

  144. em chao thay.
    Thay cho hoi :ket noi maple voi java thi thuong duoc ung dung de lam gi?

    • Chào bạn.
      Kết nối Java với Maple để sử dụng nguồn thư viện toán dồi dào trong Maple cho việc giải quyết các vấn đề lớn có khối lượng tính toán nhiều, yêu cầu độ chính xác cao và có sử dụng các thuật toán chuyên ngành đã được xây dựng. Nhờ kết nối chúng ta có thể giảm dung lượng code của chương trình, khỏi mất thời gian test lại các thuật toán đã xây dựng sẵn ( tất nhiên là ta tin rằng Maple giải đúng).

  145. cam on thay da tra loi em!
    em dang hoc ve mople ,thay no co ung dung rat lon.
    nhung khi lam mot de tau ve maple thi lai kho biet lam gi.boi vi thay giao em bao:chi duoc lam nhung gi ma trong may chua co.
    em dang lam de tai ve ly thuyet do thi.(trinh do dai hoc).thay co the cho em loi khuyen ve dan y cua de tai dc kho?tuc la em nen lam nhung phan nao?va lam thi minh phai tu code duoi dang proc hay ap dung cac cau lenh co san?

    • Chào bạn. Vấn đề lý thuyết đồ thị thì mình chỉ biết sơ sài thôi. Một vài gợi ý có tính chất chủ quan của mình bạn có thể tham khảo:
      - Nếu bạn có kiến thức tốt về Lý thuyết đồ thị và có kĩ năng lập trình thì có thể viết lại một vài lệnh như : tìm đường đi ngắn nhất giữa hai đỉnh với ma trận liền kề, có thể in ra từng bước và minh họa đồ thị, hay sử dụng các định lý kiểm tra đồ thị đã cho có chu trình Haminton, Euler,… và minh họa đồ thị trong trường hợp tìm thấy,….
      - Nếu khả năng lập trình hạn chế thì bạn có thể sử dụng các hàm dựng sẵn, lúc này chủ yếu là bạn cho người dùng biết những thông tin có thể về đồ thị cũng như minh họa hình học của nó ( có thể xây dựng giao diện minh họa cho đẹp mắt,…),…

  146. Mình mới biết đến maple. Hiện đang dùng maple 11, mình muốn vẽ đồ thị f(x) gồm x khi x0. Bạn có thể chỉ mình code để vẽ nó ko?
    Cảm ơn nhiều.

  147. Chào bạn.
    Câu hỏi của bạn không được rõ cho lắm.
    Để vẽ đồ thị hàm y=f(x) từ a đến b, bạn dùng lệnh
    plot(f(x),x=a..b). Ví dụ:
    >plot(sin(x),x=-Pi..Pi);

  148. Mấy bác ơi. Bác nào có tài liệu hướng dẫn sử dụng Maple 12 nhỉ. Chia sẻ cho E nhé

  149. Chào Thầy. e mới tìm hiểu về Maple vì thế kiến thức còn hạn chế. mong thầy giúp đỡ em. câu hỏi

    Xây dựng kiểu dữ liệu và các thủ tục cần thiết để tạo package thực hiện việc tính toán trên đồ thị như: xét tính liên thông, tìm thành phần liên thông, tìm đường đi, chu trinh.

    • Chào bạn.
      Bạn có thể tham khảo cách tổ chức dữ liệu về đỉnh, cạnh trong gói GraphTheory. Chẳng hạn đối với đồ thị vô hướng ta sử dụng kiểu dữ liệu tập hợp (set) để khai báo tập đỉnh, các cạnh. Còn đối với đồ thị có hướng thì ta sử dụng kiểu dữ liệu list. Việc xét tính liên thông, tìm đường đi,… là vấn đề về thuật toán, bạn phải tự tìm hiểu thôi.

  150. thay cho em hoi:
    ham lam cham thoi gian trong maple la gi vay?
    tuong tuong voi ham delay() trong C++;

  151. Thưa thầy cho em hỏi trong Maple có hàm nào đáp ứng phần tối ưu nhiều biến không:
    VD: cực đại hóa hàm như sau
    f(x1, x2)=21.5+x1*sin(4Pi x1)+x2*sin(20Pi x2)
    với -3.0<=x1<=12.1 và 4.1<=x2<=5.8

    • Chào bạn.
      Bạn có thể sử dụng gói Optimization.
      > with(Optimization);


Gửi phản hồi

Phản hồi của bạn: