1. 程式人生 > >Romberg積分法計算定積分(Matlab程式)

Romberg積分法計算定積分(Matlab程式)

%Romberg積分法計算定積分
%參考教材:《數值分析》李乃成,梅立泉,科學出版社
%《計算方法教程》第二版 凌永祥,陳明逵

clear;clc;close all;
format long
% %被積函式為f(x)=4/(1+x^2);積分割槽間為[0,1]
% b=1;a=0;h=b-a;eps=10^(-5);
%誤差界eps%被積函式為f(x)=(x^3+sin(x))/x;積分割槽間為[0.3,0.8]
%誤差界eps=10^(-5)
b=0.8;a=0.3;h=b-a;eps=10^(-5);%誤差界eps
kmax=10;%最大遞推次數
T1=h/2*((a^3+sin(a))/a+(b^3+sin(b))/b)
S1=0;C1=0;C2=0;R1=0;R2=0;
for k=1:kmax
    h=(b-a)/2^k;
    i=1:2^(k-1);
    x=a+(2*i-1)*h;
    fx=sum((x.^3+sin(x))./x);
    T2=T1/2+fx*h
    S2=T2+(T2-T1)/3
    if(k<3)
        if k==2
            C2=S2+(S2-S1)/15
        end
    else
        C2=S2+(S2-S1)/15
        R2=C2+(C2-C1)/63
        if abs(R2-R1)<eps
            break;
        end
        R1=R2;
    end
    T1=T2;S1=S2;C1=C2;
end
fprintf('所求積分I=%9.8f\n',R2);

相關推薦

Romberg積分計算積分Matlab程式

%Romberg積分法計算定積分 %參考教材:《數值分析》李乃成,梅立泉,科學出版社 %《計算方法教程》第二版 凌永祥,陳明逵 clear;clc;close all; format long % %被積函式為f(x)=4/(1+x^2);積分割槽間為[0,1] % b=1

雅可比迭代解線性方程組matlab程式

A=[4,3,0;3,4,-1;0,-1,4]; b=[24,30,-24]; x=jokebi(A,b); function  x2=jokebi(B,c) D=diag(diag(B)); U=D-triu(B); L=D-(triu(B))'; x1=(rand(1,

共軛梯度解線性方程組Matlab程式

%-------共軛梯度法解線性方程組----------- %---Conjugate Gradient method------- %參考教材《數值分析》李乃成&梅立泉,科學出版社2011 clear;clc; % A=[10,-1,-2;-1,10,-2;-1

牛頓迭代解非線性方程組MATLAB

牛頓迭代法,又名切線法,這裡不詳細介紹,簡單說明每一次牛頓迭代的運算:首先將各個方程式在一個根的估計值處線性化(泰勒展開式忽略高階餘項),然後求解線性化後的方程組,最後再更新根的估計值。下面以求解最簡單的非線性二元方程組為例(平面二維定位最基本原理),貼出原始碼: 1、

C程式設計案例矩形積分問題

矩形法求定積分問題 程式碼實現: #include<stdio.h> #include<math.h> float fsin(float x); float func(float (*p)(float),float a,float b

Romberg積分

1 實驗題目: 2 演算法組織: 2.1 演算法原理: 由梯形演算法可以推得: ,這裡h為2n個區間的步長,即h = (b - a) / 2n; 如果有2^n個相同的子區間,則上式變為: ,這裡hn為2^n個區間的步長,即hn = (b - a) / 2^n; 所以,對於R

C語言用矩形積分的通用函式,分別求 sinx, cosx,e^x

要求: 寫一個用矩形法求定積分的通用函式,分別求:sin(x),cos(x),e^x 。 分析: 矩形法,學過高等數學就知道化曲為直的思想。將定積分化為多個函式連續的和。基本思想是將區間[a,b]化成n等分,當n越大的時候結果越準確。圖形化成一小塊一小塊的矩形。底邊長都

龍貝格公式計算積分

1 #include<stdio.h> 2 #include<math.h> 3 #define maxlen 100 4 #define eps 0.5*1e-5 5 double a=0; 6 double b=1; 7 double f(double

積分定義求積分c++實現

#include<iostream>#include<cmath>using namespace std;double djf(double a,double b,int n);double fun(double x);int main(){    double a,b; int n;

二重積分計算 —— 交換積分順序exchange the order of integration

交換積分順序的訣竅在數形結合; 1. 幾句順口溜 後積先定限,限內穿條線,先交下限寫,後交上限見 先積 x,畫橫線(平行於 x 軸),右減左; 先積 y,畫豎線(平行於 y 軸),上減下

8.13 寫一個用矩陣積分的通用函式,分別求 sinx,cosx,exp(x)的積分

8.13 寫一個用矩陣法求定積分的通用函式,分別求 sinx,cosx,exp(x)的積分;個人程式碼如下:#include<stdio.h> #include<math.h>

Problem E: C語言習題 矩形積分

主函式已給定如下,提交時不需要包含下述主函式 /* C程式碼 */ int main() {     float integral(float (*p)(float),float a,float b,int n);     float a1,b1,a2,b2,a3,b3,c,(*p)(float);    

0042演算法筆記——【隨機化演算法】計算π值和計算積分

     1、計算π值 問題描述     設有一半徑為r的圓及其外切四邊形。向該正方形隨機地投擲n個點。設落入圓內的點數為k。由於所投入的點在正方形上均勻分佈,因而所投入的點落入圓內的概率為           。所以當n足夠大時,k與n之比就逼近這一概率。從而。    

用隨機投擲飛鏢計算Pi值Randomness Throwing dart Pi Python

targe .html def 技術分享 公開課 9.png pan turn div 畫一個邊長為r的正方形和半徑為r的四分之一的圓(如下圖所示),向上面隨機投擲飛鏢,通過計算落在星星區域和整體區域的飛鏢比例,即可求出π值。 公式推導如下: 假設正方形的邊長r

數值計算·第三集:求解方程的根Matlab

本集的數值案例如下: Example 1: syms p x r solve(p*sin(x) == r) %chooses 'x' as the unknown and returns ans =

hdu1724 自適應辛普森積分 求面積 積分

#include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #

山東大學數值計算實驗二matlab

實驗題目: 1、高斯消元法 Computer Problems P100 2.2,(a)(b) (1)用MATLAB語言提供的方法解方程組(x=A\b) (2)寫出直接LU分解函式(參考例2.13),給出A的直接LU分解結果

採用GAUSS列主消元求解線性方程組MATLAB

%%求解任意線性方程組的解 clc; clear all; format long e disp('線性方程組求解,請輸入引數'); n=input('維數n='); A=input('矩陣A='); b=input('右端項b='); eps=input('控制精度eps='); b=b';   %%變為列

山東大學數值計算實驗三matlab

1、Computer Problems P101 2.2 計算向量b的1範數、2範數、無窮範數。 計算A矩陣的1範數、2範數、無窮範數、條件數、F-範數。 (1)直接使用軟體環境提供的函式計算 用教材上定義程式設計計算 程式碼:

《大數據日知錄:架構與算》讀書筆記多圖

打通 導論 ges wid 技術分享 二次 思維 知識點 很好 第二次讀這本書,這次是精讀,畫了思維導圖。書很好,完整的知識結構和由淺入深的介紹,非常全面以至於知識點都梳理了三天。 作為導論式的總覽,對大數據領域有了個總體的認識,接下來可以更針對性地加強和實踐。 總體上