📄 finedif.m
字号:
function U = finedif(f,g,a,b,c,n,m)% U = finedif('f','g',0,1,4,10,10)%Input - f=u(x,0) as a string 'f'% - g=ut(x,0) as a string 'g'% - a and b right endpoints of [0,a] and [0,b]% - c the constant in the wave equation% - n and m number of grid points over [0,a] and [0,b]%Output - U solution matrix; analogous to Table 10.1%Initialize parameters and Uh = a/(n-1);k = b/(m-1);r = c*k/h;r2=r^2;r22=r^2/2;s1 = 1 - r^2;s2 = 2 - 2*r^2;U = zeros(n,m);%Comput first and second rowsfor i=2:n-1 U(i,1)=feval(f,h*(i-1)); U(i,2)=s1*feval(f,h*(i-1))+k*feval(g,h*(i-1)) ... +r22*(feval(f,h*i)+feval(f,h*(i-2)));end %Compute remaining rows of Ufor j=3:m, for i=2:(n-1), U(i,j) = s2*U(i,j-1)+r2*(U(i-1,j-1)+U(i+1,j-1))-U(i,j-2); endendU=U';function e1=f(t)e1=sin(pi.*t)+sin(2.*pi.*t);function e2=g(t)e2=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -