Ngôn ngữ Wolfram - Học vẽ đồ thị trên Raspberry Pi

Mô tả dự án: 

Trong bài Học làm toán với Raspberry Pi tui đã hướng dẫn các bạn một số lệnh cơ bản để giải toán với ngôn ngữ Wolfram. Nếu các bạn không thích số và ký tự Toán học thì bài này mình sẽ hướng dẫn các bạn vẽ đồ thị nha!

Đồ thị cơ bản

Lệnh vẽ đồ thị trong Wolfram là "Plot". Ví dụ bạn muốn vẽ hàm (x+1)/(x+2) trong miền (-3,3) thì câu lệnh sẽ là:

Plot [ (x+1)/(x+2), {x,-3,3)]

Nếu bạn muốn vẽ đồ thị 3 chiều thì thêm chữ "3D" vào sau Plot. Ví dụ: bạn muốn vẽ hàm sin(xy) trong 3 chiều thì câu lệnh sẽ là:

Plot3D[ Sin[x*y], {x,-3,3}, {y,-3,3} ]

Bạn có thể nhấp chuột vào hình và xoay chỉnh các góc nhìn. Chú ý: bạn bắt buộc phải để dấu nhân hoa thị * giữa x và y, nếu không Wolfram sẽ hiểu xy là một biến chứ không phải là tích 2 biến.

Còn vẽ bất đẳng thức thì sao? Bạn thêm chữ "Region" vào trước hàm Plot[ ]. Ví dụ: Bạn muốn vẽ tập hợp các số (x,y) thỏa mãn x^2 + (y/2)^2 < 9:

RegionPlot[ x^2 + (y/2)^2 < 9, {x,-10,10), {y, -10. 10} ]

Nâng cao

Đầu tiên là vẽ nhiều đồ thị cùng 1 lúc. Bạn chỉ cần cho các hàm vào giữa 2 ngoặc nhọn { }, thêm lệnh PlotLegends -> "Expressions" để dán nhãn. Ví dụ bạn muốn vẽ 2 hàm Sin[x] và Cos[x] thì câu lệnh sẽ là:

Plot[{Sin[x], Cos[x]}, {x, 0, 2 Pi}, PlotLegends -> "Expressions"]

Để việc vẽ đồ thị sinh động hơn, ta sẽ dùng lệnh "Manipulate" để thay đổi các hệ số và quan sát ảnh hưởng của chúng. Ví dụ: muốn thử xem hàm Sin[n*x] thay đổi như thế nào khi hệ số n thay đổi, ta dùng lệnh sau:

Manipulate[Plot[Sin[n x], {x, 0, 2 Pi}], {n, 1, 20}]

Bạn có thể kéo thanh trượt để xem n ảnh hưởng đến đồ thị thế nào. Hoặc bạn có thể nhấn vào dấu + ở cuối thanh trượt để có thể tinh chỉnh nhiều hơn:

Dĩ nhiên các bạn có thể tinh chỉnh nhiều hệ số cùng 1 lúc:

Manipulate[ ParametricPlot[{a1 Sin[n1 (x + p1)], a2 Cos[n2 (x + p2)]}, {x, 0,    20 Pi}, PlotRange -> 1, PerformanceGoal -> "Quality"], {n1, 1,   4}, {{a1, 1}, 0, 1}, {p1, 0, 2 Pi}, {{n2, 5/4}, 1, 4}, {{a2, 1}, 0,   1}, {p2, 0, 2 Pi}]

Sau đó bấm vào dấu + ở góc trên cùng bên trái để nó tự chạy

Ứng dụng của Wolfram trong nghiên cứu khoa học kỹ thuật là rất lớn. Chúc các bạn trẻ thành công!

lên
4 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

ST7565 và ESP8266 - Màn hình LCD bự chà bá chưa đến 100k cho thế giới IoT

Mình rất thích LCD ST7565 này, và đã đặt liền 4 con mà mỗi con quá rẻ có 20k. Nhưng khổ một điều, điện áp hoạt động và IO của LCD ST7565 có 3.3V. Bản thân mình lại không thích việc chơi điện trở để chơi LCD này với Arduino. Lý do đơn giản là phải hàn quá nhiều, mình lại lười crying. Hổm nay, mình đang làm loạt bài về ESP8266 và cũng phải gặp vấn đề điện trở để làm cầu phân áp khi giao tiếp giữa ESP8266 và Arduino.

lên
17 thành viên đã đánh giá bài viết này hữu ích.

Thư viện ST7565 trên Arduino Create - Thử nghiệm đầu tiên: Hoàn hảo!

Mình rất tự hào và hãnh diện, khi thư viện made in Việt Nam đầu tiên của Thái Sơn (Nick Chung) được mình tải lên tại Arduino Create với mục đích thử nghiệm việc biên dịch code online trên Arduino Create đã hoàn thành công việc của nó ngay trong lần thử đầu tiên. Qua bài viết này, mình xin hướng dẫn các bạn lập trình Arduino với Arduino Create thông qua việc làm một ví dụ mẫu về việc cài thư viện và sử dụng nó trên Arduino Create.

lên
7 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

"Fiat Lux - Hãy có ánh sáng": (Phần 6) LED theo nhạc với ESP8266

Bài này tui sẽ hướng dẫn các bạn làm một bộ đèn nháy theo nhạc với ESP8266 và Neopixel. 

lên
16 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Trí thông mình nhân tạo với Watson IBM và Raspberry Pi (Phần 2): Nhận dạng khuôn mặt, giới tính và tuổi

Bài trước tui đã hướng dẫn các bạn làm quen với Watson IBM trên Raspberry Pi. Bây giờ chúng ta sẽ quay trở lại với bài toán nhận diện khuôn mặt. Trong bài khóa "thông minh" với OpenCV, dữ liệu nhận dạng khuôn mặt được đưa ra bởi một thuật toán "tĩnh" OpenCV trên laptop của các bạn và sau đó kết quả được chép thủ công vào Raspberry Pi. Raspberry chỉ việc dựa vào kết quả training và đưa ra kết quả nhận diện khuôn mặt. Đây chưa phải là giải pháp tối ưu vì giả sử bạn muốn thay đổi thuật toán mới hoặc train cho tốt hơn thì không thể thực hiện trên Pi được. Thay vậy, bạn có thể dùng dịch vụ cloud của Watson cho việc training và chỉ việc up hình lên để Watson nhận diện. Kết quả sẽ được trả về qua json với lượng thông tin phong phú hơn nhiều. 

lên
7 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: