Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

Chương 8: phương trình vi phân thường

1.    Chương trình tìm y = f(x) trong khoảng [0,10] thỏa mãn pt vi phân

2.    Dx/dt = 2t^3-3y+5yz, dy/dt = ty+2xzt, dz/dt = 3x^2-txz trong khoảng t[2,15] với x(2) = 1,5; y(2) = 2,34; z(2) = 3.33

3.    Vẽ đồ thị 3 hàm y,g,h trên cùng một hệ trục tọa độ bằng 3 màu đỏ,xanh biển,xanh lá- 22

4.    Dx/dt = 3t^3-2y+tyz, dy/dt = 2txy+5txz, dz/dt = -3tx^2 + xz trong khoảng t[1,10] với x(1) = -1,10; y(1) = 2,33; z(1) = 5.33

Hàm nội trú

Bài 1:dùng phương pháp Euler giải gần đúng bài toán Cauchy

Bài 2:pp Hiện ẩn hình thang tính gần đúng hàm chop bởi bài toán cauchy

Bài 3: pp Hiện ẩn trung điểm

Bài 4:pp Runge-Kutta

========================

A –       M – file

1.     Chương trình tìm y = f(x) trong khoảng [0,10] thỏa mãn pt vi phân

Y’’’’+2y’’’.y’.y-4y’’+3xy-6=0

Y’’’(0)=y’’(0)=1;y’(0)=y(0)=0,5

Vẽ đồ thị của y’’ đối với y và y’ dươi dạng đường cong 3d

function yp = f1(x, y)

    yp(1) = y(2);

    yp(2) = y(3);

    yp(3) = y(4);

    yp(4) = -2*y(4)*y(2)*y(1) + 4*y(3) - 3*x*y(1) + 6;

    yp = yp.';

end

function [x,y] = VIIIA1()

    Xspam = [0 10];

    y0 = [0.5 0.5 1 1];

    Opt = odeset('reltol', 1.e-4, 'abstol', [1.e-6 1.e-6 1.e-6 1.e-6]);

    [x,y] = ode45('f1', Xspam, y0, Opt);

    plot3(y(:,1), y(:,2), y(:,3));

    xlabel('Y-Axist');  ylabel('dY-Axist');  zlabel('d2Y-Axist');

end

2.     Dx/dt = 2t^3-3y+5yz, dy/dt = ty+2xzt, dz/dt = 3x^2-txz trong khoảng t[2,15] với    x(2) = 1,5; y(2) = 2,34; z(2) = 3.33

function yp =f2(t,y)

    yp(1) = 2*t^3 - 3*y(2) + 5*y(2)*y(3);

    yp(2) = t*y(2) + 2*y(1)*y(3)*t;

    yp(3) = 3*y(1)^2 - t*y(1)*y(3);

    yp = yp.';

end

function [x,y] = VIIIA2()

    clear;

    Xspan = [2 15];

    y0 = [1.5 2.34 3.33];

    Opt = odeset('reltol', 1.e-3, 'abstol', [1.e-6 1.e-6 1.e-6]);

    [x,y] = ode45('f2', Xspan, y0, Opt);

    plot3(y(:,1), y(:,2), y(:,3));

    xlabel('X-Axist');ylabel('Y-Axist'); zlabel('Z-Axist')

end

3.     Vẽ đồ thị 3 hàm y,g,h trên cùng một hệ trục tọa độ bằng 3 màu đỏ,xanh biển,xanh lá

function [x,y] = VIIIA3()

    clear;

    Xspam = [1 10];

    y0 = [3.0 2.0 1.0];

    Opt = odeset('reltol', 1.e-5, 'abstol', [1.e-8 1.e-8 1.e-8]);

    [x, y] = ode45('f3', Xspam, y0, Opt);

    plot(x, y(:,1),'r',x, y(:, 2), 'b', x,y(:,3), 'g');

    xlabel('X-Axist');

    ylabel('Y-Axist');

    legend('Ham y', 'Ham g', 'Ham h');

end

4.     Dx/dt = 3t^3-2y+tyz, dy/dt = 2txy+5txz, dz/dt = -3tx^2 + xz trong khoảng t[1,10] với x(1) = -1,10; y(1) = 2,33; z(1) = 5.33

function x = VIIIA5()

Xpan = [0 20];

y0 = [1 1.2 5];

Opt = odeset('reltol',1e-4,'abstol',[1e-6 1e-6 1e-6]);

[x,y] = ode45('F',Xpan,y0,Opt);

plot(x,y(:,1),'r',x,y(:,2),'b',x,y(:,3),'g');

xlabel('x_axis');

ylabel('y,g,h_axist');

legend('Ham Y','Ham G','Ham H');

grid on;

B – Hàm nội trú

Bài 1:dùng phương pháp Euler giải gần đúng bài toán Cauchy

>> h = 0.02;

>> x = [1:h:5];

>> n = length(x);

>> u(1) = 1;

>> for k=1:n-1

    u(k+1)=u(k)+h*F1(x(k),u(k));

end

 Bài 2:pp Hiện ẩn hình thang tính gần đúng hàm cho bởi bài toán cauchy

>> h = 0.05;

>> x = [0:h:2];

>> n = length(x);

>> u(1)=5;

>> for k=1:n-1

    u(k+1)=u(k)+h*F2(x(k),u(k));

    u(k+1)=u(k)+h/2*F2(F2(x(k),u(k)),F2(x(k+1),u(k+1)));

   end   

 Bài 3: pp Hiện ẩn trung điểm

>>h = 0.1;

>>x = [0:h:10];

>>n = length(x);

>>u(1)=2;

>>for k=1:n-1

    u(k+1) = u(k)+h/2*F3(x(k),u(k));

    u(k+1) = u(k)+h*F3(x(k)+h/2,u(k+1));

  end   

Bài 4:pp Runge-Kutta

>>h = 0.1;

>>x = [0:h:10];

>>n = length(x);

>>u(1)= 0;

>>for k=1:n-1

    k1 = h*F4(x(k),u(k));

    k2 = h*F4(x(k)+h/2,u(k)+k1/2);

    k3 = h*F4(x(k)+h/2,u(k)+k2/2);

    k4 = h*F4(x(k)+h,u(k)+k3);

    u(k+1) = u(k)+1/6*(k1+2*k2+2*k3+k4);

  end

- 24

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: #leez