View Single Post
Old 10-01-2008, 12:01 AM   #4
picvendor
Super Moderator
 
Tham gia ngày: Jun 2005
Bài gửi: 385
:
Cách dùng fsolve thì trong Matlab Help có mô tả kỹ rồi: http://www.math.colostate.edu/manual...im/fsolve.html

Viết Matlab theo một ví dụ hướng dẫn của họ thì mình thấy nó chạy thế nào:

Trích:
First, write an M-file that computes F, the values of the equations at x:

function F = myfun(x)
F = [2*x(1) - x(2) - exp(-x(1));
-x(1) + 2*x(2) - exp(-x(2))];

Next, call an optimization routine:

x0 = [-5; -5]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve('myfun',x0,options) % call optimizer
Ý nghĩa của lệnh fsolve là dùng để giải một hệ phương trình phi tuyến, bằng một giải thuật lặp nào đó. Khi bạn quy định hàm số:

function F = myfun(x)
...
F = [ F1(x); F2(x); F3(x)]

chẳng hạn là đầu ra F có 3 thành phần, thì tức là muốn giải hệ 3 phương trình:
F1(x) = 0;
F2(x) = 0;
F3(x) = 0;

mà ở đó biến x cũng có thể là nhiều chiều (ở bài toán của bạn thì ký hiệu là q, có 3 chiều).

Phải nói rằng đây là công cụ rất mạnh của bộ Optimization toolbox, đứng trên cách nhìn tối ưu hóa để giải phương trình: thực hiện giải thuật lặp để tìm nghiệm x sao cho F(x) gần 0 nhất, tức là tối ưu hóa trị tuyệt đối của F(x).
---

Trong bài toán của bạn, q là biến số, nhưng x là gì và tại sao x có thể thay đổi trong khoảng [-10; 10]? Nếu x cũng là biến số thì bạn ghép nó thành q4, nếu không thì bạn cần gán x là giá trị cụ thể trước khi chạy lệnh fsolve.
__________________
Cách tìm link DOI để yêu cầu bài báo ở Sciencedirect: http://www.picvietnam.com/forum/show...&postcount=682
Cách tìm link DOI để yêu cầu bài báo ở IEEE: http://www.picvietnam.com/forum/show...&postcount=760
Cuộc thi thiết kế PIC (tạm ngưng): http://www.picvietnam.com/contest
picvendor vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn