变步长辛卜生求二重积分法
代码如下:
clear all;
s=input('请输入函数表达式:f = ',‘s’);
f=inline(s);
a = input(‘请输入积分变量x左边界a的值:’);
b = input(‘请输入积分变量x右边界b的值:’);
c = input(‘请输入积分变量y左边界c的值:’);
d = input(‘请输入积分变量y右边界d的值:’);
h1 = input(‘请输入积分变量x步长h1的值:’);
h2 = input(‘请输入积分变量y步长h2的值:’);
m=round((b-a)/h1);
n=round((d-c)/h2);
T=zeros(m+1,n+1);
R=[1,4,1;4,16,4;1,4,1];
for p=0:m/2-1
for q=0:n/2-1
for i=1:3
for j=1:3
T(i+2p,j+2q)=T(i+2p,j+2q)+R(i,j);
end
end
end
end
fprintf(‘系数表:’);
T
%%%计算各二维节点函数值,并存放于矩阵F中;
F=zeros(m+1,n+1);
for i=0:m
for j=0:n
F(i+1,j+1)=f(a+ih1,c+jh2);
end
end
%%%结果输出;