如何用C語言寫f(x)=exp(-X)-X 的根
超級緊急
請大大幫忙
小弟才剛學程式語言
但不幸的
卻要寫這麼難的作業
基礎都不好
只學了2小時
請大大幫幫我
以後的路我會好好走下去
2007-03-20 19:16:48 · 2 個解答 · 發問者 自由 1 in 電腦與網際網路 ➔ 程式設計
#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⤋