c語言微積分函數庫,c語言求函數積分

本文目錄一覽:

c語言常用庫函數有哪些

最低0.27元/天開通百度文庫會員,可在文庫查看完整內容

原發布者:shimingtime

附錄CC語言常用的庫函數庫函數並不是C語言的一部分,它是由編譯系統根據一般用戶的需要編製並提供給用戶使用的一組程序。每一種C編譯系統都提供了一批庫函數,不同的編譯系統所提供的庫函數的數目和函數名以及函數功能是不完全相同的。ANSIC標準提出了一批建議提供的標準庫函數。它包括了目前多數C編譯系統所提供的庫函數,但也有一些是某些C編譯系統未曾實現的。考慮到通用性,本附錄列出ANSIC建議的常用庫函數。由於C庫函數的種類和數目很多,例如還有屏幕和圖形函數、時間日期函數、與系統有關的函數等,每一類函數又包括各種功能的函數,限於篇幅,本附錄不能全部介紹,只從教學需要的角度列出最基本的。讀者在編寫C程序時可根據需要,查閱有關係統的函數使用手冊。1.數學函數使用數學函數時,應該在源文件中使用預編譯命令:#include或#include”math.h”2.字元函數在使e68a84e8a2ade799bee5baa631333433623761用字元函數時,應該在源文件中使用預編譯命令:#include或#include”ctype.h”3.字元串函數使用字元串中函數時,應該在源文件中使用預編譯命令:#include或#include”string.h”4.輸入輸出函數在使用輸入輸出函數時,應該在源文件中使用預編譯命令:#include或#include”stdio.h”5.動態存儲分配函數在使用動態存儲分配函數時,應該在源文件中使用預編譯命令:#include或#include”stdlib.h”6.其他函數有些函數由於不便歸入某一類,所以單獨列出。使用這些

c語言編程- 微積分程序

辛普森法

#include stdio.h

#include math.h

#define F(X) (4.0/(1+X*X))

static float EPS = 1.0E-14;

static int COUNT=1;

static double a=0.0, b=1.0;

static double M[32],T[32],S[32],C[32],R[32],E[32];

double GETM(int K)

{ unsigned long j,n=1;

double x=0,y=0,step=0;

for(j=0;jK;j++) n*=2;

step = (b-a)/n;

x = a+step/2;

for(j=0;jn;j++){y+=F(x);x+=step;}

return (y*step);

}

Simpson(float EPS)

{ int k=0;

T[0]= (b-a)*(F(a)+F(b))/2.0;

S[0]=T[0];

E[0]=1.0E10;

for(k=0;k20;k++)

{ M[k] = GETM(k);

T[k+1]=(M[k]+T[k])/2.0;

S[k+1]=(4.0*T[k+1]-T[k])/3.0;

COUNT++;

E[k+1]=fabs(S[k+1]-S[k]);

if(k3)continue;

if(E[k+1]EPS)break;

}

return;

}

ShawResult()

{ int k;

system(“cls”);

printf(“\n K M[K] T[K] S[K]”);

printf(” E[K]”);

printf(“\n——————————————-“);

printf(“———————————–“);

for(k=0;kCOUNT;k++)

printf(“\n%2d %20.15lf%20.15lf%20.15lf%12.4e”,k,M[k],T[k],S[k],E[k]);

printf(“\n——————————————–“);

printf(“———————————–“);

getch();

system(“cls”);

return;

}

SaveResult()

{ int k;

FILE * fp;

fp=fopen(“Simpson.htm”,”w”);

if(!fp) return;

fprintf(fp,”htmlhead/head”);

fprintf(fp,”body bgcolor = #006699 text = #FFff00″);

fprintf(fp,”prefont size=\”6\””);

fprintf(fp,”\n K M[K] T[K] S[K]”);

fprintf(fp,” E[K]”);

fprintf(fp,”\n———————————————-“);

fprintf(fp,”———————————-“);

for(k=0;kCOUNT;k++)

fprintf(fp,”\n%2d %20.15f%20.15f%20.15f%12.4le”,k,M[k],T[k],S[k],E[k]);

fprintf(fp,”\n———————————————-“);

fprintf(fp,”———————————-“);

fprintf(fp,”/pre/font/body”);

fclose(fp);

return;

}

main()

{ Simpson(EPS);

ShawResult();

SaveResult();

}

用C語言實現微積分計算

C沒有自帶的微積分函數,只能靠數值方法來估算值,求不出準確答案。

c++的編程語言中有微積分 導數 距陣等高等數學方面的函數嗎

首先說明一下,C和C++語言為了保證自己語言的簡潔性。語言本身不含任何函數,其中包括著名的printf函數(這都不屬於c語言範疇).

c語言的一些函數,是由庫的形式提供,比如math.h提供的數學庫,stdio.h提供的基本io庫。

目前倒是沒有比較權威的高等數學函數。如果樓主有興趣,可以自己補充這方面。或者找相對較完善的庫。

用C語言計算微積分?

我給一樓加的注釋以及修改:

#includestdio.h

#includemath.h

#define ARRAYBOUND 10001

void main()

{

int i = 0; //輔助變數,最常見那種

int n = 0; //將所求定積分函數曲線在x軸方向,平均分成n等分;n越大,結果越精確;不過限於此演算法限制nARRAYBOUND,否則溢出.

float x[ARRAYBOUND];//ARRAYBOUND維浮點數組,存放離散的x坐標值

float y[ARRAYBOUND];//ARRAYBOUND維浮點數組,存放每個x坐標對應的函數值;x[i],y[i]滿足y[i]=f(x[i]),f是你要求定積分的函數

float x0 = 0.0; //定積分下限

float xn = 0.0; //定積分上限

float h = 0.0; //面積微元寬度

float J = 0.0; //輔助變數

/*f=x^3*/ //這裡說明要求定積分的是函數f(x)=x*x*x;(y等於x的立方,x^3是vb的寫法)

// printf(“input x0,xn,n:”);

printf(“請分別輸入下限(x0),上限(xn),精度(n):”);

scanf(“%f”,x0);

scanf(“%f”,xn);

scanf(“%d”,n);

h=(xn-x0)/n;//將函數圖形在x方向平分成n份,h是每個面積微元的寬度

x[0]=x0; //將積分下限賦值給x[0]

for(i=0;i=n nARRAYBOUND;i++)

{

x[i]=x[0]+i*h; //計算n個離散的橫坐標值,存入x[]數組

y[i]=(float)pow(x[i],3);//計算n個橫坐標對應的函數值,存入y[]數組。在此可以改變要求積分的函數

}

// J=0.0;

for(i=0;in;i++)

{

//J=J+y[i]+y[i+1];

J+=y[i];//將所有縱坐標值代數相加,存入J

}

//J=J*h/2.0;

J=J*h;//所有微元面積一次求解,因為∑h*y[i]=h*∑y[i];

printf(“\nn=%d \n所求定積分值是: %f\n”,n,J);

}

我將//J=J+y[i]+y[i+1]改為J+=y[i];將//J=J*h/2.0;改為J=J*h只是幫助lz理解

其實,這兩種表達在理論上是等價的,不過我發現修改後,在n同樣大小的情況下,結果的精度有一點點下降,還真不知為什麼???

這樣的話lz應該能理解了吧,其實一樓的演算法還有不少值得改進的地方,希望lz能有所突破!!

怎樣編寫c語言積分函數

積分分為兩種,數值積分,公式積分。

公式積分:部分函數可以直接用公式求得其不定積分函數。C語言中可以直接用積分公式寫出其積分函數。

數值積分:按照積分的定義,設置積分範圍的步長,用梯形面積累加求得其積分。

以【f(x)=x*sin(x) 從1到2的積分】為例:

#include math.h

#include stdio.h

double integral(double(*fun)(double x),double a,double b,int,n){

   double s,h,y;

   int i;

   s=(fun(a)+fun(b))/2;

   h=(b-a)/n; /*積分步長*/

   for(i=1;in;i++)

   s=s+fun(a+i*h);

   y=s*h;

   return y;/*返回積分值*/

}

double f(double x){

    return(x*sinx)  /*修改此處可以改變被積函數*/

}

int main(){

   double y;

   y=integral(f,1.0,2.0,150);/*修改此處可以改變積分上下限和步數,步長=(上限-下限)/步數*/

   printf(“y=%f\n”,y);

   return 0;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237782.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:08
下一篇 2024-12-12 12:08

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論