Thông báo

Collapse
No announcement yet.

mình cân giúp giải thích đoạn code sau

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • mình cân giúp giải thích đoạn code sau

    đề là cho hàm f(x) xác định từ phương trình tham số x=x(t);y=y(t) được nhập từ bàn phím. tìm tiệm cận và vẽ hình minh họa
    function tcdt
    syms t
    X=input('nhap ham so x=');
    Y=input('nhap ham so y=');
    [~,m1]=numden(X); %m1 la mau cua X
    if isreal(m1) %neu m1 la so thuc
    m1=[]; %thi nghiem cua mau X =[]
    else
    m1=solve(m1);% neu khong thi giai pt mau, va gan nghiem la m1
    end
    [~,m2]=numden(Y);%tach mau cua Y
    if isreal(m2)
    m2=[];
    else
    m2=solve(m2);
    end
    tn=[m1;m2]; %gan tn la tap nghiem cua 2 mau.
    tn=unique(tn); % loai bo nghiem trung nhau
    tn=double(tn); %chieu sang kieu double
    [m,~]=size(tn); %m la so nghiem trong tn
    tcdung=1; %bo dem tiem can ngang
    tcngang=1; %bo dem tiem can dung
    tcxien=1; %bo dem tiem can xien
    x=[];y=[];a=[];b=[]; %x: tiem can dung, y:tiem can ngang, a,b: la he so tuong ung cua tc xien y=ax+b
    if ~isempty(tn) %neu tn khac rong
    for i=1:m %vong lap di tung nghiem
    if abs(imag(tn(i)))<0.000000000000001 %neu nghiem la so thuc
    ghXr=limit(X,t,tn(i),'right');ghXr=double(ghXr); %gioi han ben phai cua x khi t-->tn va chuyen sang kieu double
    ghYr=limit(Y,t,tn(i),'right');ghYr=double(ghYr); %gioi han ben phai cua y khi...
    ghXl=limit(X,t,tn(i),'left');ghXl=double(ghXl); %gioi han ben trai
    ghYl=limit(Y,t,tn(i),'left');ghYl=double(ghYl);
    [x,y,a,b,tcdung,tcngang,tcxien]=tc(ghXr,ghYr,Y,X,x,y,a,b,tcdung,tcngang,tcxien,tn (i),'right'); %tim cac tiem can khi t-->tn+
    [x,y,a,b,tcdung,tcngang,tcxien]=tc(ghXl,ghYl,Y,X,x,y,a,b,tcdung,tcngang,tcxien,tn (i),'left'); %tim cac tiem can khi t-->tn-
    end
    end
    end
    ghXr=limit(X,inf);ghXr=double(ghXr); %gioi han ben phai cua x khi t-->inf va chuyen sang kieu double
    ghYr=limit(Y,inf);ghYr=double(ghYr);
    ghXl=limit(X,-inf);ghXl=double(ghXl);
    ghYl=limit(Y,-inf);ghYl=double(ghYl);
    [x,y,a,b,tcdung,tcngang,tcxien]=tc(ghXr,ghYr,Y,X,x,y,a,b,tcdung,tcngang,tcxien,in f,'');
    [x,y,a,b,tcdung,tcngang,tcxien]=tc(ghXl,ghYl,Y,X,x,y,a,b,tcdung,tcngang,tcxien,-inf,'');
    set(ezplot(X,Y,[-20,20,-20,20]),'Color','red','LineWidth',2)
    hold on
    if tcdung==1
    disp('ham so khong co tiem can dung'),disp(' ')
    else
    disp ('ham so co cac tiem can dung la:')
    x=unique(x); %loai bo cac tiem can dung trung nhau
    [k,~]=size(x);
    for i=1:k %xuat ra cac tiem can dung
    text=[' x= ' num2str(x(i,1))];
    disp(text)
    text=['x-(' num2str(x(i,1)) ')+0*y'];
    set(ezplot(text,[-50,50,-50,50]),'Color','blue','LineWidth',1) %ve tiem can dung
    end
    end
    if tcngang==1
    disp('ham so khong co tiem can ngang'),disp(' ')
    else
    disp('ham so co cac tiem can ngang la:')
    y=unique(y); %loai bo cac tiem can ngang trung nhau
    [p,~]=size(y);
    for i=1: p %xuat ra cac tiem can ngang
    text=[' y= ' num2str(y(i,1))];
    disp(text)
    set(ezplot(num2str(y(i,1)),[-50,50,-50,50]),'Color','blue','LineWidth',1) %ve tiem can ngang
    end
    end
    syms x y
    if tcxien==1
    disp('ham so khong co tiem can xien')
    else
    disp('ham so co cac tiem can xien la:')
    xien=a(1:tcxien-1,1)*x+b(1:tcxien-1,1); %gon a va b ( a*x+b)
    xien=unique(xien); %loai bo cac tiem can ngang trung nhau
    [q,~]=size(xien);
    for i=1:q %xuat ra cac tiem can xien
    text=['y= ' char(xien(i,1))];
    disp(text)
    set(ezplot(text,[-50,50,-50,50]),'Color','blue','LineWidth',1);%ve tiem can xien
    end
    end
    axis([-20 20 -20 20])
    box off
    grid on %tao luoi
    text=['do thi va cac tiem can cua ham: x= ' char(X) ' va y= ' char(Y)]; %ghi tieu de
    title(text)
    hold off %ngung ve
    end
    %ham tim tiem can
    function [x,y,a,b,tcdung,tcngang,tcxien]=tc(ghX,ghY,Y,X,x,y,a,b,tcdung,tcngang,tcxien,d,st r)
    syms t
    if ~isinf(ghX) && isinf(ghY) && ~isnan(ghX) %neu ghx la so thuc va ghy la vo cung
    x(tcdung,1)=ghX; %thi ta co tiem can dung
    tcdung=tcdung+1;%tang chi so dem tiem can dung len 1
    end
    if isinf(ghX) && ~isinf(ghY) && ~isnan(ghY)%neu ghy la so thuc va ghx la vo cung
    y(tcngang,1)=ghY; %thi ta co tiem can ngang
    tcngang=tcngang+1;%tang chi so dem tiem can ngang len 1
    end
    if isinf(ghX) && isinf(ghY) %neu ghx va ghy deu tien toi vo cung
    a(tcxien,1)=limit(Y/X,t,d,str); %tim he so a
    if a(tcxien,1)==0 || isinf(a(tcxien,1)) || isnan(a(tcxien,1)) %neu a khong la so thuc hoac =0
    a(tcxien,: )=[]; %loai di a va thoai
    else
    b(tcxien,1)=limit((Y-a(tcxien,1)*X),t,d,str); %tim he so b
    if isinf(b(tcxien,1)) || isnan(b(tcxien,1)) %neu a khong la so thuc
    a(tcxien, : )=[];%loai di a
    b(tcxien, : )=[];%loai di b va thoai
    else
    tcxien=tcxien+1;%tang chi so dem tiem can xien len 1
    end
    end
    end
    end


    Xin hỏi một vài chỗ sau:
    1/ [~,m1]=numden(X) lệnh này là m1 là mẫu của X vậy dấu ~ có nghĩa là gì có phải là ko lấy tử ko.và trong matlab ~ có tác dụng gì?
    2/ if isreal
    m1=[]; ngoặc vuông trống nghĩa là gì?
    3/tn=double(tn) chuyển sang kiểu double là sao? kiểu double là gì ?
    4/if ~isempty tại sao lại có dấu ~ ở trước ko có dc ko ?
    5/if abs(imag(tn(i)))<0.000000000000001 hàm imag là gì tại sao lại bé hơn 0.000000001
    6/[x,y,a,b,tcdung,tcngang,tcxien]=tc(ghXr,ghYr,Y,X,x,y,a,b,tcdung,tcngang,tcxien,tn (i),'right') giải thích chi tiết dòng này giùm dấu ngoặc vuông ở đầu có nghĩa là gì ?
    7/[m,~]=size(tn) giải thích dấu ~
    8/text=[' x= ' num2str(x(i,1))] númtr(x(i,1) có nghĩa là sao ạ?
    9/xiền=ạ(1:tcxien-1,1)*x+b(1:tcxien-1,1) cái 1:tcxien-1,1)c có nghĩa là gì?
    10/text=['y= ' char(xien(i,1))] char là hàm gì?
    11/x(tcdung,1)=ghX ý nghĩa của (tcdung,1) la gì?
    12/ a(tcxien,: )=[] sau lại dùng dấu : ?
    13/function [x,y,a,b,tcdung,tcngang,tcxien]=tc(ghX,ghY,Y,X,x,y,a,b,tcdung,tcngang,tcxien,d,st r) sao lại có thêm d,str? nó có nghĩa là gì?
    Last edited by manutd123; 30-12-2014, 08:25.

Về tác giả

Collapse

manutd123 Tìm hiểu thêm về manutd123

Bài viết mới nhất

Collapse

Đang tải...
X