1. Trang chủ
  2. » Công Nghệ Thông Tin

IT - Matlab Software (Phần 2) part 12 potx

8 338 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 152,07 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nên dùng: S = SINGVALSVPAA thay cho S = SVDVPAA [U,S,V] = SINGVALSVPAA thay cho [U,S,V] = SVDVPAA SYM Tạo ra, truy cập hoặc sửa đổi một ma trận symbolic Một ma trận symbolic là một mảng

Trang 1

Giải hệ phương trình đại số symbolic

Phương trình một biến:

SOLVE(S), S là phương trình symbolic hoặc là một biểu thức symbolic thì giải phương trình đã cho, hoặc phương trình S = 0, biến tự do của nó được xác định bởi SYMVAR

SOLVE(S,'v') giải theo biến 'v'

Hệ phương trình nhiều biến

SOLVE(S1,S2, ,SN) giải hệ N phương trình symbolic N biến xác định bởi SYMVAR

SOLVE(S1,S2, ,SN,'v1,v2, ,vn') giải hệ N phương trình symbolic N biến chỉ định bởi N đối số nhập cuối cùng

[X1,X2, ,XN] = SOLVE(S1,S2, ,SN), và

[X1,X2, ,XN] = SOLVE(S1,S2, ,SN,'v1,v2, ,vn') trả về N vectơ symbolic chứa các biểu thức theo các biến riêng biệt trong lời giải Trong tất cả các trường hợp thì trả về giá trị số nếu không tìm thấy lời giải symbolic

Ví dụ:

solve('log(x) = x/pi')

x = solve('a*x^2 + b*x + c')

b = solve('a*x^2 + b*x + c', 'b')

[x,y] = solve('x^2 + 2*x*y + y^2 = 4', 'x^3 + 4*y^3 = 1')

[u,v] = solve('a*u^2 + v^2', 'u - v = 1', 'u,v')

[a,u,v] = solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a + 6')

SUBS

Thay thế ký hiệu trong một biểu thức hoặc ma trận symbolic

SUBS(S,NEW) Thay biến symbolic trong S bởi NEW

SUBS(S,NEW,OLD) Thay tất cả OLD trong S bởi NEW

Ví dụ:

subs sin(x) pi/3 = 'sin(1/3*pi)'

subs sin(z) x+i*y = 'sin(x+i*y)'

f = 'F(a*r^2)'

r = 'sqrt(x^2+y^2)'

subs(f,r,'r') = 'F(a*(x^2+y^2))'

Trang 2

SVDVPA

Tách giá trị biến kỳ dị

SINGVALS cũng có thể tính các giá trị kỳ dị SVDVPA được thay bởi SINGVALS Nên dùng:

S = SINGVALS(VPA(A)) thay cho S = SVDVPA(A)

[U,S,V] = SINGVALS(VPA(A)) thay cho [U,S,V] = SVDVPA(A)

SYM

Tạo ra, truy cập hoặc sửa đổi một ma trận symbolic

Một ma trận symbolic là một mảng văn bản MATLAB có mỗi dòng bắt đầu với

'[', kết thúc với ']', và chứa các chuỗi con cách nhau bởi các dấu phẩy để biểu hiện các phần tử riêng biệt Có 3 cách tạo ra các ma trận symbolic :

SYM(X) chuyển ma trận số X sang dạng symbolic của nó với các phần tử được biểu hiện bằng phân số (nhận được từ SYMRAT)

SYM(m,n,'expr') tạo ra ma trận symbolic cỡ mxn, các phần tử của ma trận symbolic được ước lượng đối với i = 1:m và j = 1:n Biểu thức expr là một biểu thức symbolic thường chứa các ký tự 'i', 'j', và các biến tự do khác

SYM(m,n,'r','c','expr') dùng 'r' và 'c' là các biến dòng và cột thay cho 'i' và 'j'

SYM('[s11,s12, ,s1n; s21,s22, ; ,smn]') tạo

ra ma trận symbolic cỡ mxn bằng cách dùng các phần tử symbolic s11, s12, , smn Dạng này của symbolic giống hệt phát sinh ma trận số trong MATLAB Các dấu chấm phẩy kết thúc các dòng Có 2 cách để truy cập các phần tử riêng biệt của ma trận symbolic:

SYM(S,i,j,'expr') là phiên bản symbolic của S(i,j) = 'expr'

r = SYM(S,i,j) là phiên bản symbolic của r = S(i,j)

Ví dụ:

M = sym(hilb(3)) là một ma trận văn bản với 3 dòng,

[ 1, 1/2, 1/3]

[1/2, 1/3, 1/4]

[1/3, 1/4, 1/5]

M = sym(3,3,'1/(i+j-t)') phát sinh

[1/(2-t), 1/(3-t), 1/(4-t)]

[1/(3-t), 1/(4-t), 1/(5-t)]

[1/(4-t), 1/(5-t), 1/(6-t)]

M = sym(M,1,3,'1/t') thay đổi phần tử (1,3) của M thành '1/t'

M = sym('a, 2*b, 3*c; 0, 5*b, 6*c; 0, 0, 7*c') phát sinh ma trận symbolic tam giác trên có định thức determ(M) = 35*a*b*c Sau đó M, sym(M,1,3)= '3*c'

SYM2POLY

Trang 3

Đổi đa thức symbolic sang vectơ hệ số của đa thức

SYM2POLY(p) trả về vectơ hệ số của đa thức symbolic p

Ví dụ:

sym2poly('x^3 - 2*x - 5') = [1 0 -2 -5]

SYMADD

Cộng symbolic

SYMADD(A,B) tính tổng symbolic A + B

Ví dụ:

symadd('cos(t)','t') = 'cos(t)+t'

SYMDIFF

Vi phân symbolic

Hàm này thường được gọi bởi DIFF để tính đạo hàm

SYMDIFF(S) vi phân S theo biến tự do của nó

SYMDIFF(S,'v') vi phân S theo biến 'v'

SYMDIFF(S,n) và SYMDIFF(S,'v',n) vi phân S n lần SYMDIFF, không tham số, vi phân biểu thức trước

SYMDIV

Chia symbolic

SYMDIV(A,B), với các biểu thức hoặc ma trận symbolic A và B, tính A / B

Ví dụ:

symdiv('2*cos(t)+6',3) trả vềs 2/3*cos(t)+2

Nếu

A =

[ 2, a + 3/2]

[ 7/6, a/2 + 1]

B =

[ 1, 1/2]

[ 1/2, 1/3]

thì symdiv(A,B) trả về

[ -1-6*a, 6+12*a]

[-4/3-3*a, 5+6*a]

SYMMUL

Nhân symbolic

SYMMUL(A,B), với các biểu thức hoặc ma trận symbolic A và B, tính tích đại số tuyến tính symbolic A * B

Ví dụ:

symmul('x','exp(x)') = 'x*exp(x)'

SYMOP

Tính toán symbolic

SYMOP(arg1,arg2,arg3, ) lấy đến 16 đối số Mỗi dối số có thể là một ma trận symbolic, một ma trận số, hoặc một trong các phép toán sau: '+', '-', '*', '/', '^', '(',')'

Trang 4

SYMOP( ) nối các đối số và ước lượng biểu

thức kết quả

Ví dụ:

x = 'x'

f = symop(1,'+',x,'+',x,'^',2,'/',2);

symop(f,'-',int(diff(f)))

symop('exp(x)','/','(',f,'+',x,'^3','/',6,')')

G = sym('[c, s; -s, c]')

symop(G,'*',transpose(G))

Lưu ý: Việc hòa lẫn các đại lượng vô hướng và

các ma trận có thể có các kết quả không như ý

muốn Ví dụ, symop(A,'+',x) cộng x vào đường

chéo của A

SYMPOW

Tính lũy thừa của một biểu thức hoặc ma trận

symbolic

SYMPOW(S,p) tính S^p Nếu S là một biểu thức

symbolic thì p có thể là một biểu thức symbolic

vô hướng hoặc biểu thức số vô hướng Nếu S là

ma trận symbolic thì S phải vuông, và p phải là

một số nguyên

Ví dụ: sympow('exp(t)',2) = 'exp(t)^2'

SYMRAT

Xấp xỉ phân số symbolic

SYMRAT(X), với vô hướng X, là một chuỗi biểu

hiện một số nguyên, phân số, phân số nhân 'pi'

hoặc số nguyên mũ 2 Khi chuỗi được ước lượng

với số chấm động của MATLAB thì kết quả cho lại

đúng giá trị X

Ví dụ:

symrat(22/7) = '22/7' symrat(2*pi/3) = '2*pi/3'

symrat(1.e12) = '100000000000'

symrat(eps) = '2^(-52)'

SYMSIZE

Kích thước ma trận symbolic

D = SYMSIZE(S), với ma trận S cỡ MxN, trả về hai

vectơ dòng gồm 2 phần tử

D = [M, N] chứa số dòng và số cột trong ma trận

[M,N] = SYMSIZE(S) trả về số dòng và số cột

trong 2 biến xuất riêng biệt

M = SYMSIZE(S,1) trả về đúng số dòng

N = SYMSIZE(S,2) trả về đúng số cột

SYMSUB

Trừ symbolic

SYMSUB(A,B) với các biểu thức hoặc ma trận

symbolic A và B, tính A - B

SYMSUM

Tổng symbolic

Trang 5

SYMSUM(S) là tổng vô hạn S theo biến symbolic của nó

SYMSUM(S,'v') là tổng vô hạn S theo biến v

SYMSUM, không đối số, là tổng vô hạn theo biến symbolic của của biểu thức trước

SYMSUM(S,a,b) là tổng vô hạn S theo biến symbolic của nó từ a đến b

SYMSUM(S,'v',a,b) là tổng vô hạn S theo biến v từ

a đến b

Ví du:

symsum k^2 1/3*k^3-1/2*k^2+1/6*k

symsum k^2 0 n-1

1/3*n^3-1/2*n^2+1/6*n

symsum k^2 0 10 385

symsum k^2 11 10 0

symsum 1/k^2 -Psi(1,k) symsum 1/k^2 1 Inf 1/6*pi^2

symsum x^k/k! k 0 Inf exp(x)

SYMVAR

Xác định các biến symbolic trong một biểu thức SYMVAR(S) tìm trong chuỗi s để lấy một ký tự chữ thường riêng biệt, khác 'i' hoặc 'j', đó là một phần của 1 từ tạo thành từ một số ký tự Nếu có ký tự đó và là duy nhất thì trả về ký tự đó Nếu không có thì trả về ‘x’

Nếu ký tự không duy nhất thì trả về một ký tự gần ‘x’

Nếu có ràng buộc thì một ký tự la tinh được chọn

SYMVAR(S,'t') chọn biến gần 't' thay cho 'x'

SYMVAR(S,N), với số nguyên vô hướng N, tìm N ký tự khác nhau trong, kể cả 'i' và 'j' Nếu có

N ký tự thì trả về danh sách chúng Ngược lại thi kết quả là một lỗi SYMVAR(S,N), với vectơ nguyên ít nhất 2 thành phần thì tìm một số ký tự khác nhau Khi N là một vectơ thì SYMVAR(S,N) không bao giờ thông báo lỗi Nếu số tìm thấy giữa min(N) và max(N), thì trả về một danh sách Nếu số tìm thấy ít hơn min(N), thì trả về một ma trận rỗng Nếu số tìm thấy lớn hơn max(N), thì trả về NaN

Ví dụ:

symvar('sin(x)') = 'x'

symvar('sin(pi*t)') = 't'

symvar('a+y') = 'y'

symvar('3*i+4*j') = 'x'

symvar('pi',[1 1]) = rỗng

f = '3*x+4*y';

symvar(f) = 'x'

symvar(f,2) = 'x, y'

g = 'Dx = y; Dy = -x + sin(t)';

symvar(g,2:3) = 't,x,y'

symvar(g,[1 1]) = NaN

Trang 6

symvar(g,n) với vô hướng n ~= 3 là một lỗi

SYMVARS

Thay thế biến symbolic

F = SYMVARS(F,Y,X) thay đối biến symbolic trong F từ

Y sang X

Hàm này giôïng như SUBS(F,Y,SYMVAR(F)) không dùng Maple

TAYLOR

Khai triển chuỗi Taylor

TAYLOR(f) trả về khai triển chuỗi Taylor của f theo biến xác định bởi SYMVAR

TAYLOR(f,'v') dùng biến 'v'

TAYLOR(f,n) khai triển n hạng tử thay cho ngầm định n = 6

TRANSPOSE

Chuyển vị ma trận symbolic

TRANSPOSE(A) tính chuyển vị của ma trận symbolic hoặc ma trận số A

Ví dụ: transpose(sym('[cos(x), sin(x); -sin(x), cos(x)]'))

VECTORIZE

Vectơ hóa một biểu thức symbolic

VECTORIZE(F) chèn một '.' vào trước mỗi '^', '*' và '/' trong F

VPA

Chính xác số học

VPA(A) ước lượng số mỗi phần tử của A bằng cách dùng độ chính xác số học dấu chấm động với D chữ số thập phân , D là cài đặt hiện thời của DIGITS

VPA(A,D) dùng D chữ số, thay cho cài đặt hiện thời của DIGITS Mỗi phần tử của kết quả là một "số symbolic ", là một chuỗi chứa nhiều chữ số

VPA, không đối số, ước lượng biểu thức symbolic trước

Ví dụ, ma trận :

vpa(hilb(2),25) trả về

[1 , 5000000000000000000000000]

[.5000000000000000000000000,

.3333333333333333333333333]

vpa(hilb(2),5) trả về

[1 , 50000]

[.50000, 33333]

Ví dụ, dạng hàm:

phi = '(1+sqrt(5))/2' là "tỉ lệ vàng "

vpa(phi,75) là chuỗi chứa 75 chữ số của phi

Ví dụ, dạng lệnh:

Trang 7

vpa pi 1919 là một màn hình đầy các số của pi

vpa exp(pi*sqrt(163)) 36 hiện một số

"gần nguyên"

ZETA

Hàm Zeta Riemann

ZETA(s) = sum(1/k^s,k=1 infinity)

ZTRANS

Biến đổi Z

F = ZTRANS(f) là biến đổi Z của biểu thức symbolic f,

F(z) = symsum(f(n)/z^n,'n',0,inf)

F = ZTRANS(f,'v') là hàm theo biến 'v' thay cho 'z'

F = ZTRANS(f,'v','x') giả thiết f là hàm theo biến 'x' thay cho 'n'

F = ZTRANS, không đối số, biến đổi kết quả trước

Ví dụ:

ztrans 1 z/(z-1)

ztrans a^n z/(z-a)

ztrans sin(n*pi/2) z/(1+z^2)

ztrans('x^k/k!','z','k') exp(1/z*x)

ztrans('f(n+1)')

z*ztrans(f(n),n,z)-f(0)*z

********************

Trang 8

TÀI LIỆU THAM KHẢO [1] USER’S GUIDE - MATHWORKS

[2] WWW.MATHWORKS.COM

[3] ĐỒ HỌA VỚI MATLAB - ĐẶNG MINH HOÀNG

[4] CƠ SỞ MATLAB & ỨNG DỤNG - NGUYỄN HỮU TÌNH

Ngày đăng: 10/07/2014, 02:20

TỪ KHÓA LIÊN QUAN