Zadanie 1
//liczby losowe z przedziału (-10,10)
A=10+20*rand(5,5);
//liczby losowe z przedziału (100,200)
B=100+100*rand(5,5);
//liczby losowe z przedziału (0,1) zaokrąglone do drugiego miejsca po przecinku
C=0.01*round(100*rand(5,5));
Zadanie 2
Znajdz wspolczynnik wielomianu interpolujacego(dowolna metoda) przez podane punkty o wpolrzednych X=[0 0.7 1.6 2.3 4], Y=[1 2 3 4 5] Narysuj punkty i wielomian na wspolnym wykresie
function y=wielomian(j,t,tt)
n=length(t)
y=ones(tt)
for i=1:j-1
y=y.*(tt-t(i))/(t(j)-t(i))
end
for i=j+1:n
y=y.*(tt-t(i))/(t(j)-t(i))
end
endfunction
t=[0, 0.7, 1.6, 2.3, 4]
tt=[0:0.1:4]
y=[1 2 3 5 4]
n=length(t)
yy=zeros(tt)
for j=1:n
yy=yy+y(j)*wielomian(j,t,tt)
end
A=zeros(n,n)
for i=1:n
for j=0:n-2
A(i,j+2)=t(i)^(j+1)
A(i,1)=1
end
end
a=linsolve(A,-(y)')
disp("wspolczynnik")
disp(a)
plot2d(t,y,style=-4)
plot2d(tt,yy)
Zadanie 3
Wczytaj ze sformatowanego pliku tekstowego wyniki pomiarów zapisane w dwóch kolumnach. Znajdź przy użyciu znanych funkcji Scilaba współczynniki regresji dla wczytanego
// zestawu danych. Przedstaw na wykresie punkty pomiarowe, oraz prostą regresji.
// wczytanie danych
u = file('open','/pub/programy/regdane.txt','old')
A = read(u,-1,2);
file('close',u);
//obliczenie parametrów krzywej regresji
[a,b,sig]= reglin(A(:,1)',A(:,2)')
x = A(:,1); y = A(:,2)
yn=a*x+b
plot2d(x,yn, style = 5); plot2d(x,y, style =-2);
Zadanie 4
//TREŚĆ: Rozwiąż przy użyciu funkcji fsolve() układ równań x1^2+2x1+x2-5=0, 3x1^2+x1-x2-2=0
//zdefiniowanie funkcji opisującej układ równań jako Ax^2+Bx+C=[0;0] gdzie x=[x1;x2] jest wektorem kolumnowym
function [y]=fst(x)
a=[1,0;3,0];
b=[2,1;1,-1];
c=[-5;-2]
y=a*x^2+b*x+c
endfunction
[xres]=fsolve([0;0],fst)
Zadanie 5
Wczytaj ze sformatowanego pliku tekstowego macierz, zaprogramuj skrypt który obróci wytyczoną macierz względem:
// 1. jednej z przekątnych
// 2. srodkowego wiersza
// 3. srodkowej kolumny
//odbicie względem przekątnej
B=ones(5,5)
A=[1 2 3 4 5; 6 7 8 9 10; 10 11 12 13 14;15 16 17 18 19;20 21 22 23 24 ]
for i=1:5
for j=1:5
B(j,i)=A(i,j)
end
end
//odbicie wzgledem srodkowego wiersza
A=int(10*rand(10,10))
B=zeros(10,10)
[n,n]=size(A)
size(B)==size(A)
for i=1:n
for j=1:n
B(n+1-i,j)=A(i,j)
end
end
//odbicie wzglegem srodkowej kolumny
C=zeros(10,10)
[n,n]=size(A)
size(C)==size(A)
for i=1:n
for j=1:n
C(i,n+1-j)=A(i,j)
Zadanie 6
Wczytaj ze sformatowanego pliku tekstowego wyniki pomiarów zapisane w dwóch kolumnach. Znajdź przy użyciu znanych funkcji Scilaba współczynniki regresji dla wczytanego
// zestawu danych. Przedstaw na wykresie punkty pomiarowe, oraz prostą regresji.
// wczytanie danych
u = file('open','/pub/programy/regdane.txt','old')
A = read(u,-1,2);
file('close',u);
//obliczenie parametrów krzywej regresji
[a,b,sig]= reglin(A(:,1)',A(:,2)')
x = A(:,1); y = A(:,2)
yn=a*x+b
plot2d(x,yn, style = 5); plot2d(x,y, style =-2);
Zadanie 7
Rozwiąż przy użyciu funkcji fsolve() układ równań x1^2+2x1+x2-5=0, 3x1^2+x1-x2-2=0 zdefiniowanie funkcji opisującej układ równań jako Ax^2+Bx+C=[0;0] gdzie x=[x1;x2] jest wektorem kolumnowym
function [y]=fst(x)
a=[1,0;3,0];
b=[2,1;1,-1];
c=[-5;-2]
y=a*x^2+b*x+c
endfunction
[xres]=fsolve([0;0],fst)
Zadanie 8
liczby losowe z przedziału (-10,10)
A=10+20*rand(5,5);
//liczby losowe z przedziału (100,200)
B=100+100*rand(5,5);
//liczby losowe z przedziału (0,1) zaokrąglone do drugiego miejsca po przecinku
C=0.01*round(100*rand(5,5));
Zadanie 9
Zapisz polecenia ktore znajda najwieksza wartosc funkcji f(x,y)=x^2+xy-x na obszarze ograniczonym poprzez warunki: x>=0 y=2x+1, y+x<=3. Do obliczen uzyj wbudowanych funkcji SciLaba
Q=[1,1;0,0]
p=[0;-1]
C=[-2,1;1,1]
b=[1;3]
me=1
ci=[0;-100000]
cs=[100000;10000]
[wspolrzedne,f,wynik]=quapro(Q,p,C,b,ci,cs,me)
disp(wynik,"Wynik", wspolrzedne, "Max dla punktu:")
Zadanie 10
Znajdz wspolczynnik wielomianu interpolujacego(dowolna metoda) przez podane punkty o wpolrzednych X=[0 0.7 1.6 2.3 4], Y=[1 2 3 4 5] Narysuj punkty i wielomian na wspolnym wykresie
function y=wielomian(j,t,tt)
n=length(t)
y=ones(tt)
for i=1:j-1
y=y.*(tt-t(i))/(t(j)-t(i))
end
for i=j+1:n
y=y.*(tt-t(i))/(t(j)-t(i))
end
endfunction
t=[0, 0.7, 1.6, 2.3, 4]
tt=[0:0.1:4]
y=[1 2 3 5 4]
n=length(t)
yy=zeros(tt)
for j=1:n
yy=yy+y(j)*wielomian(j,t,tt)
end
A=zeros(n,n)
for i=1:n
for j=0:n-2
A(i,j+2)=t(i)^(j+1)
A(i,1)=1
end
end
a=linsolve(A,-(y)')
disp("wspolczynnik")
disp(a)
plot2d(t,y,style=-4)
plot2d(tt,yy)
Zadanie 11
Zapisz ponizej polecenia, ktore znajda
// przyblizone rozwiazanie nastepujacego ukladu rownan:
// 23 * x^2 + 4 * y^2 - 20 = 0
// 2 * x^2 + 3 * x - 2 * y = 0
// przyjmujac za pierwsze przyblizenie x = 0.7, y = 1.5
function [f] = f2(x)
if x = 0.7 then y = 1.5
//f2(x) = 0, with x = [x(1);x(2)]
//represents a system of 2 non-linear equations
f(1) = 23 * x^2 + 4 * y^2 - 20 = 0;
f(2) = 2 * x^2 + 3 * x - 2 * y = 0 ;
endfunction
Zadanie 12
oblicz przyblizona wartosc pierwiastka rownania x^2-x^(1/2)-2=0 z dolkadnoscia do epsiloneps=1e-8 w przedziale <1,2>
//bisekcja//
function y=fun1(x)
y=x^2-sqrt(x)-2
endfunction
a=1
b=2
eps=1e-8
x0=(a+b)/2
while abs(fun1(x0))>=eps
if fun1(a)*fun1(x0)<0
b=x0
else
a=x0
end
x0=(a+b)/2
end
disp(x0,'pierwiastek')
Zadanie 13
Znajdz wspolczynniki wielomianu interpolacyjnego (dowolna metoda) przez podane punkty o wspolrzednych X=[0 0.7 1.6 2.3 4] Y=[1 2 3 5 4] narysuj punkty i wielomian na wspulnym wykresie
[a,b]=regress(X,Y)
X=[ 0 0.7 1.6 2.3 4]
Y=[1 2 3 5 4]
y2=a*X+b
plot2d(X,y2)
plot2d(X,Y,style=-4)
Zadanie 14
Zapisz ponizej polecenia, ktore oblicza 100 kolejnych iteracji dla zadania w ktorym
(i+1) - przyblizenie dane jest wzorem:
x(i+1) = x(i) - 0.0001*x(i)^2
Nalezy przyjac rozwiazanie poczatkowe x(0) = 1. Rozwiazania w kolejnych iteracjach
zapisac w postaci wektora.
x0=1;
x(1)=x0-0.0001*(x0)^2;
for i=1:99
x(i+1)=x(i)-0.0001*(x(i))^2;
end
disp(x,length(x));
Zadanie 15
Znalezc minimalna wartosc wyrazenia f(x1,x2,x3,x4)=2*x1+3*x2-4*x3-3*x4+20
przy zadanych ograniczeniach x1+x2-x3<=2, x1+x3-x4<=3,
2*x1-4*x2+2*x3=4, x1,x2,x3,x4>-10. Podstaw pod zmienna "x_opt" punkt w
ktorym znajduje sie wartosc najmniejsza, pod
zmienna "w_opt" wartosc funkcji f(x1,x2,x3,x4)
p=[2;3;-4;-3];
C=[2 -4 2 0;1 1 -1 0;1 0 1 -1;1 1 1 1];
b=[4;2;3;-10];
ci=[1;1;1;1]*(-10);
cs=[1;1;1;1]*1000;
[x_opt q w_opt]=linpro(p,C,b,ci,cs);
Zadanie 16
Zapisz ponizej polecenia, ktore oblicza 100 kolejnych iteracji dla zadania w ktorym
// (i+1) - przyblizenie dane jest wzorem:
// x(i+1) = x(i) - 0.0001*x(i)²
// Nalezy przyjac rozwiazanie poczatkowe x(0) = 1
x0=1
x(1)=x0-0.0001*x0
for i=1:100
x(i+1)=x(i)-0.0001*x(i)^2
end
Zadanie 17
// Znalezc minimalna wartosc wyrazenia f(x1,x2,x3,x4)=2*x1+3*x2-4*x3-3*x4+20
// przy zadanych ograniczeniach
// x1+x2-x3<=2,
// x1+x3-x4<=3,
// 2*x1-4*x2+2*x3=4,
// x1,x2,x3,x4>-10.
// Podstaw pod zmienna "x_opt" punkt w
// ktorym znajduje sie wartosc najmniejsza, pod
// zmienna "w_opt" wartosc funkcji f(x1,x2,x3,x4)
c=[2;3;4;3]
C=[1,-4,2,0;1,1,-1,0;1,0,1,-1;1,1,1,1]
d=[4;2;3;-10]
ci=[-10;-10;-10;-10]
cs=[1e10;1e10;1e10;1e10]
[x_opt,f,w_opt]=linpro(c,C,d,ci,cs)
Zadanie 18
Zapisz ponizej polecenia, ktore oblicza 25 kolejnych iteracji dla zadania w ktorym
(i+1) - przyblizenie dane jest wzorem:
x(i+1) = x(i) + 0.0001*x(i)
Nalezy przyjac rozwiazanie poczatkowe x(0) = 1
x0=1
x(1)=x0+0.0001*x0
for i=1:25
x(i+1)=x(i)+0.0001*x(i)
end
Zadanie 19
Zapisz ponizej polecenia, ktore oblicza 100 kolejnych iteracji dla zadania w ktorym
(i+1) - przyblizenie dane jest wzorem:
x(i+1) = x(i) - 0.0001*x(i)²
Nalezy przyjac rozwiazanie poczatkowe x(0) = 1
x0=1
x(1)=x0-0.0001*x0
for i=1:100
x(i+1)=x(i)-0.0001*x(i)^2
end
function [pierw]=f(x)
pierw=x^4-4*x+2;
endfunction
a=1;
b=2;
function [x]=half(a,b,f)
//interval halving routine
N = 100; eps = 1.e-8; // define max. no. iterations
and error
if (f(a)*f(b) > 0) then
error('no root possible f(a)*f(b) > 0')
abort;
end;
if(abs(f(a)) < eps) then
error('solution at a')
abort;
end;
if(abs(f(b)) < eps) then
error('solution at b')
abort;
end;
while (N > 0)
c = (a+b)/2;
if(abs(f(c)) < eps) then
x = c;
x
return;
end;
if(f(a)*f(c) < 0)then
b = c;
else
a = c;
end;
N = N - 1;
end;
error('No convergence')
abort;
endfunction
disp(pierw)
20A
function dupa=f(x)
dupa=x^2-sqrt(x)-2
endfunction
a=1
b=2
eps=1.e-8
while abs(f(x0))>=eps
x0=(a+b)/2
if f(a)*f(x0)<0
b=x0
else
a=x0
end
end
disp(x0,'pierwiastek')