用牛頓迭代法求根。方程為ax^3+bx^2 +cx+d=0,系數a,b,c,d的值依次為1,2,3,4,由主函數輸人。求x在1附近的一個實根。求出根后由主函數輸出


用牛頓迭代法求根。方程為\(ax^3+bx^2 +cx+d=0\),系數a,b,c,d的值依次為1,2,3,4,由主函數輸人。求x在1附近的一個實根。求出根后由主函數輸出。

點我看視頻講解+可運行代碼,記得收藏視頻,一鍵三連

題目解析:

此題的難點並不是編程,主要是要理解數學公式的求解方法,理解之后代碼的實現並不困難。

代碼示例:

#include<stdio.h>
#include<math.h>

float solut(int a, int b, int c, int d)
{
	float x = 1, x0, f, f1;
	do
	{
		x0 = x;
		f = ((a*x0 + b)*x0 + c)*x0 + d;
		f1 = (3 * a*x0 + 2 * b)*x0 + c;
		x = x0 - f / f1;
	} while (fabs(x - x0) >= 1e-3);
	return(x);
}

int main()
{
	int a, b, c, d;
	printf("input a,b,c,d:");
	scanf("%d %d %d %d", &a, &b, &c, &d);
	printf("x=%10.7f\n", solut(a, b, c, d));
	return 0;
}

運行結果:

用牛頓迭代法求根。方程為ax3+bx2 +cx+d=0,系數a,b,c,d的值依次為1,2,3,4,由主函數輸人。求x在1附近的一個實根。求出根后由主函數輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM