2009-11-29 61 views
8
syms t;   % Define symbolic var x. 
y = int(t^2); % Calculate integral of x; it should be t^3/3. 
x = [1:10] 

Bây giờ tôi muốn tính y (x), nó phải là [1/3, 8/3, .., 1000/3].Đánh giá biểu thức biểu tượng

+2

Nếu bạn đang tìm kiếm tích phân của t^2, bạn sẽ không nhận được t^3/3, không phải 2t. 2t sẽ là đạo hàm của t^2 – rzrgenesys187

+1

vâng, tất nhiên. hãy nói rằng tôi đã vội vàng :) – Fantomas

Trả lời

17

Câu trả lời ngắn: sử dụng subs. Long trả lời:

>> syms t; 
>> y = int(t^2) % note: as rzrgenesys187 says, this is t^3/3 

y = 

t^3/3 

>> x = 1:10; % same as x = [1:1:10]    
>> subs(y, 't', x) 

ans = 

    Columns 1 through 7 

    0.3333 2.6667 9.0000 21.3333 41.6667 72.0000 114.3333 

    Columns 8 through 10 

    170.6667 243.0000 333.3333 

Nếu bạn muốn làm cho biểu y(x) hành xử giống như chức năng gọi, bạn có thể ràng buộc các biến 'y' sử dụng một chức năng ẩn danh:

>> y = int(t^2);   
>> y = @(t) subs(y, 't', t); % the 't^3/3' value of y gets bound into the anonymous function 
>> y(x) 

ans = 

    Columns 1 through 7 

    0.3333 2.6667 9.0000 21.3333 41.6667 72.0000 114.3333 

    Columns 8 through 10 

    170.6667 243.0000 333.3333 

>> y(2) 

ans = 

    2.6667 
Các vấn đề liên quan