View Single Post
Old 09-01-2008, 09:31 PM   #3
conso0
Đệ tử 1 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 15
:
Trích:
Nguyên văn bởi picvendor View Post
Hình như cú pháp hàm F của bạn viết sai:



Viết kiểu này nghĩa là 2 dòng dưới không có giá trị gì. Hàm F ở đây được gán là một vector có cùng số cột với x: F=[ x+l2-l3*sin(q(1)+q(2)-q(3))-l0*cos(q(1)+q(2))+l1*cos(q(2))];

Như vậy lệnh fsolve giải bài toán là một hệ chừng 100 phương trình, với chỉ có 3 ẩn số -> rất dễ rơi vào tình huống vô nghiệm.
---

Tôi đoán bạn đang giải bài toán kiểu:
F = [F1; F2; F3] trong đó F1, F2, F3 đều là số scalar.

Nhưng vì trong function vd1, ngay từ đầu bạn quy định x=-10:0.1:10 nên nó đã là 1 vector, làm cho F1 biến thành vector.

Giờ bạn cần tránh việc đặt x là 1 vector trong function vd1, hoặc làm sao đó để F1, F2, F3 không còn là vector (tùy vào yêu cầu bài toán của bạn).
Cám ơn bác "picvendor" đã quan tâm trả lời.Thực chất đây là 1 bài toán động học ngược,em cho quỹ đạo trước và các thông số ban đầu:q1=0.94910999;q2=4.804079037;q3=0.52999628 để tìm ra quỹ đạo (các góc tại khớp).Em giới hạn x nằm trong khoảng [-10,10].
Nếu bác "picvendor" từng dùng fsolve rồi thì có thể nói rõ hơn về cách dùng nó cho em và anh em trong diễn đàn được ko? Em cảm ơn rất nhiều.
conso0 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn