1、猴子吃桃问题。猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上再想吃时,就只剩下一个桃子了。求第一天共摘多少个桃子?
主要代码:
int x = 1; for (int i = 10; i > 1; i--) { x = (x + 1) * 2; } Console.WriteLine("第一天摘了{0}个桃子。", x); Console.ReadLine();
结果:
2、用迭代法求。求平方根的迭代公式为。要求前后两次求出的x的差的绝对值不能超过10-5。
主要代码:
Console.Write("请输入:"); double a = double.Parse(Console.ReadLine()); double x0 = a / 2; double x1 = (x0 + (a / x0)) / 2; for (; Math.Abs(x1 - x0) >= 1e-5; ) { x0 = x1; x1 = (x0 + (a / x0)) / 2; } Console.WriteLine(x1); Console.ReadLine();
结果:
3、用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。
主要代码:
double x0 = 0; double x1 = 1.5; for (; Math.Abs(x1 - x0) >= 1e-5; ) { x0 = x1; x1 = x0 - ((2 * x0 * x0 * x0 - 4 * x0 * x0 + 3 * x0 - 6) / (6 * x0 * x0 - 8 * x0 + 3)); } Console.WriteLine(x1); Console.ReadLine();
结果:
4、用二分法求上题方程2x3-4x2+3x-6=0在(-10,10)之间的根。
主要代码:
while (true) { Console.Write("请输入x1=:"); double x1 = double.Parse(Console.ReadLine()); Console.Write("请输入x2=:"); double x2 = double.Parse(Console.ReadLine()); double x0 = 0; double fx0 = 2 * x0 * x0 * x0 - 4 * x0 * x0 + 3 * x0 - 6; double fx1 = 2 * x1 * x1 * x1 - 4 * x1 * x1 + 3 * x1 - 6; double fx2 = 2 * x2 * x2 * x2 - 4 * x2 * x2 + 3 * x2 - 6; if (fx1 * fx2 < 0) { for (; Math.Abs(fx0) >= 1e-5; ) { x0 = (x1 + x2) / 2; fx0 = 2 * x0 * x0 * x0 - 4 * x0 * x0 + 3 * x0 - 6; if (fx0 * fx1 < 0) { x2 = x0; fx2 = fx0; } else { x1 = x0; fx1 = fx0; } } } Console.WriteLine(x0); } Console.ReadLine();
结果: