zad4

2745 days ago by aweber

# Zadanie 4 var('x,y,z,a,b,wartosc') f=x+2*z g=x^2+y^2+z^2-5; h=x^2-y^2-1; fx=diff(f,x); #pochodne czšstkowe f fy=diff(f,y); fz=diff(f,z); print 'grad(f)=',[fx,fy,fz]; gx=diff(g,x) #pochodne czšstkowe więzow g gy=diff(g,y) gz=diff(g,z) print 'grad(g)=',[gx,gy,gz] hx=diff(h,x) #pochodne czšstkowe g2 hy=diff(h,y) hz=diff(h,z) print 'grad(h)=',[hx,hy,hz] 
       
grad(f)= [1, 0, 2]
grad(g)= [2*x, 2*y, 2*z]
grad(h)= [2*x, -2*y, 0]
rownania1=[f==wartosc,g==0,h==0, a*gx+b*hx==fx, a*gy+b*hy==fy, a*gz+b*hz==fz] print 'UKŁAD RÓWNAŃ' print rownania1 
       
UKŁAD RÓWNAŃ
[x + 2*z == wartosc, x^2 + y^2 + z^2 - 5 == 0, x^2 - y^2 - 1 == 0,
2*a*x + 2*b*x == 1, 2*a*y - 2*b*y == 0, 2*a*z == 2]
rozwiazania1=solve(rownania1,wartosc,x,y,z,a,b) print 'ROZWIĽZANIA' print rozwiazania1 
       
ROZWIĽZANIA
[
[wartosc == 5, x == 1, y == 0, z == 2, a == (1/2), b == 0],
[wartosc == -3, x == 1, y == 0, z == -2, a == (-1/2), b == 1],
[wartosc == -5, x == -1, y == 0, z == -2, a == (-1/2), b == 0],
[wartosc == 3, x == -1, y == 0, z == 2, a == (1/2), b == -1],
[wartosc == -3*sqrt(3), x == -1/3*sqrt(3), y ==
-1/3*I*sqrt(2)*sqrt(3), z == -4/3*sqrt(3), a == -1/4*sqrt(3), b ==
-1/4*sqrt(3)],
[wartosc == -3*sqrt(3), x == -1/3*sqrt(3), y ==
1/3*I*sqrt(2)*sqrt(3), z == -4/3*sqrt(3), a == -1/4*sqrt(3), b ==
-1/4*sqrt(3)],
[wartosc == 3*sqrt(3), x == 1/3*sqrt(3), y ==
-1/3*I*sqrt(2)*sqrt(3), z == 4/3*sqrt(3), a == 1/4*sqrt(3), b ==
1/4*sqrt(3)],
[wartosc == 3*sqrt(3), x == 1/3*sqrt(3), y == 1/3*I*sqrt(2)*sqrt(3),
z == 4/3*sqrt(3), a == 1/4*sqrt(3), b == 1/4*sqrt(3)]
]
print 'Trzeba jeszcze znaleŸć punkty zbioru {g=h=0}' print 'w których grad(g) i grad(h) sš liniowo zależne.' print 'Ponieważ grad(g) nie zeruje się na zbiorze {g=0}' print 'sprawdzamy tylko warunek grad(h)=a*grad(g)' rownania2=[f==wartosc, g==0,h==0, a*hx==gx, a*hy==gy, a*hz==gz] rozwiazania2=solve(rownania2,wartosc,x,y,z,a) print rozwiazania2 if rozwiazania2==[ ]: print 'W tym zadaniu nie ma takich punktów.' 
       
Trzeba jeszcze znaleŸć punkty zbioru {g=h=0}
w których grad(g) i grad(h) sš liniowo zależne.
Ponieważ grad(g) nie zeruje się na zbiorze {g=0}
sprawdzamy tylko warunek grad(h)=a*grad(g)
[

]
W tym zadaniu nie ma takich punktów.
wartosci=[wartosc.subs_expr(rozwiazanie[0]) for rozwiazanie in rozwiazania1+rozwiazania2] print 'WARTOSCI' print wartosci print 'MAKSIMUM', max(wartosci) print 'MINIMUM', min(wartosci) 
       
WARTOSCI
[5, -3, -5, 3, -3*sqrt(3), -3*sqrt(3), 3*sqrt(3), 3*sqrt(3)]
MAKSIMUM 3*sqrt(3)
MINIMUM -3*sqrt(3)