永发信息网

用matlab(复化梯形公式)计算积分

答案:3  悬赏:50  手机版
解决时间 2021-07-17 00:13
  • 提问者网友:龅牙恐龙妹
  • 2021-07-16 04:42
dy
最佳答案
  • 五星知识达人网友:思契十里
  • 2021-07-16 05:30
就是
全部回答
  • 1楼网友:污到你湿
  • 2021-07-16 07:11

function txgs() clc; clear all; close all; [I,n,Ichain] = computT(0,1,0.000000001,1); fprintf('\n利用梯形积分公式计算积分sin(x)/x,0=<x<=1\n'); fprintf('结果是:%.5f\n', I); fprintf('最终区间分点数是:%d\n', n); plot(Ichain, 'ro-', 'LineWidth', 2); hold on; plot(get(gca, 'xlim'), [I I], 'k-', 'LineWidth', 2)

function [I,n,Ichain]=computT(a,b,errorBound,dNum) %复化梯形公式求积分 %调用格式:[I,n,Ichain]=computT(a,b,errorBound,dNum) %输入4: % a:积分下限 b:积分上限 errorBound:输出结果的精度 dNum:区间初始分点数 %输出3: % I:积分近似值 n:最终区间分点数 Ichain-迭代过程所有值 %被积函数做成函数文件f(x) n=dNum/2; hn=(b-a)/n; k=1; Tn=hn*(f(a)/2+sumf(a,hn,n-1)+f(b)/2); h2n=hn/2; T2n=computT2n(a,Tn,h2n,n); error=abs(Tn-T2n); while error>errorBound h2n=h2n/2; n=n*2; T2ns=computT2n(a,T2n,h2n,n); Ichain(k)=T2ns; k=k+1; error=abs(T2ns-T2n); T2n=T2ns; end I=T2n;

function out=computT2n(a,Tn,h2n,n) out=Tn/2+h2n*sumf2(a,h2n,n);

function out=sumf(a,hn,n1) out=0; for i=1:n1 out=out+f(a+i*hn); end

function out=sumf2(a,hn,n1) out=0; for i=1:n1 out=out+f(a+(2*i-1)*hn); end

function out=f(x) if x==0 out=1; else out=sin(x)/x; end

  • 2楼网友:过活
  • 2021-07-16 06:12

%定积分,梯形公式编程 MTLAB版本

%待积分函数

function y=hanshu(x)

%下面的函数可以根据具体待积分的函数,随时更改

y=exp(x);

%调用函数编写

function y=myji(a,b,n);

%a,b为积分区间 n是小区间的个数

h=(b-a)/n;%小区间的大小

%hanshu是待积分的函数,可以在调用函数之前编写

y=(hanshu(a)+hanshu(b))/2;

%求和迭代过程

for i=1:n-1

y=y+hanshu(a+i*h);

end

y=y*h;%程序运行结束
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯