syl242
Administrator
Dołączył: 30 Lis 2006
Posty: 53
Przeczytał: 0 tematów
Ostrzeżeń: 0/3 Skąd: Koszalin
|
Wysłany: Wto 23:42, 04 Wrz 2007 Temat postu: AiSD |
|
|
sieczne
clc;
clear all;
e=input('podaj dokladnosc:')
x1=1;
x2=2;
i=3;
disp(['x1:',num2str(x1)]);
disp(['x2:',num2str(x2)]);
x=linspace(1,2,100);
y=(funkcja1(x));
while abs(funkcja1(x2))>e
x3=x2-(funkcja1(x2))*(x2-x1)/(funkcja1(x2)-funkcja1(x1));
disp(['x',num2str(i),':',num2str(x3),]);
x1=x2;
x2=x3;
i=i+1;
end
plot(x,y)
funkcja1.m
function [wynik]=funkcja1(x)
wynik=x/2-sin(x+2);
styczne
clc;
clear all;
e=input('podaj dokladnosc:');
x1=1;
x2=1.5;
x=linspace(1,2,100);
y=funkcja1(x);
i=3;
x2=x1
while abs(funkcja1(x2))>e,
x3=x2-(funkcja1(x2))/(poch1(x2));
disp(['x',num2str(i),':',num2str(x3),]);
x2=x3;
i=i+1;
end
plot(x,y);
funkcja1.m
function [wynik]=funkcja1(x)
wynik=x/2-sin(x+2);
poch1.m
function [wynik]=poch1(x)
wynik=1/2-cos(x+2);
bisekcja
clc;
clear all;
e=input('podaj dokladnosc');
x1=-2;
x2=1;
x0=(x1+x2)/2;
disp(['x0:',num2str(x1)]);
x=linspace(x1,x2,100);
y=funkcja3(x);
i=1;
while abs(funkcja3(x0))>e,
if (funkcja3(x0)<0) && (funkcja3(x1)>0) || (funkcja3(x0)>0) && (funkcja3(x1)<0),
x2=x0;
x0=(x1+x2)/2;
end
if (funkcja3(x0)<0) && (funkcja3(x2)>0) || (funkcja3(x0)>0) && (funkcja3(x2)<0),
x1=x0;
x0=(x1+x2)/2;
end
disp(['x',num2str(i),':',num2str(x0),]);
i=i+1;
end
plot(x,y);
fukcja3.m
function[wynik]=funkcja3(x)
wynik=(x.^2)+(x.^3)-1;
Pierwiastkowanie z paramertem
clc
format long
n=input('Podaj stopien pierwiastka: ')
a=input('Podaj liczbe pierwiastkowana: ')
%kroki=input('Podaj ilosc krokow:')
Err=input('Podaj dokladnosc obliczen: ')
X=0;
Y=0;
x0=a;
Y(1)=0;
j=2;
disp(['x0=',num2str(x0)]);
while (abs(Y(j-1)-x0))>Err
Y(j)=x0;
X(j)=j-2;
x0=(1/n)*((n-1)*x0+(a/(x0^(n-1))));
disp(['x',num2str(j),'=',num2str(x0,15)]);
j=j+1;
end
plot(X,Y)
E do potegi x
clc
wynik=0;
x=input('Podaj do jakiej potegi ma byc podniesione "e": ')
Y=0;
X=0;
for j=1:50
wynik=wynik+(x^j)/(silnia(j));
Y(j)=wynik;
X(j)=j;
end
disp(['e^x = ',num2str(wynik)])
plot(X,Y)
Sinus x
clc
x=input('Podaj kat jakiego ma byc obliczony sin: ')
Err=input('Podaj parametr Err: ')
while x >= abs(2*pi)
x=x-(2*pi);
end
wynik=0;
wynik0=1;
j=0;
wynik=0;
while abs(wynik0-wynik)>Err
wynik0=wynik;
wynik=wynik+((-1)^j)*(x^(2*j+1))/(silnia(2*j+1));
j=j+1;
end
disp(['sinus ',num2str(x),'=',num2str(wynik,15)])
Dec na bin
clc
dec=input('Podaj liczbe dziesietna: ')
a=0;
d=2;
wynik=0;
for i=1:8
a(i)=rem(dec,2);
dec=floor(dec/d);
end
disp('najmlodszy bit -- najstarszy bit')
disp(a)
Bin na dec
clc
i=10;
while i>=1
disp(['Podaj a-',num2str(i),': '])
a(i)=input('');
if a(i)<0 | a(i)>1
i=i+1
end
i=i-1;
end
disp('W odwrotnej kolejnosci to: ')
disp(a)
d=1;
wynik=0;
for i=1:10
wynik=wynik+a(i)*d;
d=d*2;
end
disp(['Wynik: ',num2str(wynik)])
Maciez odwrotna z parametrem
clc
n=input('Podaj liczbe zmiennych w rownaniu: ')
r=input('Podaj liczbe wyrazow wolnych: ')
rownania=zeros(r,n)
for i=1:r
disp(['Podaj rownanie ',num2str(i)])
rownania(i,=input('');
end
A=rownania(:,1n-1))
B=rownania(:,n)
x=A^(-1)*B
Metoda wyznacznikow z parametrem
clc
n=input('Podaj liczbe zmiennych w rownaniu: ')
r=input('Podaj liczbe wyrazow wolnych: ')
rownania=zeros(r,n)
for i=1:r
disp(['Podaj rownanie ',num2str(i)])
rownania(i,=input('');
end
%rownania=[0 1 2 3 8;
% 5 8 2 1 4;
% 1 8 6 3 7;
% 8 9 7 4 5]
A=rownania(:,1n-1))
B=rownania(:,n)
if det(A)==0
disp('Wyznacznik macerzy =0. Koniec obliczen.')
break
end
W=A;
WR=zeros(r,r)
for i=1:r
Wx=A;
Wx(:,i)=B;
x=(det(Wx))/(det(W));
disp(['niewiadoma x',num2str(i),'=',num2str(x)])
end
Metoda Gaussa
clc
n=input('Podaj liczbe zmiennych w rownaniu: ')
r=input('Podaj liczbe wyrazow wolnych: ')
rownania=zeros(r,n);
for i=1:r
disp(['Podaj rownanie ',num2str(i)])
rownania(i,=input('');
end
%rownania=[4 -2 4 -2 8;
% 3 1 4 2 7;
% 2 4 2 1 10;
% 2 -2 4 2 2]
a=rownania;
for m=1r-1)
for p=m+1:r
l=(a(p,m))/(a(m,m));
a(p,=a(p,-(a(m,)*l;
end
end
a=a
disp ('To byla macierz a')
c=a(:,1n-1))
B=a(:,n)
x=zeros(r,1);
x(r)=B(r)/a(r,r);
for i=(r-1)-1):1
sum=0;
for k=i:r
sum=sum+x(k)*a(i,k);
end
x(i)=(B(i)-sum)/(a(i,i));
end
for i=1:r
disp(['Zmienna x(',num2str(i),')= ',num2str(x(i))])
end
Metoda siecznych z parametrem
clc
Err=input('Podaj dokladnosc: ')
X=0;
Y=0;
j=1;
for i=(1):0.01:2
Y(j)=funkcja1(i);
X(j)=i;
j=j+1;
end
plot(X,Y)
x1=1;
x2=1.7;
if funkcja1(x1)<0
x3=x1;
x1=x2;
x2=x3;
end
while abs(x1-x2)>Err
x=x1-funkcja1(x1)*(x1-x2)/(funkcja1(x1)-funkcja1(x2));
if funkcja1(x)>0
x2=x1;
x1=x;
else
x1=x2;
x2=x;
end
end
disp(['Pierwiastek to: ',num2str(x,15)])
Metoda stycznych z parametrem
clc
Err=input('Podaj dokladnosc: ')
x1=-1;
x2=1.5;
X=0;
Y=0;
j=1;
for i=-1:0.1:1.5
Y(j)=funkcja2(i);
X(j)=i;
j=j+1;
end
plot (X,Y)
if funkcja2(x1) * poch2(x1)<0
x1=x2;
end
x3=x1;
while abs(funkcja2(x1))>Err
x=x1-(funkcja2(x1))/(poch1(x1))
x1=x;
end
disp(num2str(x1,15))
Metoda bisekcji
clc
x1=-2;
x2=1;
Err=input('Podaj dokladnosc: ')
if x1>x2
x3=x1;
x1=x2;
x2=x3;
end
while abs(funkcja3(x1)-funkcja3(x2))>Err
x=(x1+x2)/2
if funkcja3(x)*funkcja3(x1)>0
x1=x;
else
x2=x;
end
end
disp(['Pierwiastek to: ',num2str(x,15)])
clc;
clear all;
x1=-2;
x2=2;
A=linspace(x1,x2,100);
B=zeros(1,100);
for i=1:100
X=A(i);
B(i)=funkcja3(X);
end
grid;
plot(A,B);
blad=0.00025;
Funkcje
Silnia
function [wynik]=silnia(n)
wynik=1;
i=1;
for i=1:n;
wynik=wynik*i;
end;
Funkcja 1
function [wynik]=funkcja1(x)
wynik=(x^3)*(x+sin(x^2-1)-1)-1;
Funkcja 2
function [wynik]=funkcja2(x)
wynik=x/2-sin(x+2);
Pochodna 1
function [wynik]=poch1(x)
wynik=1/2-cos(x+2);
Pochodna 2
function [wynik]=poch2(x)
wynik=sin(x+2);
Funkcja 3
function [wynik]=funkcja3(x)
wynik=x^2+x^3-1;
Post został pochwalony 0 razy
|
|