?? pentas.m
字號:
function [f_result,p_flag]=pentas(n,a,b,c,f)%[f_result,p_flag]=pentas(n,a,b,c,f)% To solve symmetric 5-diagonal lineair system of equations% a is diagonal (1...n), is overwritten% b is first subdiagonal 1...n-1 , is overwritten% c is second subdiagonal 1...n-2, is overwritten% f is right-hand side input% f_result solution vector.% dimensions of a,b,c,f are n% return p_flag = 0 ok, % = 2 The matrix is numerical singular p_flag = 0; h1=0; h2=0; h3=0; h4=0; h5=0; hh1=0; hh2=0; hh3=0; hh4=0; hh5=0; for k=1:n, z=a(k)-h4*h1-hh5*hh2; if abs(z)<eps, p_flag=2; return; end hb=b(k); hh1=h1; h1=(hb-h4*h2)/z; b(k)=h1; hc=c(k); hh2=h2; h2=hc/z; c(k)=h2; a(k)=(f(k)-hh3*hh5-h3*h4)/z; hh3=h3; h3=a(k); h4=hb-h5*hh1; hh5=h5; h5=hc; end h2=0.0; h1=a(n); f(n)=h1; for k=n-1:-1:1, f(k)=a(k)-b(k)*h1-c(k)*h2; h2=h1; h1=f(k); end f_result=f; return
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -