CATEGORII DOCUMENTE |
Astronomie | Biofizica | Biologie | Botanica | Carti | Chimie | Copii |
Educatie civica | Fabule ghicitori | Fizica | Gramatica | Joc | Literatura romana | Logica |
Matematica | Poezii | Psihologie psihiatrie | Sociologie |
UTILIZAREA CALCULATOARELOR IN CALCULUL VARIATIONAL
1. Sa se determine minimul expresiei
in multimea functiilor polinomiale de gradul 2 care se anuleaza in x = 0 si x = 1.
Functia de pornire yord1 = alfa * x * (1 - x).
Parametrul alfa se determina prin minimalizarea integralei date.
Solutia analitica de ord I este yord1anal = 5/18 * x * (1 - x).
5/18 = 0.2777777777777
Rezolvare.
Se intocmeste un program in limbajul MathCAD
Se fixeaza la 1 toti indicii
Se stabileste de cate ori se va calcula integrala
Se apreciaza limita inferioara a lui alfa, notata li
Se apreciaza limita superioara a lui alfa, notata ls
Lui i i se atribuie valorile 1, 2,,n
Se stabilesc valorile intermediare ale lui alfa
Se stabilesc valorile intermediare ale lui x
Se defineste functia y de variabila x si parametru alfa
Se calculeaza integrala de n ori, pentru cele n valori ale lui alfa
Se stabileste valoarea minima a integralei
Se afiseaza alaturat valorile integralelor si valorile corespunzatoare ale lui alfa
Rezulta ca valoarea minima a integralei se atinge in intervalul 0.26 - 0.3.
Se reia programul inlocuind li = .26 si ls = .3.
Se reia programul de atatea ori pana cand se obtine pentru alfa aproximatia dorita.
In cazul in care nu se cere afisarea rezultatelor intermediare, lui n i se poate da o valoare mare.
2. Sa se determine minimul expresiei
integrala de la 0 la 1, din
(y¢^2 - y^2 - 2 * x * y) dx,
in multimea functiilor polinomiale de gradul 2
care se anuleaza in x = 0 si x = 1.
Functia de pornire yord1 = alfa * x * (1 - x), unde
alfa se determina prin minimalizarea integralei date
Solutia exacta este y = sin(x)/sin(1) - x
Solutia analitica de ord I este yord1anal = 5/18 * x * (1 - x)
5/18 = 0.27777777777778
Se intocmeste un program in Matlab.
clc, % stergere fereastra de lucru
clear, % stergere variabile si functii
format compact, % afisare compacta a rezultatelor
format long % format de afisare cu 15 cifre
xinit = [0 x2 1] % x2 se alege din domeniul tehnologic
yinit = [0 y2 0] % y2 se alege din domeniul tehnologic
x2 = .5; y2 = .2; % valori aproximative
alfaaprox = y2/x2/(1 - x2) % valoare aproximativa a lui alfa
x = 0 : .0001 : 1; % domeniul de integrare
xinit = 0, xfin = 1, pas = .0001
limi = alfaaprox - 1; % limita inf. de variatie a lui alfa
lims = alfaaprox + 1; % limita sup. de variatie a lui alfa
pas = (lims - limi)/20; % pasul
if limi <= 0,
limi = 10^(-10); % din consideratii tehnologice alfa > 0
end
while abs(lims - limi) > 10^(-10) % pana cand
alf = limi : pas : lims;
% alf ia valorile intre limi si lims cu pasul pas
lim_de_var_ale_alfa = [limi,lims] % afiseaza limitele lui alf
0 for i = 1 : length(alf) % length(alf) = lung. vect. alf
t1 = [1 0]; t2 = [-1 1]; % t1 = 1 * x + 0, t2 = -1 * x + 1
coef = alf(i) * conv(t1,t2); % coef. polin. y = alf * t1 * t2
deriv = polyder(coef); % derivata lui y
fint1 = conv(deriv,deriv); % yprim^2
fi1 = [0 0 fint1(1) fint1(2) fint1(3) ]; % coef. pol. yprim
fi2 = conv(coef,coef); % coef. pol. y^2
fint3 = 2 * conv([1 0], coef); % coef. lui 2 * x * y de grad 3
fi3 = [0 fint3(1) fint3(2) fint3(3) fint3(4)];% coef. lui 2 * x * y de grad 4
fpar = fi1 - fi2 - fi3; % expresia de sub integrala
vfpar = polyval(fpar,x); % calculul pol. in punctele x
intpar(i) = trapz(x,vfpar); % calculul integ. pentru alf(i)
end
[centru,rang] = min(intpar); % calculul valorii minime si rangul corespunzator
figure,
plot (alf,intpar), % grafic, intpar = intpar(alf)
title ('GRAFICUL INTEGRALEI FUNCTIE DE ALFA')
xlabel ('alfa'), ylabel ('Valoarea integralei') % precizarea etichetelor axelor
grid on % trasarea unei retele pe grafic
se aleg noi limite de variatie ale lui alf in vecinatatea
valorii de minim aproximativ, in functie de rang
limi = (alf(rang - 1)); % se schimba limita inferioara
lims = (alf(rang + 1)); % se schimba limita superioara
pas = (lims - limi)/20; % se schimba pasul
alf = limi : pas : lims; % se schimba interv. pentru alf
end
alfafinal = (limi + lims)/2
valoareaintegralei = intpar(length(intpar))
verificare
coef = alfafinal * conv(t1,t2);
xnod = [0 1/4 1/2 3/4 1]; % abscisele nodurilor
disp ('Valorile functiei yord1 si sin(x)/sin(1) - x') % afiseaza
[xnod; polyval(coef,xnod); sin(xnod)/sin(1) - xnod]
% afiseaza valorile nodurilor,
% valorile aproximative si valorile exacte
figure, plot(x,polyval(coef,x)), grid on,
hold on % suprapune figurile
plot(x,sin(x)/sin(1) - x), grid on
title ('GRAFICUL SOLUTIEI EXACTE SI APROXIMATIVE')
xlabel('X'), ylabel('yexact. si yord1'), grid on
text(.06,.065, 'y = alfa * x * (1 - x)')
alfaaprox = 0.80000000000000
lim_de_var_ale_alfa = 0.00000000010000 1.80000000000000
lim_de_var_ale_alfa = 0.20000000010000 0.40000000010000
lim_de_var_ale_alfa = 0.27000000010000 0.29000000010000
lim_de_var_ale_alfa = 0.27700000010000 0.27900000010000
lim_de_var_ale_alfa = 0.27770000010000 0.27790000010000
lim_de_var_ale_alfa = 0.27777000010000 0.27779000010000
lim_de_var_ale_alfa = 0.27777700010000 0.27777900010000
lim_de_var_ale_alfa = 0.27777770010000 0.27777790010000
lim_de_var_ale_alfa = 0.27777776010000 0.27777778010000
lim_de_var_ale_alfa = 0.27777777110000 0.27777777310000
lim_de_var_ale_alfa = 0.27777777160000 0.27777777180000
alfafinal = 0.27777777171000
valoarea integralei = -0.02314814717078
Valorile functiei yord1 si sin(x)/sin(1) - x
ans =
Columns 1 through 5
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1302
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved