1. 无理数和有理数的定义
实数可以简单的分为有理数和无理数,有理数都可以采用分数 (其中 a 和 b 都是互质的整数)表示;而无理数不可以使用分数表示,并且无理数是无限不循环小数。
2. 根号2是无理数的证明过程
目前常见的证明是无理数的证明方法是反证法,证明的过程如下
证明: 假设是有理数,那么根据有理数的定义,可以表示互质整数的分数形式,即 =
由于 = (1)
将等式(1)两边同时平方可得
(2)
等式(2)可以化简为
(3)
由等式(3)可知, 必为 2 的倍数,那么 必为偶数, 又满足以下等式(4)的关系
(4)
已知 为偶数,那么a必然也为偶数。因为如果为奇数的话,两个奇数相乘的结果 也必为奇数,因此为偶数。
同时根据等式(2)可以转化为以下等式(5)的形式
(5)
由前文中的等式(3)和等式(4)我们可得 为偶数, 那么 必然为2的倍数,所以必然是4的倍数。那么根据等式(5)我们可以得到 也为2的倍数(偶数),那么 b 也为偶数。
我们得到a和b都是偶数,那么a和b之间就不满足互质的关系,那么由此我们可以得到和假设冲突的矛盾,即不是有理数。
3. C#代码求解根号二的值
3.1 环境搭建
(1) windows 10 系统
(2)vistual stidio 19 软件
(3)控制台程序
3.2 牛顿迭代法求解
牛顿迭代法是常见的求解方程的数值计算方法,我们先作出以下函数
然后根据牛顿迭代法求解
引入迭代初始值 x0=0.5;
3.3 全部源代码
全部源代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace 根号2的迭代法求解
{
class Program
{
/// <summary>
/// 求解函数f(x)=x^2 - 2 的值
/// </summary>
/// <param name="x"></param>
/// <returns></returns>
static double fx_x2_2(double x)
{
double a = Math.Pow(x, 2) - 2;
return Math.Pow(x,2)-2;
}
/// <summary>
/// 求解fx的倒数
/// </summary>
/// <param name="x"></param>
/// <returns></returns>
static double diff_fx(double x)
{
return 2*x;
}
static void Main(string[] args)
{
// 定义变量
double xk = 0.5; // 迭代第k次的值,第一次迭代值为0.5
double xk_1 = 0; // 迭代第k+1次的值
double error = 0; // 设置计算误差
// 设置迭代次数
int iter = 1000;
for(int i=0;i<iter;i++)
{
// 求解第xk+1次
xk_1 = xk - (fx_x2_2(xk) / diff_fx(xk));
error = xk_1 - xk;
Console.WriteLine("迭代第{0}次,通过迭代法求解迭代值为xk_1为{1},误差值小于{2}", i+1, xk_1, error);
Thread.Sleep(10);
xk = xk_1 ;
}
Console.ReadKey();
}
}
}
3.4 代码演示结果
计算结果,笔者通过牛顿迭代法设置1000次迭代次数,迭代初始值记为0.5。迭代结果为1.4142135623731。这CSDN自带的公式编辑器太难用了,我后面直接用word公式的图片插入吧。
标签:无理数,迭代,double,中是,偶数,等式,using,根号 From: https://blog.csdn.net/FakerS3S5S6/article/details/139752811