JAVA泰勒展开式子求圆周率近似值 java
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA泰勒展开式子求圆周率近似值 java相关的知识,希望对你有一定的参考价值。
公式为4*(1-1/3+1/5-1/7+1/9-1/11+.....)来取的圆周率的近似值,并计算得到3.14159之前,这个数列要取到第几项?
参考技术A import java.util.Scanner;public class Yuanzhoulv
public static void main(String[] args)
double PI = 0.0;
double pi = 0.0; //暂时存储计算结果
int m=0; //计算控制
Scanner s = new Scanner(System.in); //输入流
System.out.println("请输入循环次数:");
int k = s.nextInt(); //记录循环次数
for(int i=1;i<=k;i++)
if(m==0)
pi = pi + (double)1/(2*i-1);
m = 1;
else
pi = pi - (double)1/(2*i-1);
m = 0;
PI = 4* pi;
System.out.println("PI="+PI);
设定了输入循环次数,多循环几次更精确,笔者试验,1000次才刚刚算到3.14。
你可以用这个程序实验一下。 参考技术B public class PI
public static void main(String[] args)
double pi = 0.0; //暂时存储计算结果
int k=1,i=1;
while(true)
pi = pi + (double)(k*1d/(2*i-1));
if(Math.abs(4*pi-3.14159)<0.000001)
break;
i++;
k*=-1;
System.out.println("After "+ i + " times, PI="+(4*pi));
k=1;pi=0.0;
for(int n=1;n<=i+1;n++)
pi = pi + (double)(k*1d/(2*n-1));
k*=-1;
System.out.println("After "+ (i+1) + " times, PI="+(4*pi));
数学——泰勒公式
开篇
为啥需要泰勒展开公式?
当我们研究复杂函数(代入一个x可以得到它的y = 输入和输出)的时候,很难搞清楚该函数的曲线或者描述的关系,然而我们仅仅关心某个点附近的性质,这个时候我们就可以用一次函数在该点处近似代替这个复杂函数在该点处的性质;如果要增加精度,可以用二次函数近似代替。
一元函数的泰勒展开
给定一个函数,给定某个点,需要在这个点附近采用简单的函数近似,我们的方法是在该点处泰勒展开:
目标函数,也就是(f(x))已知
[f(x)]
给定point,也就是(x_0)已知
[x_0]
在(x_0)附近用多项式函数近似(f(x)),有
[f(x) = f(x_0) + frac{df(x)}{dx}|_{x=x_0}(x-x_0) + frac{frac{d^2f(x)}{{dx}^2}|_{x=x_0}}{2!}(x-x_0)^2 + cdots]
[f(x) = sum_{n=0}^infty [f^{(n)}(x_0) imes frac{1}{n!}(x-x_0)^n]]
好的理解泰勒公式的资料
以上是关于JAVA泰勒展开式子求圆周率近似值 java的主要内容,如果未能解决你的问题,请参考以下文章
写程序用泰勒级数求e的近似值,直到最后准备加的项小于1e-6为止?