fdiff.m

来自「matlab的大量实例代码」· M 代码 · 共 12 行

M
12
字号
function [x,y]=fdiff(funcs,tspan,x0f,n)
t0=tspan(1);tfinal=tspan(2);
ga=x0f(1); gb=x0f(2);
h=(tfinal-t0)/n;
for i=1:n, x(i)=t0+h*(i-1); end, x0=x(1:n-1);
t=-2+h^2*feval(funcs,x0,2); tmp=feval(funcs,x0,1);
v=1+h*tmp/2; w=1-h*tmp/2; b=h^2*feval(funcs,x0,3);
b(1)=b(1)-w(1)*ga; b(n-1)=b(n-1)-v(n-1)*gb;
b=b'; A=diag(t);
for i=1:n-2, A(i,i+1)=v(i); A(i+1,i)=w(i+1); end
y=inv(A)*b;  x=[x tfinal]; y=[ga; y; gb]';

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?