bài thực hành symbolic math – lập trình – simulink

11 211 0
bài thực hành symbolic math  – lập trình – simulink

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÀI THỰC HÀNH SYMBOLIC MATH LẬP TRÌNH SIMULINK Tính giới hạn: lim ( + x ) G1 =  1 lim  − x ÷; x →0 x e −1  G2 = lim ( sin x ) x →0 x ; G3 = ln x ; giải: để tính giới hạn hàm số: kq=limit(y,x,giới hạn) với giới hạn vô inf trước tiên cần phải khai báo ký hiệu: syms x…; >> syms x; >> G1=1/x-1/(exp(x)-1); >> G2=sin(x).^x; >> G3=(1+x).^(log(x)); >> kq1=limit(G1,x,0) kq1 =1/2 >> kq2=limit(G2,x,0) kq2 =1 >> kq3=limit(G3,x,0) kq3 = Tính đạo hàm hàm số: x →0 y1 = cos x + ; y2 = x a2 x a − x + arcsin ; 2 a giải:với tốn tính đạo hàm cần khai báo biến syms, dùng lệnh diff(f) cho dao ham cap 1,diff(f,2) cho dao ham cap >> syms x a; >> y1=1./cos(sqrt(x.^2+1)); >> y2=x/2*sqrt(a.^2-x.^2)+a.^2/2*asin(x/a); >> kq1=diff(y1) kq1 = (x*sin((x^2 + 1)^(1/2)))/(cos((x^2 + 1)^(1/2))^2*(x^2 + 1)^(1/2)) >> kq2=diff(y2) kq2 = (25 - x^2)^(1/2)/2 - x^2/(2*(25 - x^2)^(1/2)) + 5/(2*(1 - x^2/25)^(1/2)) Tính tích phân: sin x T1 = ∫ + cos2 x dx ; T2 = ∫ arcsin x − x2 dx ; giải:với tốn tính ngun hàm cần khai báo biến syms, dùng lệnh int(f(x)) >> syms x; >> T1=sin(2*x)/(1+cos(2*x)); >> T2=atan(sin(2*x))/sqrt(1-x.^2); >> int(T1) ans =-log(2*cos(x)^2)/2 >> int(T2) Warning: Explicit integral could not be found ans =int(atan(sin(2*x))/(1 - x^2)^(1/2), x) Tính tích phân xác định phương pháp Simpson lệnh int Symbolic Math: a − sin ( x ) T1 = ; x a − x dx ; T2 = ∫ ∫ −a x dx Giai: để giải tốn với tích phân xác định dùng phương pháp sau: Int(f(x),a,b) với a,b giới hạn với phương pháp hình thang y=f(x) lệnh trapz(x,y) với x=[a:h:b] với p2 simson lệnh quad(fun,a,b) hàm fun viết dạng handles (@(x)) >> syms x; >> T1=x.^2*sqrt(a.^2-x.^2); >> T2=sqrt(1-sin(x).^2)/x; >> int(T1,-a,a) ans = (pi*a^4)/8 >> int(T2,1,2) Warning: Explicit integral could not be found ans = int((1 - sin(x)^2)^(1/2)/x, x = 2) ?5 Khảo sát biến thiên vẽ đồ thị hàm số: f(x) = >> syms x; >> f=(x.^3*log(x)+4*x)/(x.^2-1); >> ezplot(f) >> hold on >> x_tcd=solve(x.^2-1) x_tcd = -1 >> plot([-1 1],[-15 25],'r') >> plot([1 1],[-15 25],'r') >> x_ctr=double(solve(diff(f))) x_ctr = 2.1501 >> y_ctr=subs(f,x_ctr) x3 ln x + x ; x2 − y_ctr = 4.4741 >> plot(x_ctr,y_ctr,'r*') 300 ?6 Tính tổng S = ∑ n n =1 sin π 2n phương pháp lập trình, so sánh kết tính tốn sử dụng cách tính tổng chuỗi Symbolic Math giải: tốn sử dụng vòng lặp for i=array >> n=1 >> s=0; >> for n=1:300; s=s+n.^2*sin(pi/(2.^n)); end >> s s = 17.8505 cách 2: tính phương pháp chuỗi Symbolic Math ta thêm double để chuyển từ dạng ký hiệu sang dạng số: >> syms n; >> double(symsum(n^2*sin(pi/(2^n)),1,300)) ans = 17.8505 ?7 Sử dụng vòng lặp for lập trình Matlab để tính tổng: S = n + 5n ∑ 6n n=1 500 so sánh kết có với kết tính tốn sử dụng cách tính tổng chuỗi Symbolic Math Lập trình Matlab tìm giá trị nguyên dương lớn số n mà có tổng: a S = 11 + 22 + 33 + + nn < 1.000.000; b S = en 1992.lg(n) ≤ 5; giải: với toán cần kết hợp thêm lệnh if a))>> n=1; s=0; for n=1:1000000; if n.^n> s s= ->> n=1; >> s=1; >> while n.^n> s s= >> while exp(n)-1992*log10(n)> s s= >> n=7; >> h=exp(n)-1992*log10(n) h =-586.8021 >> h=0; >> n=1; >> while h> n-2 n= ?9 Một mạch điện gồm đoạn mạch mắc song song, đoạn thứ gồm N tụ điện mắc nối tiếp, đoạn thứ hai gồm M tụ điện mắc nối tiếp Lập trình Matlab nhập N, M (> T=1; x x3 xn + + + + 2! 3! n! >> x=input('nhap x=') nhap x=3 x= >> n=input('nhap n=') nhap n=2; n= >> for i=1:n; T=T+x.^i/factorial(i); end >> T T = 8.5000 11 Cho hàm số : f(x) = 0.5 x < −0.5  2 x − 0.5 ≤ x ≤ 0.5 0.5 x > 0.5  Vẽ đồ thị hàm f với x khoảng -1 ÷ giải: với toán cần phải tạo file M-file sử dụng lệnh dk if M-file: function y = cau11(x ) j=0; y=[]; j=j+1; for i=x; if i< -0.5 y(j)=0.5; elseif i> x=[-1:0.05:1]; >> y=cau11(x); >> plot(x,y) Cach 2: function y = cau11(x ) y=[]; if x< -0.5 y=0.5; elseif -0.5≤ x> x=[-1:0.05:1]; >> y=cau111(x); >> plot(x,y) 12 Cho hàm số: f(x) = − sin x  1 sin x  x < −π / −π / ≤ x ≤ π / x > 0.5 khoảng -π ÷ π function y = cau13(x ) if x< -pi/2 y=-sin(x); elseif -pi/2 x=[-pi:0.1:pi]; >> y=cau13(x); >> plot(x,y) Cách 2: function y = cau13(x ) j=0; j=j+1; y=[]; for i=x if i< -pi/2 y(j)=-(sin(i)); elseif -pi/2 x=[-pi:0.1:pi]; Vẽ đồ thị hàm f với x >> y=cau13(x); >> plot(x,y) 13 Nhập vào hai số a,b tính: y = 15x2 + x + 72 với: x=  a+b a < b    15,172 a = b  a−b  a > b  a + b2 giải: với tốn cần lập M-file với x=cau13(a,b) function x = cau131(a,b ) if a> a=input('nhap a=') nhap a=5 a= >> b=input('nhap b=') nhap b=5 b= >> x=cau131(a,b) x = 15.1720; >> y=15*x.^2+x+72 ans = 3.5400e+003 14 Nhập vào ba số x, y, z, tính đưa kết hình: f= x+ y   z + arctg − xy x > va z <  x+ y  xy < va z >  z + arctg − xy   x+ y  z + arctg xy > va z > − xy   15 cac truong hop lai  function f = cau14( x,y,z) if x>0& z1& z>0 f=z.^3+atan((x+y)/(1-x*y)); else f=15; end end >> x=input('nhap x=') nhap x=-1 x = -1 >> y=input('nhap y=') nhap y=-2 y = -2 >> z=input('nhap z=') nhap z=-3 z = -3 >> f=cau14(x,y,z) f = 15 15 Giải phương trình vi phân phương pháp mô Simulink: dy = cos( x − y ) − ( x − y ) dx giải: khối cần cho toán: ADD- khối cộng RAMP- khối tín hiệu vào phi tuyến ( hàm lượng giác) GAIN- nhân với tín hiệu đứng trước TRIGONOMETRIC FUNCTION-khối hàm lượng giác Intergartor- khối vi phân Scope - hiển thị hình kết đồ thị Display - hiển thị hình kết số cuối Math funtion- khơí cho bình phương đầu vào 16 Giải hệ phương trình phi tuyến phương pháp mô Simulink: −x   x1 + x1 − s inx2 = e + 2,105  − x2  − cos x1 + x2 = e + 12,8638 So sánh kết mô với kết giải lệnh solve Các khối cần lấy: Constant- khối số nguyên Display- thị kết số Subtract -khối cộng trừ Math function- khối bình phương (có thể thay đổi giá trị khối) Algebraic Constraint- khối giải hệ phương trình fsolve Product- thực nhân chia TRIGONOMETRIC FUNCTION-khối hàm lượng giác kiểm tra lại lệnh fsolve(@fun,x0) function f = bai161(x) f=[x(1)^2+8*x(1)-sin(x(2))-exp(-x(1))-2.105;exp(x(2))+cos(x(1))-2*x(2)+12.8638]; >> t=[0;0]; >> kq=fsolve(@bai161,t) kq = 0.3988 6.8932 17 Giải hệ phương trình phương pháp mơ Simulink: 2 x12 − x22 − x3 = 10,5   x2 + x3 = 11,5 ;  6 x1 + x2 + x3 = 20, 75 So sánh kết mô với kết giải lệnh solve kiểm tra lại lệnh fsolve: function f =bai171(x ) f=[2*x(1)^2-x(2)^2-2*x(3)-10.5;x(2)+2*x(3)^211.5;6*x(1)+3*x(2)^2+x(3)-20.75]; >> x0=[0;0;0]; >> fsolve(@bai171,x0) ans = 2.1693 1.8197 -2.2000 18 Giải phương trình vi phân phương pháp mô Simulink: (2 x + xy − 1)dx + (2 y + x y + 3)dy = với x = ÷ 20 ... tốn sử dụng cách tính tổng chuỗi Symbolic Math Lập trình Matlab tìm giá trị nguyên dương lớn số n mà có tổng: a S = 11 + 22 + 33 + + nn < 1.000.000; b S = en – 1992.lg(n) ≤ 5; giải: với toán... phương pháp chuỗi Symbolic Math ta thêm double để chuyển từ dạng ký hiệu sang dạng số: >> syms n; >> double(symsum(n^2*sin(pi/(2^n)),1,300)) ans = 17.8505 ?7 Sử dụng vòng lặp for lập trình Matlab... plot(x_ctr,y_ctr,'r*') 300 ?6 Tính tổng S = ∑ n n =1 sin π 2n phương pháp lập trình, so sánh kết tính tốn sử dụng cách tính tổng chuỗi Symbolic Math giải: tốn sử dụng vòng lặp for i=array >> n=1 >> s=0; >>

Ngày đăng: 22/11/2017, 21:14

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan