| 24小時(shí)熱門版塊排行榜 |
| 5 | 1/1 | 返回列表 |
| 查看: 944 | 回復(fù): 5 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
[求助]
關(guān)于二分法 已有3人參與
|
|||
|
請(qǐng)教一下大家: 我的程序大概是這樣: 對(duì)一個(gè)某個(gè)變量第一個(gè)節(jié)點(diǎn),先估一個(gè)值,然后按照這個(gè)值使用循環(huán),一直算到最后一個(gè)節(jié)點(diǎn),最后一個(gè)節(jié)點(diǎn)需滿足某個(gè)條件, 想用二分法做,但是由于有循環(huán),不知道函數(shù)該怎么寫 這個(gè)程序該怎么編啊 |
程序 |
禁蟲 (小有名氣)
|
本帖內(nèi)容被屏蔽 |
至尊木蟲 (知名作家)
|
http://edisonshih.pixnet.net/blog/post/30455128-%5bc語(yǔ)言數(shù)值分析%5d-方程式求解---bisector%28二分法%29 // ================================== // filename: BiSector.cpp // use bisector method to find solution // author : Edison.Shih. // Date : 2010.3.6 // ** all rights resever ** // ================================== #include <stdio.h> #include <stdlib.h> #include <math.h> #define SMALL (double)(10E-4) #define NO_FIND_NUM (double)(-9999.0) // ======================================= // f(x) = x^3 + 2x^2 -5x +1, // have sol at (-4, -3), (0,1), (1, 2) double func(double x){ return (x*x*x + 2*x*x - 5*x + 1); } // ======================================= double bisector(double (*fptr)(double), double low, double high, double small) {// small: error rate double x = (low+high) / 2.0; double xvalue = 0.0; // f(x) = f( (h+low)/2 ) double hvalue = 0.0; // f(h) double lvalue = 0.0; // f(low) int times = 0; //printf("==========================\n" ;do{ xvalue = (*fptr)(x); hvalue = (*fptr)(high); lvalue = (*fptr)(low); /* printf("==========================\n" ;printf("%d times:\n", times++); printf("L :%8.4lf,H :%8.4lf,X :%8.4lf\n", low, high, x); printf("f(L):%8.4lf,f(H):%8.4lf,f(X) :%8.4lf\n", lvalue, hvalue, xvalue); */ if(xvalue>0 && lvalue>0 && hvalue<0) low = x; else if(xvalue>0 && lvalue<0 && hvalue>0) high = x; else if(xvalue<0 && lvalue>0 && hvalue<0) high = x; else if(xvalue<0 && lvalue<0 && hvalue>0) low = x; else return (NO_FIND_NUM); // no find ans x = (high + low) / 2; }while(fabs(xvalue) > small); // printf("==========================\n" ;return x; } // ======================================= int main(int argc, char **argv) { double sol = 0.0; for(double x=-5.0; x<=5.0; x=x+1.0) { sol = bisector(func, x, x+1.0, SMALL); printf("sol at (%.0lf,%.0lf):",x,x+1); if(sol==NO_FIND_NUM) { printf("no find sol\n" ;} else { printf("%.4lf\n",sol); } } return 0; } |
新蟲 (小有名氣)
|
《算法導(dǎo)論》: http://pan.baidu.com/share/link? ... mp;amp;uk=540980231 司守奎《建模算法與應(yīng)用》: http://pan.baidu.com/share/link? ... mp;amp;uk=540980231 發(fā)自小木蟲Android客戶端 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 南京大學(xué)化學(xué)調(diào)劑 +9 | 景隨風(fēng) 2026-03-29 | 14/700 |
|
|---|---|---|---|---|
|
[考研] 283求調(diào)劑(080500) +7 | A child 2026-03-27 | 7/350 |
|
|
[考研] 化學(xué)工程085602 305分求調(diào)劑 +22 | RichLi_ 2026-03-25 | 22/1100 |
|
|
[考研] 329求調(diào)劑,一志愿西北工業(yè)大學(xué),材料工程(085601) +4 | 小小機(jī)靈蟲 2026-03-29 | 10/500 |
|
|
[考研] 085600 材料與化工 329分求調(diào)劑 +14 | Mr. Z 2026-03-25 | 14/700 |
|
|
[考研] 一志愿:西北大學(xué),英一數(shù)一408-284分求調(diào)劑 +4 | 12.27 2026-03-27 | 4/200 |
|
|
[考研] 340求調(diào)劑 +6 | Amber00 2026-03-26 | 6/300 |
|
|
[考研] 298求調(diào)劑 +3 | 種圣賜 2026-03-29 | 3/150 |
|
|
[考研] 調(diào)劑求院校招收 +6 | 鶴鯨鴿 2026-03-28 | 6/300 |
|
|
[考研] 0703化學(xué)/290求調(diào)劑/本科經(jīng)歷豐富/工科也可 +9 | 丹青奶蓋 2026-03-26 | 10/500 |
|
|
[考研] 085404求調(diào)劑,總分309,本科經(jīng)歷較為豐富 +4 | 來(lái)財(cái)aa 2026-03-25 | 4/200 |
|
|
[考研] 328求調(diào)劑 +7 | 嗯滴的基本都 2026-03-27 | 7/350 |
|
|
[考研] 266求調(diào)劑 +11 | 陽(yáng)陽(yáng)哇塞 2026-03-27 | 12/600 |
|
|
[考研] 求調(diào)劑323材料與化工 +7 | 1124361 2026-03-24 | 7/350 |
|
|
[考研] 327求調(diào)劑 +7 | prayer13 2026-03-23 | 7/350 |
|
|
[考研] 材料考研求調(diào)劑 +3 | Dendel 2026-03-23 | 6/300 |
|
|
[考研] 機(jī)械學(xué)碩310分,數(shù)一英一,一志愿211本科雙非找調(diào)劑信息 +3 | @357 2026-03-25 | 3/150 |
|
|
[考研] 0854AI CV方向招收調(diào)劑 +4 | 章小魚567 2026-03-23 | 4/200 |
|
|
[考研] 282求調(diào)劑 +3 | wcq131415 2026-03-24 | 3/150 |
|
|
[考研] 336化工調(diào)劑 +4 | 王大坦1 2026-03-23 | 5/250 |
|