Numerik 16-18

182 days ago by himmel1

def transform(x): return 1/2*(3*x+1) 
       
a= transform(-1/35*sqrt(2*sqrt(30) + 15)*sqrt(35)) b= transform(-1/35*sqrt(-2*sqrt(30) + 15)*sqrt(35)) c= transform(1/35*sqrt(-2*sqrt(30) + 15)*sqrt(35)) d= transform(1/35*sqrt(2*sqrt(30) + 15)*sqrt(35)) 
       
NST=list() NST.append(0) NST.append(a) NST.append(b) NST.append(c) NST.append(d) 
       
def LI(n): sum=1 for j in range(1,5): if(j !=n): sum*= (x-NST[j])/(NST[n]-NST[j]) return sum 
       
def inte(n): werte=0 for i in range (1,n+1): werte+= sin(NST[i])*integral( LI(i),x,-1,2) print werte.n() 
       
inte(4) 
       
0.956444122689162
0.956444122689162
#Fehler abs(0.956444122689162-0.956449142415282).n() 
       
5.01972611999246e-6
5.01972611999246e-6
(#NEWTON CODE 
       
Traceback (click to the left of this block for traceback)
...
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_35.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("KCNORVdUT04gQ09ERQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>
    
  File "/tmp/tmpArUDBx/___code___.py", line 3
    
                 ^
SyntaxError: invalid syntax
def intervall(i): return -1+3*(i)/4 
       
def LI(n): sum=1 for i in range(5): if(i != n): sum*= (x-intervall(i)) for j in range(5): if(j != n): sum/= (intervall(n)-intervall(j)) return sum 
       
def fertig(n): summe=0 for i in range(5): summe+= sin(intervall(i))*integral( LI(i),x,-1,2) print summe.n() 
       
fertig(5) 
       
0.955949089353632
0.955949089353632
integral(sin(x),x,-1,2).n() 
       
0.956449142415282
0.956449142415282
#fehler abs(0.955949089353632-0.956449142415282) 
       
0.000500053061650019
0.000500053061650019
#Bsp 17######### #intervall[0,2pi] 
       
def trapez(f,N,a,b): h=(b-a)/N sum=0 for i in range(1,N): sum= sum + f(a+i*h) return h*(((f(a)+f(b))/2+sum)) 
       
def f(x): return 1/(sqrt((1-1/2*sin(x-1)))) 
       
integrate(f(x),x,0,2*pi).n() 
       
6.6265526809463768
6.6265526809463768
for i in range(6): a= 2^i print "N = %d" %a print trapez(f,a,0,2*pi).n() 
       
N = 1
5.27136699864820
N = 2
6.76341474604790
N = 4
6.61414918603767
N = 8
6.62654244910166
N = 16
6.62655267967001
N = 32
6.62655268094638
N = 1
5.27136699864820
N = 2
6.76341474604790
N = 4
6.61414918603767
N = 8
6.62654244910166
N = 16
6.62655267967001
N = 32
6.62655268094638
#Fehler: for i in range(6): a= 2^i print "Fehler bei N = %d" %a print abs(trapez(f,a,0,2*pi).n()-integrate(f(x),x,0,2*pi)).n() 
       
Fehler bei N = 1
1.35518568229818
Fehler bei N = 2
0.136862065101520
Fehler bei N = 4
0.0124034949087077
Fehler bei N = 8
0.0000102318447199323
Fehler bei N = 16
1.27636745617110e-9
Fehler bei N = 32
1.77635683940025e-15
Fehler bei N = 1
1.35518568229818
Fehler bei N = 2
0.136862065101520
Fehler bei N = 4
0.0124034949087077
Fehler bei N = 8
0.0000102318447199323
Fehler bei N = 16
1.27636745617110e-9
Fehler bei N = 32
1.77635683940025e-15
#intervall[1,2pi] 
       
integrate(f(x),x,1,2*pi).n() 
       
5.7212969951364059
5.7212969951364059
for i in range(6): a= 2^i print "N = %d" %a print trapez(f,a,1,2*pi).n() 
       
N = 1
4.85779409557072
N = 2
5.45843920271536
N = 4
5.69888127071675
N = 8
5.71509258986420
N = 16
5.71974941218166
N = 32
5.72091025218410
N = 1
4.85779409557072
N = 2
5.45843920271536
N = 4
5.69888127071675
N = 8
5.71509258986420
N = 16
5.71974941218166
N = 32
5.72091025218410
#Fehler: for i in range(6): a= 2^i print "Fehler bei N = %d" %a print abs(trapez(f,a,1,2*pi).n()-integrate(f(x),x,1,2*pi)).n() 
       
Fehler bei N = 1
0.863502899565689
Fehler bei N = 2
0.262857792421049
Fehler bei N = 4
0.0224157244196528
Fehler bei N = 8
0.00620440527220367
Fehler bei N = 16
0.00154758295474622
Fehler bei N = 32
0.000386742952306562
Fehler bei N = 1
0.863502899565689
Fehler bei N = 2
0.262857792421049
Fehler bei N = 4
0.0224157244196528
Fehler bei N = 8
0.00620440527220367
Fehler bei N = 16
0.00154758295474622
Fehler bei N = 32
0.000386742952306562