行列:A(N、N)の固有値と固有ベクトルを求めます。
反復法のオーソドックスな解法です。
dim a(n,n),b(n),c(n)
l1:=0
i:=1
label re
b(i):=0
j:=1
repeat
input a(i,j)
j:=j+1
until j=>n
i:=i+1
until i:=>n
repeat
b(n):=1
i:=1
repeat
c(i):=0
j:=1
repeat
c(i):=c(i)+a(i,j)*b(j)
j:=j+1
until j=>n
i=i+1
until i=>n
d:=c(n)
i:=1
repeat
c(i):=c(i)/d
i:=i+1
until i=>n
l1:=l1+1
if l:=l1 then label re
i:=1
repeat
b(i):=c(i)
i:=i+1
until i=>n
go label re
end
2関数積分も基本的な考えは同じです。
入れ子構造になります。
1関数と同じ台形則が、一番平凡で普通です。
f$:="(p^2*cos(q))" 2変数関数
input a,b
input c,d
input e,l
x1:=(b-a)*2
y1:=(d-c)*2
i:=1
repeat
x1:=x1*0.5
y1:=y1*0.5
y:=c
v:=0
i1:=2^(i-1)
j:=1
repeat
p:=a
q:=y
v2:=val(f$)
p:=b
v2:=v2+val(f$)
if i1:=1 then label1
x:=a
k:=1
repeat
c:=x+x1
p:=x
v2:=v2+2*val(f$)
k:=k+1
until k>=i1-1
label1
if j=1 or j=i1+1 then v2:=v2*0.5
v:=v+2*v2
y:=y+y1
j:=j+1
until j>=i1+1
v:=v*(b-a)*(d-c)/4^i
if i=1 then label2
if abs(v-v1)
v1:=v
i:=i+1
until i>=l
i:=i-1
label3
end
精度が悪い「数値微分」ですが、変化の緩い関数では可能です。
def fnf(x):=1/x example
x1 from
x2 to
x3 step
kizami
y1 from
y2 to
y3 step
x:=x1
repeat
y:=y1
f1:=(fnf(x+y)-fnf(x-y))/(2*y)
f2:=(fnf(x+y)-2*fnf(x-y)+fnf(x-y)/y^2
f:=fnf(x)
y:=y*y3
if y
label1
if x>x2 then end
until 0