用n=4的复化Simpson公式求积分方程的近似解[matlab]

1、实验题目

        用n=4的复化Simpson公式求积分方程的近似解

2、算法组织

        用四区间复化Simpson 公式对积分方程进行化简,求出9个节点值;用四区间的复化Simpson 积分公式将待求积分方程转化为关于

 的线性方程组,A为系数矩阵,b中存放积分方程中左端关于x的函数

 调用高斯消去法求解线性方程组Ax=b。

1. For i=0,1,…,8
   1.1 For j=0,1,…,8
            1.1.1 If c_i0=c_i8=1 
                 Else  if  j%2=0   c_ij=2
                 Else c_ij=4
2. For i=0,1,…,8
2.1 t=1/8
2.2  For j=0,1,…,8
2.2.1 t1=1/(1+j/8)
2.2.2  If      a_ij=1-h/6(t1-t)c_ij
        else  a_ij=-h/6(t1-t)c_ij
2.3 b_i=f(x_i)

3、源码

%start
	x = [0:8]./8;
	for i = 1 : 9
		for j = 1 : 9
			A(i,j) = 1/(1+x(j)) - x(i);
		end
	end
	E_9    = eye(9);
	B_diag = diag([ 1 4 2 4 2 4 2 4 1], 0);
	h4 	= 1/4;
	A	= E_9 - h4/6*A*B_diag;
	b	= ( 4*x.^3+ 5*x.^2-2*x+ 5)./(8*(x+1).^2);
	Aug = [ A  b'];
	n = 9;
	for j = 1:(n-1)
		[d,e]    = max( abs(Aug(j:n,j)) );
		e  		 = e - 1 + j;
		f  		 = Aug(e,:);
		Aug(e,:) = Aug(j,:);
		Aug(j,:) = f;
		if Aug(j,j) == 0
			break;
		else
			for i = (j+1): n
				E_temp 		=  eye(n);
				E_temp(i,j) = -Aug(i,j)/Aug(j,j);
				Aug    		=  E_temp*Aug;
			end
		end
	end
	y  	 = zeros(n,1);
	b1 	 = Aug(:,n+1); %column
	y(n) = b1(n)/Aug(n,n);
	for k = n-1:-1:1
		y(k) = ( b1(k)- Aug(k,k+1:n)* y(k+1:end) )/Aug(k,k); 
	end
	disp('点y[i]的函数值:');
	for j = 1:9
		fprintf('y[%d]=%f\t\n', j-1, y(j));
	end
	S = ( y(1)+ 4*(y(2)+y(4)+y(6)+y(8))+ 2*(y(3)+y(5)+y(7))+ y(9) )/24;
	fprintf('S=%f\n', S);

4、运行结果

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值