c
語言——求根;計算機只識別0和
1,那麼問題來了,作為計算工具如何解決數學問題?其實,計算機是死東西,都是程式設計師用計算機的的思維去加數學公式計算數學題的。
聽起來好高階的樣子,其實啊,也就那麼回事兒,
請看~~
求平方根,也許你會說,這還不簡單直接呼叫
square
函式就好了,這個還用說麼?可是我若問你那麼
square
函式是如何實現求平方根的呢?怎麼樣是不是沒那麼簡單呢?且看:
數學公式為x(n+1)=1/2*(x(n)+a/x(n));
演算法如下:
1)設定乙個
x0的值;
2)用上述公式求出
x的下乙個值x1;
3)再將
x1帶入上述公式右側的
xn,求出下乙個
xn+1
4)如此繼續下去知道最後兩次求出的
x的值(xn和
xn+1
)滿足關係:
|xn+1-xn|<10e-5;
為了便於說明,現用x0
和x1,
先令初值
x0=a/2
;求出x1
,源**如下:
#include#includeint main()執行截圖:while(fabs(x0-x1)>=10e-5);
printf("the square root of %5.2f is %8.5f\n",a,x1);
return 0;
}
又稱牛頓切線法:先任意設定乙個與真實根接近的x0作為第一次近似根,由x0求出f(x0),過點(x0,f(x0))作f(x)的切線,交x軸於x1,把x1作為第二次近似根,再過x1作點(x1,f(x1))的切線交x軸於x2,如此繼續,直到接近真實根x為止,由此可得下
公式:x1=x0-f(x0)/f『(x0)這就是牛頓迭代公式。例如求2x^3-4x^2+3x-6=0的根
f(x)=2x^3-4x^2+3x-6 變形為f(x)=((2x-4)x+3)x-6 進一步f』(x)=6x^2-8x+3=(6x-8)+3
用這種方法表示的表示式在運算時可以節省時間,由原來的多次指數運算改為乘法和加法運算。源**如下:
#include#includeint main()執行截圖:while(fabs(x1-x0)>=10e-5);
printf("the root of 2x^3-4x^2+3x-6=0 is %5.2f\n",x1);
return 0;
}
說說部落格的那些事兒
adversity leads to prosperity.窮則思變 讀書的時候,經常看別人都讀的輕輕鬆鬆的,還拿個高分,自己累死累活的,卻依然成績平平不見起色的時候,便很羨慕別人,私下裡留心別人是怎麼看書學習的,課下找他們玩,跟他們聊聊學習上的這些事兒 別人怎麼做我怎麼做,時間長了,發現比之前更累...
C語言那些事兒
專案名稱 蘇嵌實訓 嵌入式linuxc第3天 今日進度以及任務 學習了c語言的基本知識 本日任務完成情況 掌握了c語言的基本知識 本日開發 現的問題彙總 c語言中的細節問題要注意 本日未解決的問題 無本日開發收穫 進一步熟悉了c語言其他無 c語言1 c語言之父?丹尼斯里奇 2 c的特點 優勢 語言標...
說說Socket的那些事兒 上
兩個計算機通訊的過程,就像兩個人打 一樣 socket 套接字 socket又稱 套接字 應用程式通常通過 套接字 向網路發出請求或者應答網路請求。為網路服務提供一種機制 網路通訊其實就是socket之間的通訊 資料在兩個socket之間通過io傳輸 socket是純c語言的,是跨平台的 http基...