You are on page 1of 10

CODE MATLAP PHƯƠNG PHÁP TÍNH

Câu 1: Newton
syms x
m = input('Nhap chu so hang chuc trong 2 chu so cuoi MSSV');
n = input('Nhap chu so hang don vi trong 2 chu so cuoi MSSV');
M=(m+2*n+13)/10;
f= 3^x+M*x^2+sin(x)-10;
a=1;
b=2;
if double(subs(f,x,a))*subs(diff(diff(f,x),x),x,a)>0;
X=a;
else
X=b;
end
if double(subs(diff(f,x),x,a))<double(subs(diff(f,x),x,b));
min=subs(diff(f,x),x,a);
else
min=subs(diff(f,x),x,b);
end
for i=1:2
X=X-subs(f,x,X)/subs(diff(f,x),x,X);
denta =ceil(abs(subs(f,x,X))*10^4/min)/10^4;
i=i+1;
end
x2=double(X),Saiso=double(denta),

Câu 2: Gauss
clc
m = input('Nhap chu so hang chuc trong 2 chu so cuoi MSSV');
n = input('Nhap chu so hang don vi trong 2 chu so cuoi MSSV');
M=(m+2*n+13)/10
a=[19*M 2.73 -1.85; 1.34 18.5*M -3.24; 1.18 -4.87 17*M];
b=[12.89 15.73 18.42];
x=[0.5 2.3 3.4];
i=0;A=x(1);B=x(2);C=x(3);
while i<3
X=(b(1)-a(1,2)*B-a(1,3)*C)/a(1,1);
Y=(b(2)-a(2,1)*A-a(2,3)*C)/a(2,2);
Z=(b(3)-a(3,1)*A-a(3,2)*B)/a(3,3);
i=i+1;
end
x1=A
x2=B
x3=C
- Jacobi
clc
m = input('Nhap chu so hang chuc trong 2 chu so cuoi MSSV');
n = input('Nhap chu so hang don vi trong 2 chu so cuoi MSSV');
M=(m+2*n+13)/10
a=[19*M 2.73 -1.85; 1.34 18.5*M -3.24; 1.18 -4.87 17*M];
b=[12.89 15.73 18.42];
x=[0.5 2.3 3.4];
i=0;A=x(1);B=x(2);C=x(3);
while i<3
X=(b(1)-a(1,2)*B-a(1,3)*C)/a(1,1);
Y=(b(2)-a(2,1)*A-a(2,3)*C)/a(2,2);
Z=(b(3)-a(3,1)*A-a(3,2)*B)/a(3,3);
A=X;B=Y;C=Z;
i=i+1;
end
x1=A
x2=B
x3=C

Câu 3: Spline ràng buộc


clc
a = input('Nhap chu so hang chuc trong 2 chu so cuoi MSSV');
b = input('Nhap chu so hang don vi trong 2 chu so cuoi MSSV');
M=(a+2*b+13)/10
X=[1.3 1.6 2.3];
Y=[1.1*M 4.3 6.6];
n=size(X,2);
g1=0.3;
gn=0.5;
for i=1:(n-1)
H(i)=X(i+1)-X(i);
end
A(1)=2*H(1);
A(n)=2*H(n-1);
for j=2:(n-1)
A(j)=2*(H(j-1)+H(j));
end
B(1)=3*(Y(2)-Y(1))/H(1)-3*g1;
B(n)=3*gn-3*(Y(n)-Y(n-1))/H(n-1);
for k=2:(n-1)
B(k)=3*(Y(k+1)-Y(k))/H(k)-3*(Y(k)-Y(k-1))/H(k-1);
end
D=diag(A,0);E=diag(H,-1);F=diag(H,1);
C=(inv(D+E+F))*(B');
for I=1:(n-1)
d(I)=(C(I+1)-C(I))/(3*H(I));
b(I)=((Y(I+1)-Y(I))/H(I))-(H(I)/3)*(2*C(I)+C(I+1));
end
t=1.4;
I=0;
for i=1:(n-1)
if t>=X(i)&& t< X(i+1)
I=Y(i)+b(i)*(t-X(i))+C(i)*(t-X(i))^2+d(i)*(t-X(i))^3;
end
end
fprintf('Xap xi gia tri cua ham tai t=1.4',t);
disp(I);
t=2.1;
I=0;
for i=1:(n-1)
if t>=X(i)&& t< X(i+1)
I=Y(i)+b(i)*(t-X(i))+C(i)*(t-X(i))^2+d(i)*(t-X(i))^3;
end
end
fprintf('Xap xi gia tri cua ham tai t=2.1',t);
disp(I);
-Spline tự nhiên:
clc
a = input('Nhap chu so hang chuc trong 2 chu so cuoi MSSV');
b = input('Nhap chu so hang don vi trong 2 chu so cuoi MSSV');
M=(a+2*b+13)/10
X=[1.3 1.6 2.3];
Y=[1.1*M 4.3 6.6];
n=size(X,2);H=[];b=[];d=[];
A=zeros(n);
B=zeros(n,1);
A(1,1)=1;A(n,n)=1;
for i=1:(n-1)
H(i)=X(i+1)-X(i);
end
for i=2:(n-1)
A(i,i)=2*(H(i-1)+H(i));
A(i,i+1)=H(i);
A(i,i-1)=H(i-1);
B(i,1)=(3*(Y(i+1)-Y(i))/H(i))-(3*(Y(i)-Y(i-1))/H(i-1));
end
C=(inv(A))*B;
for I=1:(n-1)
d(I)=(C(I+1)-C(I))/(3*H(I));
b(I)=((Y(I+1)-Y(I))/H(I))-(H(I)/3)*(2*C(I)+C(I+1));
end
t=1.4;
I=0;
for i=1:(n-1)
if t>=X(i)&& t< X(i+1)
I=Y(i)+b(i)*(t-X(i))+C(i)*(t-X(i))^2+d(i)*(t-X(i))^3;
end
end
fprintf('Xap xi gia tri cua ham tai t=1.4',t);
disp(I);
t=2.1;
I=0;
for i=1:(n-1)
if t>=X(i)&& t< X(i+1)
I=Y(i)+b(i)*(t-X(i))+C(i)*(t-X(i))^2+d(i)*(t-X(i))^3;
end
end
fprintf('Xap xi gia tri cua ham tai t=2.1',t);
disp(I);
Câu 4: Xấp xỉ nghiệm
clc
a = input('Nhap chu so hang chuc trong 2 chu so cuoi MSSV');
b = input('Nhap chu so hang don vi trong 2 chu so cuoi MSSV');
M=(a+2*b+13)/10
syms x
u=[0.7 1.0 1.2 1.3 1.6];
y=[3.3 M 4.5 1.1*M 6.1];
gx=sqrt(x);
hx=cos(x);
A=zeros(2);B= zeros(2,1);
for i=1:5
A(1,1)=A(1,1)+subs(gx.^2,u(i));
A(1,2)=A(1,2)+subs(hx.*gx,u(i));
A(2,2)=A(2,2)+subs(hx.^2,u(i));
B(1,1)=B(1,1)+y(i)*subs(gx,u(i));
B(2,1)=B(2,1)+y(i)*subs(hx,u(i));
end
A(2,1)=A(1,2);
C=inv(A)*B;
A=C(1),B=C(2),

Câu 5: Nội suy Newton


clc
a = input('Nhap chu so hang chuc trong 2 chu so cuoi MSSV');
b = input('Nhap chu so hang don vi trong 2 chu so cuoi MSSV');
M=(a+2*b+13)/10
syms x
p=[0.1 0.3 0.6 0.9];
q=[1.3*M 3.2 1.4*M 4.3];
x1=1;x2=1;x3=1;x4=1;
for i=1:(size(p,2)-1)
a(i)=(q(i+1)-q(i))/(p(i+1)-p(i));
x1=x1*(x-p(i));
end
for i=1:(size(a,2)-1)
b(i)=(a(i+1)-a(i))/(p(i+2)-p(i));
x2=x2*(x-p(i));
end
for i=1:(size(b,2)-1)
c(i)=(b(i+1)-b(i))/(p(i+3)-p(i));
x3=x3*(x-p(i));
end
A=subs(diff((q(1)+a(1)*x3+b(1)*x2+c(1)*x1),x),x,0.5);
disp('Gia tri dao ham cua x =0.5 la:');
disp(double(A));

Câu 6: Simpson hàm


clc
p = input('Nhap chu so hang chuc trong 2 chu so cuoi MSSV');
q = input('Nhap chu so hang don vi trong 2 chu so cuoi MSSV');
M=(p+2*q+13)/10
syms x
a=1.1;
b=2.3;
n=8;
h=(b-a)/n;
m=n/2;
f=log(sqrt(2*x+M));
y=subs(f,x,a)+subs(f,x,b)+4*subs(f,x,a+h);
for i=1:m-1
y=y+2*subs(f,x,a+h*2*i)+4*subs(f,x,a+(2*i+1)*h);
end
y=double(y*h/3);
I=y
disp('Tich phan I='),disp(I)
if double(subs(diff(f,4),x,a))>double(subs(diff(f,4),x,b));
max=subs(diff(f,4),x,a);
else
max=subs(diff(f,4),x,b);
end
SS=(((b-a)^5)*max)/(180*(n^4));
disp('Sai so Simpson la')
disp(SS)

Hình thang hàm.


syms x y
mn=input('Nhap 2 so cuoi MSSV:');
M=(mn+12)/10;
a=0;
b=1;
n=10;
h=(b-a)/n;
m=n/2;
f=1/(1+x);
y=(subs(f,x,a)+subs(f,x,b))/2;
for i=1:n-1;
y=y+subs(f,x,a+i*h);
end
y=double(y*h);
disp('Tich phan I la ');disp(y);

Hình thang bảng


syms x y ;
h = 0.2 ;
f = x*y*y + 4.4*x*x*x ;
X = [ 1.0 1.2 1.4 1.6 1.8 2.0 2.2 ] ;
Y = [ 4.0 3.3 2.4 4.3 10.2 6.2 7.4 ] ;
B = [ 1 2 2 2 2 2 1 ] ;
A = 0 ;
for i=1:7
m = X(1,i)
n = Y(1,i)
A = A + 0.1*B(1,i)*subs(subs(f,x,m),y,n)
i = i + 1
end
disp('Tich phan I la: ');disp(double(A));
Euler vi phân cấp 1
syms x
x=zeros(11,1);
y=zeros(11,1);
Y=zeros(11,1);
x(1)=0;
y(1)=.5;
a=0;
b=2;
N=10;
h=(b-a)/N;
for i=1:N
x(i+1)=x(i)+h;
y(i+1)=y(i)+(y(i)-x(i)^2+1)*h;
Y(i)=(x(i)+1).^2-0.5*exp(x(i));
end
disp(' x X Y');disp([x,y,Y])

cấp 2
syms t
t=zeros(5,1);
x=zeros(5,1);
y=zeros(5,1);
x(1)=1.2;
y(1)=1;
t(1)=1;
for i=1:5
t(i+1)=t(i)+0.2;
x(i+1)=x(i)+0.2*y(i);
y(i+1)=y(i)+0.2*(4.2*y(i)+2*(t(i)^2)*x(i)+2.6);
end
disp('x') ; disp(x)
Lặp đơn

syms x
f = (3*x+15)^(1/4);
a = 2;
b = 3;
X = input('Nhap X0: ');
n = input('Tinh nghiem X may? ' );
if (subs(diff(f,x),x,a))>(subs(diff(f,x),x,b))
q = (subs(diff(f,x),x,a));
else
q = (subs(diff(f,x),x,b));
end
Y = X ;
for i = 1:(n-1)
Y = (3*Y+15)^(1/4);
i = i+1;
end
for i = 1:n
X = (3*X+15)^(1/4);
i = i+1;
end
delta =((q*abs(X-Y))/(1-q));
delta = ceil(delta*10^4)/10^4;

A = [' Nghiem X',num2str(n) ' la ',num2str(X)];disp(A)


B = [' Sai so cua nghiem X',num2str(n) ' la ']
;disp(B);disp(double(delta))
Newton và sai số của nghiệm xi
syms x
mn = input('Nhap 2 so cuoi MSSV: ');
M = (mn+12)/10;
f = exp(x)+2*x^2+sin(x)/M-10;%ham cho san
a = 1;
b = 2;
n = input('Tinh x may? ');
if double(subs(f,x,a)*subs(diff(diff(f,x),x),x,a))>0
X = a;
else
X = b; %tinh nghiem x0
end
if double(subs(diff(f,x),x,a))<double(subs(diff(f,x),x,b));
min = subs(diff(f,x),x,a);
else
min = subs(diff(f,x),x,b);%tinh q
end
for i = 1:n
X = X - subs(f,x,X)/subs(diff(f,x),x,X);
Denta = ceil((abs(subs(f,x,X))*10^4)/min)/10^4;%lam tron len
i = i+1;
end

x = double(X), SaiSo = double(Denta),


RK4 ví dụ trong slide
syms x u y;
h = 0.2;
x1 = 0;
y1 = 0.5;
xi = 1.6;
f = y - x*x +1;
K1 = 0; K2 = 0; K3 = 0; K4 = 0;
u = [];u(1) = x1;
k = (xi-x1)/h;
for i=1:k
u(i+1)= u(i) + h;
end
y = []; y(1) = y1;
for i=1:round(k)
K1=h*subs(subs(f,u(i)),y(i));
K2=h*subs(subs(f,u(i)+h/2),y(i)+K1/2);
K3=h*subs(subs(f,u(i)+h/2),y(i)+K2/2);
K4=h*subs(subs(f,u(i)+h),y(i)+K3);
y(i+1)=y(i)+(K1+2*K2+2*K3+K4)/6;
end
n = round(k+1);
disp('Xap xi: '), y(n),

simpson bảng
syms x y ;
g = 3.2*x*y*y + 2.5*x*x; %co the nhap ham
A = 0;
h = 0.2; %h thay doi co the nhap bang ma tran
X = [1.0 1.2 1.4 1.6 1.8 2.0 2.2];
Y = [2.0 3.3 2.4 4.3 5.1 19.84 7.4];
B = [1.0 4.0 2.0 4.0 2.0 4.0 1.0];
for i=1:7
m = X(1,i);
n = Y(1,i);
A = A + (subs(subs(g,x,m),y,n))*B(1,i)*(0.2/3);
i=i+1;
end
disp('Tich phan A la');disp(double(A))
%dep trai lien =))

Simpson hàm

format short
syms x y;
a=0;
b=1;
n=10;
h=(b-a)/(2*n);
f=(1/(x+1));
m=n/2;
y=subs(f,x,a)+subs(f,x,b)+4*subs(f,x,a+h);
for i=1:2*m-1
y=y+2*subs(f,x,a+2*i*h)+4*subs(f,x,a+(2*i+1)*h);
end
y = double(y*h/3),
if double (subs(diff(f,x,4),x,a))> double(subs(diff(f,x,4),x,b));
Max=(subs(diff(f,x,4),x,a));
else
Max=(subs(diff(f,x,4),x,b));
end
disp('sai so:');
saiso = (Max*(b-a)^5)/(180*n^4)
saiso = (ceil(saiso*10^4)/10^4) %chua xuat ra so thap phan@@

SIMPSON VỚI BẢNG

>> x=1:0.2:2.2;

>> r=[2 3.3 2.4 4.3 5.1 19.84 7.4];

>> h=x(2)-x(1);

>> n=length(x);

>> st4=0;

>> st2=0;

>> for i=2:2:n

st4=st4+4*(3.2*x(i)*r(i)^2+2.5*x(i)^2);

end

>> for i=3:2:n-1;

st2=st2+2*(3.2*x(i)*r(i)^2+2.5*x(i)^2);

end

>> Ist=h/3*((3.2*x(1)*r(1)^2+2.5*x(1)^2)+st4+st2+(3.2*x(n)*r(n)^2+2.5*x(n)^2));

You might also like