Phƣơng trỡnh vi phõn thƣờng

Một phần của tài liệu bài giảng hướng dẫn sử dụng matlab (Trang 89 - 93)

DSOLVE Symbolic tỡm nghiệm của phƣơng trỡnh vi phõn

DSOLVE('eqn1','eqn2', ...) chỉ chấp nhận cỏc biểu thức vi phõn dạng symbolic ('eq1'....) và điều kiện đầụ Một số phƣơng trỡnh hoặc cỏc điều kiện đầu cú thể đƣợc nhúm lại với nhau và cỏch nhau bằng dấu phẩy (comma), đối với một thụng số đầu vào, mặc định là biến 't' biến độc lập này cú thể đƣợc thay đổi từ 't' đến cỏc biến symbolic khỏc bằng cỏch thờm biến đú nhƣ là thụng số đầu vào cuối cựng

Vớ dụ:

Giả sử ta cần giải phƣơng trỡnh vi phõn dy/dx= x*y biến lấy tớch phõn(phải là) x cho nờn ta coi x là thụng số đầu vào cuối cựng ta viết nhƣ sau

syms x

y=dsolve('Dy=x*ý,'Dy(0)=1','x');

ký hiệu 'D' định nghĩa phƣơng trỡnh vi phõn tƣơng ứng với biến độc lập vớ dụ thụng thƣờng sử dụng dy/dt . ''D'' đƣợc theo sau bởi một số ,thỡ số đú định nghĩa bậc vi phõn vớ dụ D2y nghĩa là d2y/dt2 vớ dụ sau:

y = dsolve('D2y+y=1','y(0) = 0') kết quả: y = 1+C1*sin(t)-cos(t) Cũn D3y tức là d3y/dt3

chỳ ý rằng biến symbolic khụng đƣợc chứa trong D vớ dụ nhƣ khụng thể ghi nhƣ sau: syms y; dsolve('Dý) (sai)

Điều kiện đầu xỏc định bởi biểu thức 'y(a)=b' hoặc 'Dy(a)=b'

ở đú y là một trong những biếnphụ thuộc và a và b là số khụng đổi nếu số điều kiện đầu nhỏ hơn số biến phụ thuộc thỡ kết quả sẽ đƣợc cho trong mảng C1,C2

Cú ba kiểu đầu rạ Đối với một phƣơng trỡnh vi phõn thỡ cú một đầu ra, đối với hệ cú nhiều phƣơng trỡnh vi phõn thỡ cú số đầu ra tƣơng ứng (đầu ra cú thể là một structer)

83

Examples:

dsolve('Dx = -a*x') returns ans = exp(-a*t)*C1

x = dsolve('Dx = -a*x','x(0) = 1','s') returns x = exp(-a*s)

y = dsolve('(Dy)^2 + y^2 = 1','y(0) = 0') returns y =

[ sin(t)] [ -sin(t)]

S = dsolve('Df = f + g','Dg = -f + g','f(0) = 1','g(0) = 2') returns a structure S with fields

S.f = exp(t)*cos(t)+2*exp(t)*sin(t) S.g = -exp(t)*sin(t)+2*exp(t)*cos(t) Y = dsolve('Dy = y^2*(1-y)')

Warning: Explicit solution could not be found; implicit solution returned. Y =

t+1/y-log(y)+log(-1+y)+C1=0 dsolve('Df = f + sin(t)', 'f(pi/2) = 0')

dsolve('D2y = -õ2*ý, 'y(0) = 1, Dy(pi/a) = 0') S = dsolve('Dx = ý, 'Dy = -x', 'x(0)=0', 'y(0)=1')

S = dsolve('Du=v, Dv=w, Dw=-ỳ,'u(0)=0, v(0)=0, w(0)=1') w = dsolve('D3w = -w','w(0)=1, Dw(0)=0, D2w(0)=0') y = dsolve('D2y = sin(y)'); pretty(y)

Sử dụng ode23 và ode45 dựng để giải phƣơng trỡnh vi phõn thƣờng

Cấu trỳc: [T,Y] = ODE23(ODEFUN,TSPAN,Y0)

TSPAN = [T0 TFINAL] tổ hợp hệ phƣơng trỡnh vi phõn ý = f(t,y) từ thời gian T0 đến TFINAL với giỏ trị ban đầu Y0.

Hàm ODEFUN(T,Y) chắc chắn trả về một vộc tor cột tƣơng ứng với f(t,y). Mỗi hàng trong mảng kết quả Y tƣơng ứng thời điểm(t) trả về trong column vector T

Để lấy kết quả tại cỏc thời điểm T0,T1,...,TFINAL(tất cả là tăng đều hoặc giảm đều) sử dụng TSPAN = [T0 T1 ... TFINAL].

Vớ dụ:

[t,y] = ode23(@vdp1,[0 20],[2 0]); plot(t,y(:,1));

84

% L*d2q/dt2 + R * dq/dt + q/c = Eo* cos(w*t) % nguyen tac giai

global R L C Eo omega L=100; R=100; C=0.25; Eo=10; omega=1; %t0=0; %ta=3; %x0=[1 1]' tol=1e-3; [t,x]=ode23(@Mach1,[0 3],[1 1],tol); kq=[t x(:,1) x(:,2)] plot(t,x(:,1)); %--- Ham Mach1--- function f= Mach1(t,x) global R L C omega Eo f=[(Eo/L)*cos(omega*t)-x(1)/(C*L)-R*x(2)/L x(2)]';

%---ket qua thuc hien trong command window--- kq = 0 1.0000 1.0000 0.0800 0.9216 1.0833 0.3585 0.5926 1.4308 0.5589 0.2895 1.7484 0.7093 0.0171 2.0319 0.8596 -0.3011 2.3615 1.0069 -0.6642 2.7362 1.1900 -1.1987 3.2858 1.4006 -1.9498 4.0557 1.6323 -2.9833 5.1132 1.8804 -4.3902 6.5518 2.1408 -6.2933 8.4990 2.4104 -8.8576 11.1269 2.6868 -12.3044 14.6669 2.9682 -16.9303 19.4292

85

3.0000 -17.5398 20.0576

Nguyờn tắc giải bài toỏn : Đƣa phƣơng trỡnh vi phõn cấp n về n phƣơng trỡnh vi phõn cấp một trong vớ dụ trờn ta đặt x1= q ,x2=diff(x1) nhƣ vậy ta cú hai phƣơng trỡnh vi phõn (giống nhƣ phƣơng phỏp đặt biến trạng thỏi trong lý thuyết điều khiển tự động)

NỘI DUNG PHẦN THẢO LUẬN 1. Nội dung phần thảo luận 1.

Hóy lập chƣơng trỡnh cho bài toỏn nội suy Lagrange 1 chiều trong khoảng [1:4]. Hóy tỡm kết quả bất kỳ trong khoảng đú.

Số liệu: x 1 2 3 4 f 0.67 0.620 0.567 0.512 2. Nội dung phần thảo luận 2.

Tỡm nghiệm phƣơng trỡnh phi tuyến (bằng phƣơng phỏp chia đụi khoảng) sau: y = 3x3 – 2x2 – x +3 x [0,3]

TểM TẮT NỘI DUNG CỐT LếI

Sinh viờn nắm đƣợc những kiến thức cơ bản về nội dung, cấu trỳc cõu lệnh của

cỏc phƣơng phỏp tớnh ỏp dụng cho cỏc bài toỏn ứng dụng, bài toỏn kỹ thuật… BÀI TẬP ỨNG DỤNG, LIấN HỆ THỰC TẾ

1. Bài tập ứng dụng, liờn hệ thực tế 1.

Tỡm nghiệm gần đỳng hàm (phƣơng phỏp Newton) y = x3 – 5x2 +6x+1

2. Bài tập ứng dụng, liờn hệ thực tế 2.

Lập chƣơng trỡnh tớnh tớch phõn (phƣơng phỏp hỡnh thang) sau:

1 0 2 cos(x)dx 4x I HƢỚNG DẪN TỰ Ở NHÀ Tớnh tớch phõn hàm y = (1+ x2 – 3x3+

+ 4x5)dx với cận a=-1, b =1 theo phƣơng phỏp Simson.

86

CHƢƠNG 6:Mễ HèNH HểA,Mễ PHỔNG HỆ THỐNG

MỤC TIấU CỦA CHƢƠNG

Cung cấp cho sinh viờn những kiến thức cơ bản về mụ hỡnh hỳa, mụ phỏng hệ

thống động sử dụng Simulink

- Về thỏi độ: Hiểu đƣợc kiến thức cơ bản về mụ hỡnh hỳa, mụ phỏng hệ thống động sử dụng Simulink vận dụng vào cỏc bài toỏn kỹ thuật.

NỘI DUNG BÀI GIẢNG Lí THUYẾT

Một phần của tài liệu bài giảng hướng dẫn sử dụng matlab (Trang 89 - 93)

Tải bản đầy đủ (PDF)

(104 trang)