1樓:c__生活
呵呵 求導函式 。。
c語言裡有常用的函式比較簡單,對於單一專案簡單函式直接套用數學公式就可以了。
而多項式函式就比較麻煩了 ,,還有復合函式本身求導過程就複雜。
如果你要實現任意形式的函式求導的話,必須完成正則表達函式提取出單項式,如有單項復合的情況下還要一一拆解,,直到能用數學公式求導的最基本函式才行!
還可以用同樣的方法完成定積分的計算。
實現王能推導函式的過程需要多個演算法的有機結合才行。。
就3步:一:運用正規表示式演算法把函式的每一項抽取出來,對應簡單多項情況二:運用正規表示式演算法把函式的每一項子項抽取出來,並建立父子關係,,對於復合函式。
三:用數學公式求導。
用程式最難實現的就是前兩相。
2樓:小小劉加成
是符號函式,不是數值的。
3樓:匿名使用者
請問導什麼呢 數學不太好。
求乙個用c語言編寫的對函式f(x)=sinx進行求導的程式 20
4樓:匿名使用者
//只能求解制定點的導數。
#include
#include
double dy_dx(double x,double dx)int main()
5樓:c__生活
你是說求這個函式的導數還是這個函式的c語言實現過程?
用c語言如何編寫函式的求導
6樓:匿名使用者
求導數有兩種,一種是表示式求導,一種是數值求導。
表示式求導:需要對表示式進行詞法分析,然後用常見的求導公式進行演算,求得導函式。在這方面,數學軟體matrix,maple做得非常好。如果自己用c進行程式設計,不建議。
數值求導:利用導數的定義,用差分計算,當自變數趨於0時,前後兩次差分收斂到需要精度,計算結束。這種方法可以求得某一點的導數。
例如:求一階導數,原函式 y = f(x), 程式中是float f(float x)
dx=; 設 dx 初值。
dowhile (fabs(dd1-dd2) >1e-06) /判斷新舊導數值之差是否滿足精度,滿足則得結果,不滿足則返回。
7樓:戈壁與清潭
將先用演算法將 f(x)拆分成最基本的求導函式 f(x)=f1(x)+f2(x)+.
然後使用最基本的函式求導公式求。
這種程式比較麻煩,呵呵。
c語言怎麼編求導
8樓:小夏在深圳
編求導的源**如下:
#include <
#include <
void main()
int n;
int i;
int *p;
printf("請輸入最大值的次數");
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);
printf("請依次輸入多項式的係數");
for(i=0;iscanf("%d",p+i);
for(i=0;i
9樓:天方夜譚的哆啦a夢
//多項式求導數。
for(iter=;iter!=;iter)
if((*iter).ex>1)
(*iter).coef=((iter).coef)*(iter).ex);
(*iter).ex=(*iter).ex-1;
elseif(1==(iter).ex)(*iter).ex=0;
elseif(0==(iter).ex)(*iter).coef=0;
returnret_ok;
其中,多項式的定義是list,如下:
//多項式節點結構體定義。
typedefstructstupolynomnodedoublecoef;
intex;
}nodepoly;
10樓:問明
#include
#include
void qiudao(float *a,int n) /求導的各個係數的值,s為求導的次數。
int i;
n--;for(i=0;i<=n;i++)
a[i]=a[i+1]*(i+1);
void display_daoshu(float *a,int n,int s) /顯示s次求導後的函式。
//當係數為0時,不操作if(*(a+i)==1)
elseif(*(a+i)==1)//當係數為1時,顯示格式為「x^次數+」
if(i==0||i==1)
if(i==0)
printf("%g+",a+i));當次數為0時,顯示格式為「係數+」
if(i==1)
printf("%g*x+",a+i));當次數為1時,顯示格式為「係數*x+」
elseprintf("x^%d+",i);
elseif(i==0||i==1)
if(i==0)
printf("%g+",a+i));當次數為0時,顯示格式為「係數+」
if(i==1)
printf("%g*x+",a+i));當次數為1時,顯示格式為「係數*x+」
elseprintf("%g*x^%d+",a+i),i); 當次數不為0或1是,顯示格式為「係數*x^次數+」
printf("\b\t\t");去掉多餘的「+」符號,int main()
double x=,y; /y=x-f(x)/f'(x)
int n,i; /次數最大的值。
int s=0;//求導次數。
float a[100];
system("color 0c");
printf("請輸入最大次數的值:")
scanf("%d",&n);
for(i=0;i<=n;i++)
printf("請輸入次數為%d的係數:",i);
scanf("%f",a+i);
printf("\t\t原函式為/")
display_daoshu(a,n,s);
printf(""
printf("請輸入求導的次數s:")
scanf("%d",&s);
for(i=0;iqiudao(a,n,s);
--n;printf("\t\t");
display_daoshu(a,n,s);
return 0;
舉例輸出:
11樓:tx艾弗森
float f(float x,float y)你定義的時候是浮點型,而且你之後的確有小數,所以你後面 long double 應該改成float,還有printf("%d",dd2);把%d改成%f
12樓:網友
你定義的f的兩個引數是float型,在main函式中f的引數又變成long double型了,明顯不對。
13樓:匿名使用者
if (fabs(dd1-dd2)printf("%lf",dd2);/dd2為實型double,要使用lf格式輸出。
14樓:匿名使用者
#include
#include
//此處函式定義的時候 返回值和引數型別都是float,最好改為double,與主程式相對應。
float f(float x,float y)void main(),則不需要變數y
dy=f(x0,y)-f(x0+dx,y);
dd1=dy/dx;
loop: dx=;
dy=f(x0,y)-f(x0+dx,y);
dd2=dy/dx;
if (fabs(dd1-dd2)//如果想列印整數,則需要將dd2先強制性轉換成int型,即 printf("%d", int)dd2 );
else }
如何用c語言編寫乙個求任意初等函式的復合函式的一階導數的程式
如何用c語言求函式導數 10
15樓:小兆
導數,就是微分,也就是在x點曲線的切線的斜率,還等於在x點附近兩個點的連線的斜率,當這兩個點無限接近。
就用兩個很接近的x值代入原函式,求解出兩個函式值,然後求這兩個點的斜率。
如何用c語言編寫求任意初等函式的復合函式的一階導數的程式
求乙個用c語言編寫的程式!!!要解決實際的問題!!!!!
怎樣用c語言實現對方程求導
用C語言編寫程式,用C語言編寫三個程式
第一題 include include include include void fun char str,char c intmain void fun char str,char c 第三題 include include define n 4 typedef structshu intmain...
用c語言編寫12320?的程式,用C語言編寫1!2!3!20!?的程式
include int fun int int main printf d n sum 輸出算式結果return 0 int fun int i 階乘函式 採用函式遞迴呼叫return 1 include void main printf d n sum include include long l...
c語言編寫通訊錄管理系統,用C語言編寫乙個通訊錄管理系統
是否可以用c 寫呢 c語言,編寫乙個簡單的通訊錄管理系統?實現乙個通訊錄管理系統 通訊錄管理系統可以用來儲存1000個人的資訊,每個人的資訊包括 姓名 性別 年齡 住址 提供方法 1.新增聯絡人資訊 2.刪除指定聯絡人資訊 3.查詢指定聯絡人資訊 4.修改指定聯絡人資訊 5.顯示所有聯絡人資訊 6....