
Лаб. 4 КП МатАн
.docxЛР4
import numpy as np import sympy as sp from numpy import * from sympy import * import matplotlib.pyplot as plt
Упражнение 1
def lenn(x, y): r=np.size(x) z=np.zeros(r) for i in range (0, r): R=abs(x[i]-y[i]) z[i]=R Z=max(z) return Z O=[0, 0] A=[3, 4] lenn(O, A)
4.0
B=[4, 3] lenn(O, B)
4.0
A=[1, 2, 3, 4] B=[7, 3, 4, 200] lenn(A, B)
196.0
def slen(x, y): r=np.size(x) s=0 for i in range (0, r): s=s+abs(x[i]-y[i]) return s O=[0, 0] A=[3, 4] slen(O, A)
7
B=[4, 3] slen(O, B)
7
A=[1, 2, 3, 4] B=[7, 3, 4, 200] slen(A, B)
204
def elen(x, y): r=np.size(x) s=0 for i in range (0, r): s=s+(x[i]-y[i])**2 sq=round(sqrt(s),4) return sq O=[0, 0] A=[3, 4] elen(O, A)
5
B=[4, 3] elen(O, B)
5
A=[1, 2, 3, 4] B=[7, 3, 4, 200] elen(A, B)
196.0969
Упражнение 2
def sharlenn(a, r): x0=a[0] y0=a[1] for i in arange(x0-r,x0+r+1, 0.1): if abs(i-x0)<=r: for j in arange(y0-r,y0+r+1, 0.1): if abs(j-y0)<=r: plt.plot(i, j, 'or') plt.grid() plt.show() O=[0, 0] R=1 sharlenn(O, R)
def sharslen(a, r): x0=a[0] y0=a[1] for i in arange(x0-r,x0+r+1, 0.1): if abs(i-x0)<=r: for j in arange(y0-r,y0+r+1, 0.1): if (abs(j-y0)+abs(i-x0))<=r: plt.plot(i, j, 'or') plt.grid() plt.show() O=[0, 0] R=1 sharslen(O, R)
def sharelen(a, r): x0=a[0] y0=a[1] for i in arange(x0-r,x0+r+1, 0.1): if sqrt((i-x0)**2)<=r: for j in arange(y0-r,y0+r+1, 0.1): if sqrt((abs(j-y0))**2+(abs(i-x0))**2)<=r: plt.plot(i, j, 'or') plt.grid() plt.show() O=[0, 0] R=1 sharelen(O, R)
Упражнение 3
def posled(x1, n): xk=np.zeros(n) xk[0]=x1 for i in range(1,n): xk[i]=tan(xk[i-1]) return xk x1=3 n=10 posled(x1,n)
array([ 3. , -0.14254654, -0.14351995, -0.14451354, -0.14552803, -0.14656416, -0.14762271, -0.14870449, -0.14981038, -0.15094127])
Упражнение 4
def poslth(f, a, x1, eps): xx=np.zeros(15) xx[0]=x1 xx[1]=f.subs(x, xx[0]) p=abs(xx[1]-xx[0]) n=1 while (((a**n)*p)/(1-a)>=eps): xx[n]=f.subs(x,xx[n-1]) n+=1 return xx[n-1] x=Symbol('x') f=atan(x)+pi a=0.2884 x1=3 eps=0.001 poslth(f, a, x1, eps)
4.493409433294847
x=Symbol('x') ff=x**5-2*x-1 #df=diff(f) #print(df) df=5*x**4-2 f=x-ff/df a=0.2884 x1=1 eps=0.0001 poslth(f, a, x1, eps)
1.2906488013467097
x1=-0.5 poslth(f, a, x1, eps)
-0.5187900636758842
x1=-1 poslth(f, a, x1, eps)
-1.0
Упражнение 5
import math def helpme(a,b,eps): r=len(a) e=eye(r) z1=zeros(r) z2=z1 z3=z1 strr=0 stolb=0 u=0 q=0 bb=b z1=[0,0,0] z2=[0,0,0] z3=[0,0,0] b[0,0]=b[0,0]/a[0,0] b[1,0]=b[1,0]/a[1,1] b[2,0]=b[2,0]/a[2,2] #print(b) a[0,:]=a[0,:]/a[0,0] a[1,:]=a[1,:]/a[1,1] a[2,:]=a[2,:]/a[2,2] #print(a) for i in range(0,r): strr=sum(abs(a[i,:]))-1 stolb=sum(abs(a[:,i]))-1 u=sum((a[:,i])**2) z1[i]=strr z2[i]=stolb z3[i]=u mz1=max(z1) mz2=max(z2) al=max(mz1,mz2) mz3=sqrt(sum(z3)-1) if (max(z1)<1 or max(z2)<1 or max(z3)<1): print("Условие Выполнено") else: print("Условие НЕ Выполнено") c=-a+e x=b+c*bb q=sqrt((b[0,0]-x[0])**2+(b[1,0]-x[1])**2+(b[2,0]-x[2])**2) #print(q) nn=abs((log((1-al)*eps)-log(q))/log(al)) #print(nn) n=math.ceil(nn) print(n) for i in range(1, n): x=b+c*bb #print(x) bb=x return x a=np.array([[1,0.06,-0.02],[0.03,1,-0.05],[0.01,-0.02,1]]) a1=np.array([[-1,-0.06,0.02],[-0.03,-1,0.05],[-0.01,0.02,-1]]) b=np.array([[2],[3],[5]]) eps=0.001 helpme(a,b,eps)
Условие Выполнено 3
Matrix([ [1.9094], [3.1944], [5.0446]])
import math def helpme(a,b,eps): r=len(a) e=eye(r) z1=zeros(r) z2=z1 z3=z1 strr=0 stolb=0 u=0 q=0 bb=b z1=[0,0,0] z2=[0,0,0] z3=[0,0,0] b[0,0]=b[0,0]/a[0,0] b[1,0]=b[1,0]/a[1,1] b[2,0]=b[2,0]/a[2,2] #print(b) a[0,:]=a[0,:]/a[0,0] a[1,:]=a[1,:]/a[1,1] a[2,:]=a[2,:]/a[2,2] #print(a) for i in range(0,r): strr=sum(abs(a[i,:]))-1 stolb=sum(abs(a[:,i]))-1 u=sum((a[:,i])**2) z1[i]=strr z2[i]=stolb z3[i]=u mz1=max(z1) mz2=max(z2) al=max(mz1,mz2) mz3=sqrt(sum(z3)-1) if (max(z1)<1 or max(z2)<1 or max(z3)<1): print("Условие Выполнено") else: print("Условие НЕ Выполнено") c=-a+e x=b+c*bb p=sqrt((b[0,0]-x[0])**2+(b[1,0]-x[1])**2+(b[2,0]-x[2])**2) #print(q) n=1 while (((al**n)*p)/(1-al)>=eps): n+=1 x=b+c*bb #print(x) bb=x print(n) return x a=np.array([[1,0.06,-0.02],[0.03,1,-0.05],[0.01,-0.02,1]]) a1=np.array([[-1,-0.06,0.02],[-0.03,-1,0.05],[-0.01,0.02,-1]]) b=np.array([[2],[3],[5]]) eps=0.001 helpme(a,b,eps)
Условие Выполнено 3
Matrix([ [1.9094], [3.1944], [5.0446]])
Упражнение С1
def sz(a): r=len(a) e=eye(r) c=-a+e z1=zeros(r) z2=z1 z3=z1 strr=0 stolb=0 u=0 q=0 bb=b z1=[0,0,0] z2=[0,0,0] z3=[0,0,0] a[0,:]=a[0,:]/a[0,0] a[1,:]=a[1,:]/a[1,1] a[2,:]=a[2,:]/a[2,2] b[0,0]=b[0,0]/a[0,0] b[1,0]=b[1,0]/a[1,1] b[2,0]=b[2,0]/a[2,2] for i in range(0,r): strr=sum(abs(a[i,:]))-1 stolb=sum(abs(a[:,i]))-1 u=sum((a[:,i])**2) z1[i]=strr z2[i]=stolb z3[i]=u mz1=max(z1) mz2=max(z2) al=max(mz1,mz2) mz3=sqrt(sum(z3)-1) if (max(z1)<1 or max(z2)<1 or max(z3)<1): print("Условие Выполнено") else: print("Условие НЕ Выполнено") a=np.array([[1.11,0.21,-0.37],[0.13,0.29,0.21],[0.63,-0.33,-2.41]]) sz(a)
Условие НЕ Выполнено
Упражнение С2
a=np.array([[1.11,0.21,-0.37],[0.13,0.29,0.21],[0.63,-0.33,-2.41]]) b=np.array([[1.53],[1.56],[1.42]]) eps=0.001 helpme(a,b,eps)
Условие НЕ Выполнено 60
Matrix([ [-0.444017722993749], [ 6.75929843927243], [ -1.63082973047545]])