English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

如何用C語言寫f(x)=exp(-X)-X 的根

超級緊急

請大大幫忙

小弟才剛學程式語言

但不幸的

卻要寫這麼難的作業

基礎都不好

只學了2小時

請大大幫幫我

以後的路我會好好走下去

2007-03-20 19:16:48 · 2 個解答 · 發問者 自由 1 in 電腦與網際網路 程式設計

2 個解答


#include
#include

double f(double);

int main()
{
double x;

printf("input x0:");

scanf("%lf",&x);
printf("\nSol: %f",f(x));

}


double f(double x)
{
double xn = x;

double rev;
/*
xn 1 = xn - f(xn)/f'(xn)

f(x) = exp(-x) - x
f'(x) = -exp(-x) -1

*/

int i = 0;

do
{

rev = xn;
printf("x%d = %f\n",i ,xn);

xn = xn - ((exp(-xn) - xn)/(-exp(-xn) - 1.0));

}while(fabs(rev-xn) > .0);

return xn;
}


原理看這裡,只是式子不同而已

2007-03-21 05:14:27 補充:
http://tw.knowledge.yahoo.com/question/question?qid=1106111204950

上面的 link 好像沒寫好 -_-"

2007-03-21 11:30:26 補充:
那個 printf() 裡面的 i 有遞增..

2007-03-21 01:11:48 · answer #1 · answered by 鳳琳 5 · 0 0

電腦不會幫你解!!!
除非你會解!!
所以,你要知道怎麼解它!

最簡單、最標準的(而且剛好速度很快),就是牛頓法。

去看書:牛頓法。

不然,就算有人幫你寫出來,你還是 10 頭霧水!!

加油! ^_^

(我在期末考,不然就幫你寫點。)

2007-03-20 21:13:19 · answer #2 · answered by ? 7 · 0 0

fedest.com, questions and answers