Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc
- clear all
- close all
- syms a1 a2 a3 a4 x l;
- %funkcja aproksymujaca
- v=a1*x^2+a2*x^3+a3*x^4+a4*x^4
- % p1_v - pierwsza pochodna funkcji v(x)
- p1_v=diff(v)
- %p2_v - druga pochodna funkcji v(x)
- p2_v=diff(p1_v)
- %Minimalizacja funkcjonału po współczynniku a1
- f_a1=diff((p2_v)^2,a1);
- f_a1=diff(f_a1,a1) %usunięcie współ. a2, a3, a4
- C_a1=int(f_a1,x);
- C1=a1*(subs(C_a1,x,1)-subs(C_a1,x,0))
- %Minimalizacja funkcjonału po współczynniku a2
- f_a2=diff((p2_v)^2,a2);
- f_a2=diff(f_a2,a2) %usunięcie współ a1, a3, a4
- C_a2=int(f_a2,x);
- C2=a1*(subs(C_a2,x,1)-subs(C_a2,x,0))
- %Minimalizacja funkcjonału po współczynniku a3
- f_a3=diff((p2_v)^2,a3);
- f_a3=diff(f_a3,a3) %usunięcie współ a1, a2, a4
- C_a3=int(f_a3,x);
- C3=a1*(subs(C_a3,x,1)-subs(C_a3,x,0))
- %Minimalizacja funkcjonału po współczynniku a4
- f_a4=diff((p2_v)^2,a4);
- f_a4=diff(f_a4,a4) %usunięcie współ a1, a2, a3
- C_a4=int(f_a4,x);
- C4=a4*(subs(C_a4,x,1)-subs(C_a4,x,0))
- %oblicznie całek reprezentujacych pracę wydatku s(x)
- syms w0
- %dla pochodnej po a1
- f=(w0+(1-(x/l)^4))*v;
- a1_f=diff(f,a1);
- C_a1_f=int(a1_f,x);
- Cp1=subs(C_a1_f,x,1)-subs(C_a1_f,x,0);
- Cp1=simplify(Cp1)
- %dla pochodnej po a2
- a2_f=diff(f,a2);
- C_a2_f=int(a2_f,x);
- Cp2=subs(C_a2_f,x,1)-subs(C_a2_f,x,0);
- Cp2=simplify(Cp2)
- %dla pochodnej po a3
- a3_f=diff(f,a3);
- C_a3_f=int(a3_f,x);
- Cp3=subs(C_a3_f,x,1)-subs(C_a3_f,x,0);
- Cp3=simplify(Cp3)
- %dla pochodnej po a4
- a4_f=diff(f,a4);
- C_a4_f=int(a4_f,x);
- Cp4=subs(C_a4_f,x,1)-subs(C_a4_f,x,0);
- Cp4=simplify(Cp4)
- %oblicznie współczynników
- syms E J
- C=sym(zeros(4,4)); b=sym(zeros(4,1));
- C(1,1)=C1/a1; b(1,1)=Cp1;
- C(2,2)=C2/a2; b(2,1)=Cp2;
- C(3,3)=C3/a3; b(3,1)=Cp3;
- C(4,4)=C4/a4; b(4,1)=Cp4;
- C=(E*J/2)*C
- a=C\b;
- F_a1=@(E,l,J,w0)eval(a(1,1));
- F_a2=@(E,l,J,w0)eval(a(2,1));
- F_a3=@(E,l,J,w0)eval(a(3,1));
- F_a4=@(E,l,J,w0)eval(a(4,1));
- %dane liczbowe
- E=1
- J=1
- l=3
- w0=2
- a1=F_a1(E,l,J, w0);
- a2=F_a2(E,l,J, w0);
- a3=F_a3(E,l,J, w0);
- a4=F_a4(E,l,J, w0);
- disp('a1 a2 a3 a4');[a1 a2 a3 a4]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement