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: AzTruyen.Top