http://www.geocities.com/iscem2003/romberg.htm
http://www.geocities.com/iscem2003/trapez.htm
http://www.geocities.com/iscem2003/simpson.htm
http://www.geocities.com/iscem2003/preost.htm
1. Poisci koeficiente linearne kombinacije funkcij. f(x) =VSOTA(i=1 do 3) ai*fi (x)
kjer je
f1(x) = x, f2(x) = sin(x), f3(x) = cos(x)
da bo graf funkcije f(x) potekal skozi tocke:
x=[3.000;4.000;5.000];
y=[3.907;5.463;7.027];
Koliko je vsota VSOTA (i=1 do 3) ai
x=[3.000;4.000;5.000];
y=[3.907;5.463;7.027];
f='[x,sin(x),cos(x)]'
A=eval(vectorize(f))
a=A\y
sum(a)
2. Poisci parametra a1 in a2 tako, da bo funkcija f(x, a) = a1/x + a2
aproksimirala podatke v smislu najmanjsih kvadratov.
x=[ 1.00 1.11 1.22 1.33 1.44 1.56 1.67 1.78 1.89 2.00];
y=[ 3.02 2.81 2.73 2.55 2.42 2.37 2.28 2.14 2.11 2.05];
Koliko je vsota parametrov P2 i=1 ai?
f='[1/x,ones(size(x))]'
x=[ 1.00 1.11 1.22 1.33 1.44 1.56 1.67 1.78 1.89 2.00];
y=[ 3.02 2.81 2.73 2.55 2.42 2.37 2.28 2.14 2.11 2.05];
x=x' (Stoplca morata biti)
y=y' (Stoplca morata biti)
A=eval(vectorize(f))
B=A'*A
a=B\(A'*y)
resitev=sum(a)
3. Poisci parametra a1 in a2, tako da bo funkcija
f(x, a) = a1xe-a(2)x^2=y
aproksimirala podatke
x=[ 1.00 1.11 1.22 1.33 1.44 1.56 1.67 1.78 1.89 2.00];
y=[ 0.75 0.65 0.60 0.48 0.38 0.32 0.25 0.16 0.13 0.10];
S primerno transformacijo prevede¡s na najpreprostej¡si linearni problem
najmanj¡sih kvadratov oblike:
Y = A1 + A2 Xn Koliko je vsota parametrov P2i=1 ai
naredis ln(x/y)= -ln(a1) + a2 * x^2 (A2 =a2, A1 = -ln(a1))
x=[ 1.00 1.11 1.22 1.33 1.44 1.56 1.67 1.78 1.89 2.00];
y=[ 0.75 0.65 0.60 0.48 0.38 0.32 0.25 0.16 0.13 0.10];
x=x'
y=y'
Y=log(x ./ y)
f='ones(size(x)),x^2'
M=eval(vectorize(f))
A=(M'*M)\(M'*Y) // dobis A1 in A2
a2 = A(2)
a1 = exp(-A(1)) //to dobis ce iz A1 = -ln(a1) izrazis a1) resitev = a1+a2
4. S pomoco kubicne interpolacije izracunaj pribli¡zno vrednost funkcije za
x = 3.271, ce poznamo le naseldnje vrednosti funkcije:
x=[2.40 2.80 3.20 3.60 4.00 4.40];
y=[1.669 1.031 0.293 -0.428 -1.017 -1.382];
Interpolacijske tocke izberemo tako, da je iskana vrednost med drugo in
tretjo interpolacijsko tocko.
x=[2.40, 2.80, 3.20, 3.60];
y=[1.669, 1.031, 0.293, -0.428];
polyfit(x,y,3)
//odogovor (To so a,b,c,d, za kubicno funkcijo a*x^3+b*x^2+c*x+d)
//
// 0.30468749999992 -2.87187499999921 7.14749999999758 -3.15499999999754
f='0.30468749999992*x^3-2.87187499999921*x^2+7.14749999999758*x-3.15499999999754'
x=3.271
resitev= eval(vectorize(f))
5. Pri merjenju visine izstrelka h v odvisnosti od casa, t smo dobili naslednje
podatke o visini izstrelka nad tlemi:
t=[1.00 1.20 1.40 1.60 1.80 2.00];
h=[9.812 10.682 10.929 10.935 10.602 9.811];
Aproksimiraj meritve po metodi najmanjsih kvadratov s polinomom druge
stopnje in doloci najvecjo visino izstrelka.Vse rezultate vpisite vsaj na 5 mest natancno.
t=[1.00 1.20 1.40 1.60 1.80 2.00];
h=[9.812 10.682 10.929 10.935 10.602 9.811];
polyfit(t,h,2)
//odogovor
//
//-4.74330357142855 14.19576785714280 0.39400000000005
f=' -4.74330357142855*t^2+ 14.19576785714280*t + 0.39400000000005 '
F=strrep(f,'t','x')
jacobian(F) //odvod parabole (2ax+b)
x=14.19576785714280/ (2 * 4.74330357142855)
eval(vectorize(F))
1. Izra¡cunaj integral funkcije f(x) po trapezni in 1/3 Simpsonovi formuli,
f(x) =(1 - (cos(x))^2)/sin(x^2) na intervalu [0, 1].
Integracijski interval razdeli na 20 enako dolgih podintervalov.
f='(1 - (cos(x))^2)/sin(x^2) '
Simpson:
simpson(f,0,1,20) ali pa
x=linspace(0,1,20)
y=eval(vectorize(f))
h= (b-a)/m (1-0/20 )
y(1)= izracunej limito f(x) ko gre x proti 0
resitev=h*(y*l(20))/3
trapezna:
trapez(f,a,b,m) ali pa
x=linspace(0,1,20)
y=eval(vectorize(f))
h= (b-a)/m (1-0/20 )
y(1)= izracunej limito f(x) ko gre x proti 0
K=zeros(size(x))'+2
K(1)=K(1)-1
K(size(x))=K(size(x))-1
resitev=h*(y*K)
2. Izra¡cunaj integral funkcije f(x) = (x - sin(x))/x^(7/2)
na intervalu [0, 2].Integracijski interval razdelis na 22 enako dolgih podintervalov.
V levem kraji¡s¡cu je funkcija singularna. Na prvih dveh podintervalih
uporabi¡s formulo za ra¡cunanje singularnih integralov, medtem ko
na preostalem obmo¡cju ra¡cuna¡s po Simpsonovi formuli.
3. Izra¡cunaj integral funkcije f(x) = cos(x(11/10)* exp(1/2 x))
na intervalu [0, p], kjer je p > 0 najmanj¡sa pozitivna nicla funkcije. Uporabi
Rombergovo metodo. Izberi n=20 in tol=1e-10.
f='cos(x^(11/10)*exp(x/2))'
x=0:0.1:2
plot(x,eval(vectorize(f))) -da najdes približek
df=jacobian(f)
newton(f,df,1,1e-10,100)
romberg(f,0,0.97005375404118,20,1e-10)
4. Dana je krivulja v parametri¡cni obliki.
x = 4 t - 4 sin(t), y = 6 - 6 cos(t)
Izracunaj dolzino krivulje. Razdeli interval [0, 2*Pi] na n=24 podintervalov
in izracunaj integral s pomocjo Simpsonove formule.
//Formula: l=INTEGRAL(0 do 2*Pi) sqrt((odvod x)^2+(odvod y)^2)
//Odvodx je 4-4*cos(t)
//Odvody je 6*sin(t)
f='sqrt((4-4*cos(t))^2+(6*sin(t))^2)' oz
f='sqrt((4-4*cos(x))^2+(6*sin(x))^2)'
resitev=simpson(f,0,2*pi,24)
1. Re¡si diferencialno enac¡cbo y' = -y, y(0) = 1.23
po Eulerjevi, modificirani Eulerjevi in po Heunovi metodi,na intervalu
[0, 2].Integracijski interval razdeli¡s na n = 26 enako dolgih podintervalov.Primerjaj
vrednosti vseh treh metod v desnem krajiscu s tocno resitvijo.
[y,x]=euler(f,a,y,n) (f='-y',a=[0,2],y=1,23,n=26)
[y,x]=modeuler(f,a,y,n) (isto)
[y,x]=heun(f,a,y,n,e) (isto, samo e je 1e-10)