簡易用C語言求方程式的根
最近有不少人向我求救,原因不外乎是學校的報告、作業,而其中最令人覺得有趣的,就是關於數值方法的程式撰寫的問題。而講到用電腦處理數學運算,大多數人的直覺一定是使用 MATLAB 來實作其程式。是的,課堂上所教所講的就是 MATLAB,在處理各種數學問題和方程式,MATLAB 都有完整的函式指令和功能,只要熟悉,可以很輕易的能夠達成各種數學任務。不過最好笑的是,教授雖然教的是 MATLAB,但考的卻是 C 和 Fortran,要求學生的報告、作業也都是 C 和 Fortran,這讓一群學生都傻了眼,不知道該怎麼辦。 先暫且不管課本中是否附有 MATLAB 的程式碼,對於一群只上過幾門程式語言課的人,仍然無法輕易將程式轉用 C 或 Fortran 來寫。像是這樣一個用C語言求方程式的根的程式,就是許多人的問題: #include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> #define F(x) sin(10*x)+cos(3*x) double f(double x) { return F(x); } int sign(double x) { if (x<0) return -1; else if (x>0) return 1; else return 0; } void incsearch(double xmin, double xmax, int ns) { int i,n; double space,current,ans; current = xmin; space = (xmax - xmin) / (ns-1); for (i=0;i<ns-1;i++) { if (sign(f(current))!=sign(f(current+space))) { printf("%.4f\t%.4f\n", current, current+space); } current += space; } } int main...