Chủ đề đầu tiên về matlab mình code.
Mong được các bạn giúp đỡ để code được hoàn thiện hơn.
Các bạn nào muốn tiếp tục xem code thì bấm vào bài viết.
File gốc đây nhé =>> Min_Max
syms x i y(x) f(x) Cuctri(i) g p q p1 q1 lg
f(x)=input('f(x)=') ;
a=input('Chan duoi a=');
b=input('Chan tren b=');
if a>=b
disp('Vui long nhap b>a')
end
assume (a<x<b);
eqn=f(x);
lg = input('Neu la ham luong giac nhap 1 (Neu khong phai nhan enter):');
if lg==1
N=input('So khoang chia nho tu a den b: ');
n=input('So chu so lam tron sau dau phay: ');
chianho=linspace(a,b,N) ;
A=[];
for i = 1:length(chianho)-1
A1=[];
try
A1=vpasolve(diff(eqn,x)==0,[chianho(1,i) chianho(1,i+1)]);
end
for i=1:length(A1)
t= A1(i,1);
format long g
t=round(t*10^(n))/10^(n);
A=[A t];
end
end
if size(feval(symengine,'discont',eqn,x))~=[0,0];
K=feval(symengine,'discont',eqn,x);
[m2,n2]=size(K);
B=unique(A(imag(A)==0));
[m,n]=size(B);
y(x)=diff(f(x),x);
for i=1:m;
g(i)=1;
while y(B(i,1))==0;
y(x)=diff(f(x),x,g(i));
y(x)=y(B(i,1));
g(i)=g(i)+1;
end
y(x)=diff(f(x),x);
end
C=[];
for i=1:m
if mod(g(i),2)==1
C =[C B(i,1)];
end
end
[m1,n1]=size(C);
D=[a b C];
E=[f(a) f(b)];
for i=1:n1
E=[E f(C(1,i))];
end
[M,I]=max(E);
[m,k]=min(E) ;
for i=1:n2
p(i)=0;
q(i)=0;
if limit(f(x),x, K(1,i), 'left')==Inf;
p(i)=1;
end
if limit(f(x),x, K(1,i), 'left')==-Inf;
q(i)=1;
end
if and(p(i)==0,q(i)==0)
E=[E limit(f(x),x, K(1,i), 'left')];
end
end
for i=1:n2;
p1(i)=0;
q1(i)=0;
if limit(f(x),x, K(1,i), 'right')==Inf;
p1(i)=1;
end
if limit(f(x),x, K(1,i), 'right')==-Inf;
q1(i)=1;
end
if and(p1(i)==0,q1(i)==0)
E=[E limit(f(x),x, K(1,i), 'right')];
end
end
if length(p1)~=0;
for i=1:length(p1);
if p1(1,i)==1;
disp('Khi x tien dan ben phai gia tri')
disp (K(1,i))
disp('=> f(x) tien toi vo cung')
end
end
for i=1:length(q1);
if q1(1,i)==1;
disp('Khi x tien dan den ben phai gia tri')
disp (K(1,i))
disp('=> f(x) tien toi am vo cung')
end
end
end
if length(p)~=0
for i=1:length(p)
if p(1,i)==1;
disp('Khi x tien dan den ben trai gia tri')
disp (K(1,i))
disp('=> f(x) tien toi vo cung')
end
end
for i=1:length(q);
if q(1,i)==1
disp('Khi x tien dan den ben trai gia tri')
disp (K(1,i))
disp('=> f(x) tien toi am vo cung')
end
end
end
if size(C)== [0,0];
disp('Ham khong co cuc tri')
else
disp('Cac cuc tri cua ham so trong khoang tu a den b la: ')
for i=1:n1
disp([vpa(C(1,i)) vpa(f(C(1,i))) ]);
end
end
if or(max(p)==1,max(p1)==1);
disp('GTLN cua ham so la vo cung')
else
disp('GTLN cua ham so la:')
MAX=max(E);
end
if or(max(q)==1,max(q1)==1)
disp('GTNN cua ham so la am vo cung')
else
disp('GTNN cua ham so la:')
MIN=min(E);
end
else
B=unique(A(imag(A)==0));
[m,n]=size(B);
y(x)=diff(f(x),x);
for i=1:n
g(i)=1;
while y(B(1,i))==0
y(x)=diff(f(x),x,g(i));
y(x)=y(B(1,i));
g(i)=g(i)+1;
end
y(x)=diff(f(x),x);
end
C=[];
for i=1:n
if mod(g(i),2)==1
C =[C B(1,i)];
end
end
[m1,n1]=size(C);
D=[a b C];
E=[f(a) f(b)];
for i=1:n1
E=[E f(C(1,i))];
end
[M,I]=max(E);
[m,k]=min(E);
if size(C)== [0,0]
disp('Ham khong co cuc tri')
disp('Gia tri lon nhat cua ham so la: ')
MAX=vpa(M)
disp('Dat duoc tai x= ')
disp(vpa(D(1,I)))
disp('Gia tri nho nhat cua ham so la: ')
MIN=vpa(m)
disp('Dat duoc tai x= ')
disp(vpa(D(1,k)))
else
disp('Cac cuc tri cua ham so trong khoang tu a den b la: ')
for i=1:n1
disp([vpa(C(1,i)) vpa(f(C(1,i))) ]);
end
disp('Gia tri lon nhat cua ham so la: ')
MAX=vpa(M)
disp('Dat duoc tai x= ')
disp(vpa(D(1,I)))
disp('Gia tri nho nhat cua ham so la: ')
MIN=vpa(m)
disp('Dat duoc tai x= ')
disp(vpa(D(1,k)))
end
end
else
if size(feval(symengine,'discont',eqn,x))~=[0,0]
K=feval(symengine,'discont',eqn,x);
[m2,n2]=size(K);
A=solve(diff(eqn,x) == 0);
B=unique(A(imag(A)==0));
[m,n]=size(B);
y(x)=diff(f(x),x);
for i=1:m
g(i)=1;
while y(B(i,1))==0
y(x)=diff(f(x),x,g(i));
y(x)=y(B(i,1));
g(i)=g(i)+1;
end
y(x)=diff(f(x),x);
end
C=[];
for i=1:m
if mod(g(i),2)==1
C =[C B(i,1)];
end
end
[m1,n1]=size(C);
D=[a b C];
E=[f(a) f(b)];
for i=1:n1
E=[E f(C(1,i))];
end
[M,I]=max(E);
[m,k]=min(E) ;
for i=1:n2
p(i)=0;
q(i)=0;
if limit(f(x),x, K(1,i), 'left')==Inf
p(i)=1;
end
if limit(f(x),x, K(1,i), 'left')==-Inf
q(i)=1;
end
if and(p(i)==0,q(i)==0)
E=[E limit(f(x),x, K(1,i), 'left')];
end
end
for i=1:n2
p1(i)=0;
q1(i)=0;
if limit(f(x),x, K(1,i), 'right')==Inf
p1(i)=1;
end
if limit(f(x),x, K(1,i), 'right')==-Inf
q1(i)=1;
end
if and(p1(i)==0,q1(i)==0)
E=[E limit(f(x),x, K(1,i), 'right')]
end
end
if length(p1)~=0
for i=1:length(p1)
if p1(1,i)==1
disp('Khi x tien dan ben phai gia tri')
disp (K(1,i))
disp('=> f(x) tien toi vo cung')
end
end
for i=1:length(q1)
if q1(1,i)==1
disp('Khi x tien dan den ben phai gia tri')
disp (K(1,i))
disp('=> f(x) tien toi am vo cung')
end
end
end
if length(p)~=0
for i=1:length(p)
if p(1,i)==1
disp('Khi x tien dan den ben trai gia tri')
disp (K(1,i))
disp('=> f(x) tien toi vo cung')
end
end
for i=1:length(q)
if q(1,i)==1
disp('Khi x tien dan den ben trai gia tri')
disp (K(1,i))
disp('=> f(x) tien toi am vo cung')
end
end
end
if size(C)== [0,0]
disp('Ham khong co cuc tri')
else
disp('Cac cuc tri cua ham so trong khoang tu a den b la: ')
for i=1:n1
disp([C(1,i) f(C(1,i)) ])
end
end
if or(max(p)==1,max(p1)==1)
disp('GTLN cua ham so la vo cung')
else
disp('GTLN cua ham so la:')
MAX=max(E)
end
if or(max(q)==1,max(q1)==1)
disp('GTNN cua ham so la am vo cung')
else
disp('GTNN cua ham so la:')
MIN=min(E)
end
else
if diff(eqn,x)==0
disp('Ham hang nen khong co cuc tri')
else
if diff(eqn,x,2)==0
E=[f(a) f(b)]
disp('f(x) la ham tuyen tinh nen khong co cuc tri')
disp('Gia tri nho nhat cua ham so la')
MIN=min(E)
disp('Gia tri lon nhat cua ham so la')
MAX=max(E)
else
A=solve(diff(eqn,x) == 0);
B=unique(A(imag(A)==0));
[m,n]=size(B);
y(x)=diff(f(x),x);
for i=1:m
g(i)=1;
while y(B(i,1))==0
y(x)=diff(f(x),x,g(i));
y(x)=y(B(i,1));
g(i)=g(i)+1;
end
y(x)=diff(f(x),x);
end
C=[];
for i=1:m
if mod(g(i),2)==1
C =[C B(i,1)];
end
end
[m1,n1]=size(C);
D=[a b C];
E=[f(a) f(b)];
for i=1:n1
E=[E f(C(1,i))];
end
[M,I]=max(E);
[m,k]=min(E);
if size(C)== [0,0]
disp('Ham khong co cuc tri')
disp('Gia tri lon nhat cua ham so la: ')
MAX=M
disp('Dat duoc tai x= ')
disp(D(1,I))
disp('Gia tri nho nhat cua ham so la: ')
MIN=m
disp('Dat duoc tai x= ')
disp(D(1,k))
else
disp('Cac cuc tri cua ham so trong khoang tu a den b la: ')
for i=1:n1
disp([C(1,i) f(C(1,i)) ])
end
disp('Gia tri lon nhat cua ham so la: ')
MAX=M
disp('Dat duoc tai x= ')
disp(D(1,I))
disp('Gia tri nho nhat cua ham so la: ')
MIN=m
disp('Dat duoc tai x= ')
disp(D(1,k))
end
end
end
end
end
Không có nhận xét nào:
Đăng nhận xét