用復化梯形公式求定積分舉例(C++實現)
//復化梯形公式求定積分 //將[down,up]分成n等份(積分割槽間),子區間長度為h=(b-a)/n #include<iostream> #include<cmath> using namespace std; int main() { double up, down, a, b, c, n = 100; //積分割槽間被分為n等份 cout << "依次輸入積分上限up、積分下限down和函式引數a、b、c的值:" << endl; cin >> up >> down >> a >> b >> c; cout << endl; double h = (up - down) / n; //子區間長度,即迭代步長 double result, fx=0, fa, fb; //result積分最終結果 double x = 0; for (int i = 1; i <= n - 1;i++) { fx += c / (1 + a*pow(x, b)*sqrt(x)); x += (up - down) / n; } fa = c / (1 + a*pow(a, b)*sqrt(a)); fb = c / (1 + a*pow(b, b)*sqrt(b)); result = (h / 2)*(fa+2*fx+fb); cout << "步長h:" << h << endl; cout << "f(a):" << fa << endl; cout << "f(b):" << fb << endl; cout <<"result:"<< result << endl; return 0; }
積分上下限up和down、另外還有函式f(x)中的三個引數a、b和c可以根據需要設定。我只是隨便選了個函式而已,大家可以根據自己的需要自己設定,只要保證演算法正確的使用肯定是可以得出正確的結果的。
復化梯形公式是《數值分析原理》中的內容,不瞭解的可以百度一下。本例函式f(x):
f(x)=c/[(1+ax^b)*x^(1/2)]
相關推薦
用復化梯形公式求定積分舉例(C++實現)
//復化梯形公式求定積分 //將[down,up]分成n等份(積分割槽間),子區間長度為h=(b-a)/n #include<iostream> #include<cmath> using namespace std; int main() {
演算法設計--蠻力法&&分治法求最近對問題(C++實現)
最近對問題? 設p1=(x1,y1), p2(x2,y2), ....,pn=(xn,yn)是平面上n個點構成的集合S,最近對問題就是找出集合S中距離最近的點對。 兩種演算法思想: 1. 蠻力法:顧名思義,利用正常的思維,使用強硬的方式求解出結果。 2. 分治法:分治,分而
用高斯下降法解多元一次方程組(C++實現)
昨天演算法上機出了一道求多元一次方程組的題目,大神們早早就提交了,而我弄了很久,然而並不能在規定時間內完成。究其原因,是線性代數的知識已經忘光了。痛定思痛,我決定把這個題目弄出來,上傳到CSDN部落格,以警醒我日後仍需多加用功。 本文的程式碼涉及到以下幾個
復化梯形公式和復化Simpon公式計算積分的近似值
習題七 10.1 import numpy as np k=np.arange(0,9) xi=np.arange(0,1.1,0.125) yi=xi print(k) print(xi) for x in range(0,9): yi[x]=xi[x]/(1+xi[x]
用定積分定義求定積分(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;
求較大整數n的階乘,因為n較大時,n的階乘超出了正常類型的表示範圍,可以采用數組進行操作(c實現)
c語言 n階乘下面鏈接是java的實現,思路叫清晰點http://blog.51cto.com/6631065/2044441 #include <stdio.h> void Print_Factorial ( const int N ); int main() { int N; sc
利用泰勒公式求cosx的值(sinx類似)
如題:利用泰勒公式計算cos(x)的值,要求輸入x(弧度值),當精度小於10的-7次方時程 #include <stdio.h> #include <math.h> #define jingdu 1e-7 #define pi 3.1415926 un
caffe之網路權重視覺化(C++實現),分析網路功能 caffe之網路權重視覺化(C++實現)
原 caffe之網路權重視覺化(C++實現) 2017年05月05日 11:28:12 真小假 閱讀數:3083 &
用編寫一個簡單的記事本(C#實現)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using Syste
定位子串 (C語言)
題目描述 將子串在母串中第一次出現的位置找出來。 圖1:在母串中第pos個位置定位子串的演算法 圖2:從母串中第pos個位置獲得長度為len的子串 輸入描述 若干對字串,每對字串佔一行並用一個空格分開。前一個字串為母串,後者為子串。字串只包含英文字母的大小寫。每
hdu 2007 求奇數的乘積(C語言)
hdu 2007 求奇數的乘積 link 題目描述 Problem Description 給定一段連續的整數,求出他們中所有偶數的平方和以及所有奇數的立方和。 Input 輸入資料包含多組測試例項,每組測試例項包含一行,由兩個整數m和n組成。 Output 對
用牛頓方法解一元非線性方程的根(Matlab實現)
題目:用牛頓法求方程x-cos(x)=0的實根(精確到1E-6)。 (1)要求用函式呼叫。 (2)進一步研究和絃截法作比較。 演算法分析: (1) 此題是利用牛頓方法解一元非線性方程的根。(牛頓法是把非線性方程區域性線性化的一種方法,它在單根附近具有較高的收
求字串中子串出現的次數(c++實現)
題目如題目所示。 程式碼如下:int findSubStringNUM(const char* targetString,const char* subString){ assert(NULL!=targetString||NULL!=subString); int i
遞迴演算法求老鼠走迷宮(C語言)
/*說明老鼠走迷宮是遞迴求解的基本題型,我們在二維陣列中使用2表示迷宮牆壁, 使用1來表示老鼠的行走路徑,試以程式求出由入口至出口的路徑。 解法老鼠的走法有上、左、下、右四個方向,在每前進一格之後就選一個方向前進, 無法前進時退回選擇下一個可前進方向,如此在陣列中依序測
字元定位--函式指標 + cal(f, a, b)用梯形公式求函式f(x)在[a, b]上的數值積分
字元定位 #include<stdio.h> char *match(char *s, char ch); int main(void){ char ch, str[80],*p = NULL; scanf("%s", str); getcha
用矩形法(梯形法)求定積分
分析: 高中的時候,我們學習過,可以通過矩形法或者矩形法來求定積分。 思路就是將積分割槽間劃分成n等份,然後將這n等份近似看成矩形(或梯形),然後對所有的矩形(或梯形)的面積進行求和。 簡單的例子: 求函式X^2在的定積分 矩形法: #include<iostrea
C語言用矩形法求定積分的通用函式,分別求 sinx, cosx,e^x
要求: 寫一個用矩形法求定積分的通用函式,分別求:sin(x),cos(x),e^x 。 分析: 矩形法,學過高等數學就知道化曲為直的思想。將定積分化為多個函式連續的和。基本思想是將區間[a,b]化成n等分,當n越大的時候結果越準確。圖形化成一小塊一小塊的矩形。底邊長都
微分求積:復化梯形、復化辛浦生
復化梯形 將積分割槽間[a,b]劃分n等分,步長,求積節點,在每個小區間上應用梯形公式 然後將它們累加求和,作為所求積分I的近似值. 記 式為復化梯形求積公式,下標n表示將區間n等分。 演算法流程 演算法程式碼 double
8.13 寫一個用矩陣法求定積分的通用函式,分別求 sinx,cosx,exp(x)的積分;
8.13 寫一個用矩陣法求定積分的通用函式,分別求 sinx,cosx,exp(x)的積分;個人程式碼如下:#include<stdio.h> #include<math.h>
用python 求定積分(常義積分篇)
根據數學分析書上的介紹,我把求解常義積分的各種方法的程式碼寫下:from numpy import* a,b,n,sum=-1,1,10,0 #寫出函式表示式 def f(x): return exp(x) #分為小矩形求和 #1.定義法 def defi(n)