% Fisier MATLAB 1.3.6.m de tip script in care se rezolva problema formulata % in exemplul 1.3.6 clc, clear all disp('Se rezolva problema formulata in exemplul 1.3.6') syms x Dy % se descriu variabilele simbolice F=Dy^2+x*Dy; %F=Dy^2+2*Dy*sinh(x)-5*x^2; % functia integrand x1=0;y1=0;x2=2;y2=0; %x1=-1;y1=2;x2=1;y2=3; % conditiile la extremitati disp('Datele initiale:') fprintf(['Functia integrand ' 'F(x,y'')=%s\n'],char(F)) fprintf('Conditia la extremitatea de stanga: y(%d)=%d\n',x1,y1) fprintf('Conditia la extremitatea de dreapta: y(%d)=%d\n',x2,y2) dFdy1=simple(diff(F,Dy)); % se determina Fy' deqEuler=[char(dFdy1) '=C2']; % se scrie integrala impulsului disp('Integrala prima a ecuatiei Euler-Lagrange:') fprintf('%s\n',deqEuler) Sol=dsolve(deqEuler,'x'); % se rezolva ecuatia if length(Sol)~=1 % solutii nu sunt sau sunt mai multe error('Solutii nu sunt sau sunt mai multe!'); else disp('Solutia generala:') fprintf('y(x)=%s\n',char(Sol)) end SolLeft=subs(Sol,x,sym(x1)); % se substituie x1 SolRight=subs(Sol,x,sym(x2)); % se substituie x2 EqLeft=[char(SolLeft) '=' char(sym(y1))]; % egalam cu y1 EqRight=[char(SolRight) '=' char(sym(y2))]; % egalam cu y2 disp('Sistemul de ecuatii pentru determinarea coeficientilor necunoscuti:') fprintf('%s\n',EqLeft,EqRight) Con=solve(EqLeft,EqRight,'C2,C3'); C2=Con.C2; C3=Con.C3; Sol22=vpa(eval(Sol),14); disp('Ecuatia extremalei admisibile:') fprintf('y(x)=%s\n',char(Sol22)) xpl=linspace(x1,x2); y22=subs(Sol22,x,xpl); figure plot(xpl,y22,'-r') set(get(gcf,'CurrentAxes'), 'FontName','Times New Roman','FontSize',11) da=daspect; da(1:2)=min(da(1:2)); daspect(da); % scara egala title('\bfExemplul 3.1.6') xlabel('\itx') ylabel('\ity\rm(\itx\rm)') grid on, box on