BÀI GIẢNG MATLAB - Trang 207

205

dx = jac\(-f0);
x = x + dx;
if sqrt(dot(dx,dx)/length(x)) < tol*max(abs(x),1.0)
root = x; return
end
end
error('Too many iterations')

function [jac,f0] = jacobian(func,x)
% Returns the Jacobian matrix and f(x).
h = 1.0e-4; n = length(x);
jac = zeros(n); f0 = feval(func,x);
for i =1:n
temp = x(i);
x(i) = temp + h;
f1 = feval(func,x);
x(i) = temp;
jac(:,i) = (f1 - f0)/h;
end

function main

global tSTART tSTOP h k v0
k=0; %so lan ban thu
tSTART = 0; tSTOP = 150;
h = 0.01; v0 = 500;
theta = 40; % thu ban voi theta = 40 do

theta = newtonRaphson2(@residual,theta);
[tSol,ySol] = ode45(@dEqs,[tSTART:h:tSTOP],inCond(v0, theta));

% tim thoi gian chuyen dong
for j = 50:length(tSol)
if ySol(j,3)>=0 && ySol(j+1,3)<0
t_ground(j) = tSol(j); ki = j+1;
end
end
% Tam xa L(theta)

tSTOP = tSol(ki)
[t,y] = ode45(@dEqs,[tSTART:h:tSTOP],inCond(v0, theta));
plot(y(:,1), y(:,3), 'k-', 'Linewidth', 2), grid on
xlabel('x'), ylabel('y')
disp('Goc ban can tim (do)')
theta

Kết quả thu ñược góc bắn cần thiết ñể ñạt mục tiêu là

77.8777

o

θ

=

. Thời gian bay

của viên ñạn là 91.35 giây. Quĩ ñạo chuyển ñộng của viên ñạn như trên hình 9-17.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.