Professional Documents
Culture Documents
Bai Taplon Vat Ly
Bai Taplon Vat Ly
Bi tp 4:
Vi im q0.
Bi tp ny yu cu sinh vin s dng Matlab tnh ton cc thnh phn Fx, Fy ca lc tng tc tnh in gia cc in tch im trong mt phng Oxy. 2. iu kin 1) Sinh vin cn c kin thc v lp trnh c bn trong MATLAB. 2) Tm hiu cc lnh Matlab lin quan symbolic v ha. 3. Nhim v Xy dng chng trnh Matlab: 1) Nhp s in tch im. 2) Nhp ta v in tch ca mi in tch im trong mt phng Oxy.
3) Dng cc php ton hnh thc (symbolic) tnh cc thnh phn Fx v Fy ca lc tnh in do cc in tch cn li tc dng ln mi in tch. Ch : Sinh vin c th dng cc cch tip cn khc khng dng symbolic. 4. Ti liu tham kho: A. L. Garcia and C. Penland, MATLAB Projects for Scientists and Engineers, Prentice Hall, Upper Saddle River, NJ, 1996. http://www.algarcia.org/fishbane/fishbane.html.
% Coulombforce Xac dinh luc tuong tac tinh dien giau cac dien tich diem trong chan khong % Nhap ten nhom: Username = input(' Ten nhom : ','s') %@ Khoi tao bien, cac hang so vat ly NCharges = input('Nhap so luong dien tich diem: ') for iCharges=1:NCharges fprintf(' ----- \n Dien tich thu #%g \n',iCharges); r_in = input('Nhap toa do dien tich [x y]: '); x(iCharges) = r_in(1); % Toa do x cua dien tich y(iCharges) = r_in(2); % Toa do y cua dien tich q(iCharges) = input('Nhap dien tich q cua dien tich diem: '); end
%@ Tim xmin, xmax, ymin, and ymax xmin=min(x)-1; ymin=min(y)-1; xmax=max(x)+1; ymax=max(y)+1;
%@ Vong qua cac dien tich diem khac de tinh toan luc tuong tac tren dien tich nay fprintf(' Forces are: \n\n'); for iCharges = 1:NCharges
%Khoi tao thanh phan cua luc tac dung bang 0 (Fx, Fy) Fx = 0.0; Fy = 0.0;
%@Xet cac dien tich diem khac de tinh toan luc tuong tac tren moi dien tich for jCharges = 1:NCharges if( iCharges ~= jCharges ) % Neu dien tich i khong bang dien tich j %@ Tinh toan cac thanh phan cua vector khoang cach giua hai ien tich xij = x(iCharges ) - x(jCharges ); yij = y(iCharges) - y(jCharges ); Rij = sqrt(xij^2 + yij^2);
%@ Tinh cac thanh phan Fx, Fy cua luc tinh dien giua hai dien tich su dung dinh luat Coumlomb(Nguyen ly chong chat dien truong) Fx = Fx + Constant*q(iCharges)*q(jCharges)*xij/Rij^3; Fy = Fy + Constant*q(iCharges)*q(jCharges)*yij/Rij^3;
end end Fxnet(iCharges) = Fx; Fynet(iCharges) = Fy; %@ Dua ra tong cac luc tinh dien tren 1 dien tich do cac dien tich khac tac dung len fprintf('Luc tac dung len dien tich la: \n',iCharge);
%g N \n',Fx); %g N \n',Fy);
end
figure(gcf); plot(x,y,'bo');
%( to ra mt ca s hnh mi, v tr v x l ca n)
axis([xmin xmax ymin ymax]); % Xac dinh ti le x, y tren truc cua no for j = 1:NCharges text(x(j),y(j),sprintf(' %g',j)); % Viet dinh dang du lieu chuoi % MATLAB s ghi vic chuyn i quy nh , v s dng % e .
end %@ Xac dinh luc tac dung truc tiep vao vi tri cua cac dien tich diem hold on; quiver(x,y,Fxnet,Fynet,'r'); % Ve vector bieu dien luc tuong tac xlabel('x (m)'); ylabel('y (m)');
title(['Coulomb F: Luc tuong tac giua cac dien tich diem trong chan khong']);
hold off;
% Coulombforce Xac dinh luc tuong tac tinh dien giau cac dien tich diem trong chan khong % Nhap ten nhom: Username = input(' Ten nhom : ','s'); %@ Khoi tao bien, cac hang so vat ly NCharges = input('Nhap so luong dien tich diem: '); for iCharges=1:NCharges fprintf(' ----- \n Dien tich thu #%g \n',iCharges); r_in = input('Nhap toa do dien tich [x y]: '); x(iCharges) = r_in(1); % Toa do x cua dien tich y(iCharges) = r_in(2); % Toa do y cua dien tich
q(iCharges) = input('Nhap dien tich q cua dien tich diem: '); end %@ Tim xmin, xmax, ymin, and ymax xmin=min(x)-1; ymin=min(y)-1; xmax=max(x)+1; ymax=max(y)+1; Epsilon0 = 8.85e-12; % He so dien moi trong chan khong (C^2/(N m^2)) Constant = 1/(4*pi*Epsilon0); % Hang so Coulomb %@ Vong qua cac dien tich diem khac de tinh toan luc tuong tac tich nay fprintf(' Forces are: \n\n'); for iCharges = 1:NCharges %Khoi tao thanh phan cua luc tac dung bang 0 (Fx, Fy) Fx = 0.0; Fy = 0.0; %@Xet cac dien tich diem khac de tinh toan luc tuong tac tren moi dien tich for jCharges = 1:NCharges if( iCharges ~= jCharges ) % Neu dien tich i khong bang dien tich j %@ Tinh toan cac thanh phan cua vector khoang cach giua hai ?ien tich xij = x(iCharges ) - x(jCharges ); yij = y(iCharges) - y(jCharges ); Rij = sqrt(xij^2 + yij^2); %@ Tinh cac thanh phan Fx, Fy cua luc tinh dien giua hai dien tich su dung dinh luat Coumlomb(Nguyen ly chong chat dien truong) Fx = Fx + Constant*q(iCharges)*q(jCharges)*xij/Rij^3; Fy = Fy + Constant*q(iCharges)*q(jCharges)*yij/Rij^3; end end Fxnet(iCharges) = Fx; Fynet(iCharges) = Fy; %@ Dua ra tong cac luc tinh dien tren 1 dien tich do cac dien tich khac tac dung len fprintf('Luc tac dung len dien tich #%g la: \n' ,iCharges); fprintf(' x-Luc Fx: %g N \n',Fx); fprintf(' y-Luc Fy: %g N \n',Fy); end %@ Ve duong bieu dien(vector) vi tri cac dien tich figure(gcf); % tao ra 1 cua so moi va tra ve gia tri cua no plot(x,y,'bo'); axis([xmin xmax ymin ymax]); % Xac dinh ti le x, y tren truc cua no for j = 1:NCharges text(x(j),y(j),sprintf(' %g',j)); % Viet dinh dang du lieu chuoi % MATLAB se ghi de viec chuyen doi quy dinh va su dung % e . tren dien
end %@ Xac dinh luc tac dung truc tiep vao vi tri cua cac dien tich diem hold on; quiver(x,y,Fxnet,Fynet,'r'); % Ve vector bieu dien luc tuong tac xlabel('x (m)'); ylabel('y (m)'); title(['Coulomb F: Luc tuong tac giua cac dien tich diem trong chan khong']);
hold off;
% Xac dinh luc tuong tac tinh dien giua cac dien tich diem trong chan khong % Nhap ten nhom: Tenhom= input(' Ten nhom : ','s'); %@ Khoi tao bien, cac hang so vat ly N= input('Nhap so luong dien tich diem: '); for i=1:N fprintf(' ----- \n Dien tich thu #%g \n',i); Tdo= input('Nhap toa do dien tich [x y]: '); x(i) = Tdo(1); % Toa do x cua dien tich y(i) = Tdo(2); % Toa do y cua dien tich q(i) = input('Nhap dien tich q cua dien tich diem: '); end
%@ Tim xmin, xmax, ymin, and ymax xmin=min(x)-1; ymin=min(y)-1; xmax=max(x)+1; ymax=max(y)+1;
Epsilon0 = 8.85e-12; % He so dien moi trong chan khong (C^2/(N m^2)) k= 1/(4*pi*Epsilon0); k=9e+9; % Hang so Coulomb
%@ Vong qua cac dien tich diem khac de tinh toan luc tuong tac tren dien tich dang xet fprintf(' Luc tac dung: \n\n'); for i = 1:N
%Khoi tao thanh phan cua luc tac dung bang 0 (Fx, Fy) Fx = 0.0; Fy = 0.0;
%@Xet luc tuong tac giua cac dien tich diem khac tren dien tich dang xet for j = 1:N if( i ~= j ) % Neu dien tich i khong bang dien tich j %@ Tinh toan cac thanh phan cua vector khoang cach giua hai dien tich xij = x(i ) - x(j ); yij = y(i) - y(j ); Rij = sqrt(xij^2 + yij^2);
%@ Tinh cac thanh phan Fx, Fy cua luc tinh dien giua hai dien tich su dung dinh luat Coumlomb (Nguyen ly chong chat dien truong) Fx = Fx + Constant*q(i)*q(j)*xij/Rij^3; Fy = Fy + Constant*q(i)*q(j)*yij/Rij^3;
end end Fxnet(i) = Fx; Fynet(i) = Fy; %@ Dua ra tong cac luc tinh dien tren 1 dien tich do cac dien tich khac tac dung len
fprintf('Luc tac dung len dien tich #%g la: \n' ,i); fprintf(' x-Luc Fx: %g N \n',Fx); fprintf(' y-Luc Fy: %g N \n',Fy);
end
figure(gcf); plot(x,y,'bo');
axis([xmin xmax ymin ymax]); % Xac dinh ti le x, y tren truc cua no for j = 1:N text(x(j),y(j),sprintf(' %g', j)); % Viet dinh dang du lieu chuoi (danh dau toa do) % MATLAB se ghi de viec chuyen doi quy dinh va su dung % e .
end %@ Xac dinh luc tac dung truc tiep vao vi tri cua cac dien tich diem hold on; quiver(x,y,Fxnet,Fynet,'r'); % Ve vector bieu dien luc tuong tac xlabel('x (m)'); ylabel('y (m)'); title([' Luc tuong tac giua cac dien tich diem trong chan khong']);
% Xac dinh luc tuong tac tinh dien giua cac dien tich diem trong chan khong % Nhap ten nhom:
Tenhom= input(' Ten nhom : ','s'); %@ Khoi tao bien, cac hang so vat ly N= input('Nhap so luong dien tich diem: '); for i=1:N fprintf(' ----- \n Dien tich thu #%g \n',i); Tdo= input('Nhap toa do dien tich [x y]: '); x(i) = Tdo(1); % Toa do x cua dien tich y(i) = Tdo(2); % Toa do y cua dien tich q(i) = input('Nhap dien tich q cua dien tich diem: '); end
%@ Tim xmin, xmax, ymin, and ymax xmin=min(x)-1; ymin=min(y)-1; xmax=max(x)+1; ymax=max(y)+1;
Epsilon0 = 8.85e-12; % He so dien moi trong chan khong (C^2/(N m^2)) k= 1/(4*pi*Epsilon0); k=9e+9; % Hang so Coulomb
%@ Vong qua cac dien tich diem khac de tinh toan luc tuong tac tren dien tich dang xet fprintf(' Luc tac dung: \n\n'); for i = 1:N
%Khoi tao thanh phan cua luc tac dung bang 0 (Fx, Fy) Fx = 0.0; Fy = 0.0;
%@Xet luc tuong tac giua cac dien tich diem khac tren dien tich dang xet
for j = 1:N if( i ~= j ) % Neu dien tich i khong bang dien tich j %@ Tinh toan cac thanh phan cua vector khoang cach giua hai dien tich xij = x(i ) - x(j ); yij = y(i) - y(j ); Rij = sqrt(xij^2 + yij^2);
%@ Tinh cac thanh phan Fx, Fy cua luc tinh dien giua hai dien tich su dung dinh luat Coumlomb (Nguyen ly chong chat dien truong) Fx = Fx + Constant*q(i)*q(j)*xij/Rij^3; Fy = Fy + Constant*q(i)*q(j)*yij/Rij^3;
end end Fxnet(i) = Fx; Fynet(i) = Fy; %@ Dua ra tong cac luc tinh dien tren 1 dien tich do cac dien tich khac tac dung len fprintf('Luc tac dung len dien tich #%g la: \n' ,i); fprintf(' x-Luc Fx: %g N \n',Fx); fprintf(' y-Luc Fy: %g N \n',Fy);
end
figure(gcf); plot(x,y,'bo');
axis([xmin xmax ymin ymax]); % Xac dinh ti le x, y tren truc cua no for j = 1:N
text(x(j),y(j),sprintf(' %g', j)); % Viet dinh dang du lieu chuoi (danh dau toa do) % MATLAB se ghi de viec chuyen doi quy dinh va su dung % e .
end %@ Xac dinh luc tac dung truc tiep vao vi tri cua cac dien tich diem hold on; quiver(x,y,Fxnet,Fynet,'r'); % Ve vector bieu dien luc tuong tac xlabel('x (m)'); ylabel('y (m)'); title([' Luc tuong tac giua cac dien tich diem trong chan khong']);