数值分析第二次大作业——编写ln函数实验报告

合集下载

数值分析实验报告

数值分析实验报告

数值分析实验报告【引言】数值分析是一门研究利用计算机和数学方法解决实际问题的学科,它在工程、科学和经济领域中有着广泛的应用。

在这个实验报告中,我将分享我在数值分析实验中的一些发现和结果。

【实验目的】本次实验的目的是通过数值方法对给定的问题进行求解,并分析数值方法的精确性和稳定性。

我们选择了经典的插值和数值积分问题来进行实验。

【实验过程】在插值问题中,我使用了拉格朗日插值和样条插值两种方法。

通过使用已知的数据点,这些方法能够通过构造多项式函数来逼近原始函数,从而能够在未知点上进行预测。

通过比较两种插值方法的结果,我发现拉格朗日插值在低维数据上表现更好,而样条插值在高维数据上更能保持插值曲线的平滑性。

在数值积分问题中,我使用了复合梯形公式和复合辛普森公式来进行数值积分。

这两种方法可以将复杂的区间上的积分问题转化为对若干个小区间进行数值积分的问题。

实验结果表明,复合辛普森公式在使用相同的步长时,其数值积分结果更为精确。

【实验结果】我以一个实际问题作为例子来展示实验结果。

问题是计算半径为1的圆的面积。

通过离散化的方法,我将圆划分为多个小的扇形区域,并使用数值积分方法计算每个扇形的面积。

最后将每个扇形的面积相加,即可得到圆的近似面积。

通过调整离散化的精度,我发现随着扇形数量的增加,计算得到的圆的面积越接近真实的圆的面积。

在插值问题中,我选择了一段经典的函数进行插值研究。

通过选择不同的插值节点和插值方法,我发现当插值节点越密集时,插值结果越接近原函数。

同时,样条插值方法在高阶导数连续的情况下能够更好地逼近原始函数。

【实验总结】通过这次实验,我对数值分析中的插值和数值积分方法有了更深入的理解。

我了解到不同的数值方法在不同的问题中有着不同的适用性和精确度。

在实际应用中,我们需要根据具体问题选择合适的数值方法,并进行必要的数值计算和分析,以获得准确可靠的结果。

总的来说,数值分析作为一种重要的工具和方法,在科学研究和工程实践中具有广泛的应用,并且不断发展和创新。

数值分析第二次上机作业实验报告

数值分析第二次上机作业实验报告

一.实验任务用MA TLAB 语言编写连续函数最佳平方逼近的算法程序(函数式M 文件)。

并用此程序进行数值试验,写出实验报告。

二.实验方法最佳平方逼近方法采用基于正交多项式的最佳平方逼近,选择Lengendre 多项式做基。

计算组合系数时,函数的积分采用变步长复化梯形求积法。

三.程序功能和使用说明1.采用基于正交多项式的最佳平方逼近,选择Lengendre 多项式做基利用递推关系0112()1,()()(21)()(1)()/2,3,.....n n n P x P x xP x n xP x n P x n n --===---⎡⎤⎣⎦=可构造出用户需要的任意次数的最佳平方逼近多项式。

2. 用M 文件建立数学函数,实现程序通过修改建立数学函数的M 文件以适用不同的被逼近函数。

3.已经考虑一般的情况]1,1[],[)(+-≠∈b a x f ,程序有变量代换的功能。

4.计算组合系数时,函数的积分采用变步长复化梯形求积法5.可根据需要,求出二次、三次、。

最佳平方逼近函数)x s (。

6.最后作出逼近函数)x s (和被逼近函数)(x f 的曲线图可进行比较,分别用绘图函数plot 和fplot 绘图。

7.在matlab 的命令窗口,输入[c,sx]=leastp(@func1,a,b,n),func1是被逼近函数,b 和a 分别是逼近函数的上、下区间,n 为最佳平方逼近的次数,可为任意次数。

四.程序代码(含注释)1. 最佳平方逼近主函数function [c,sx]=leastp(func,a,b,n)%LEASTP.m:least-square fitting with legendre polynomials%func 指被逼近函数,调用需要用句柄%a,b 分别指被逼近函数的区间上下限%n 指最佳平方逼近的次数syms t;syms x;%以Lengendre 多项式为基,构造任意次数的最佳平方逼近多项式p(2)=t;p(1)=1;if n>1for j=3:1:(n+1)p(j)=((2*j-3)*t*p(j-1)-(j-2)*p(j-2))/(j-1);endend%变量代换,区间调整为[-1,1]f=feval(func,(b-a)/2*t+(b+a)/2);%计算组合系数,其中调用变步长复化梯形求积函数trapzfor j=1:1:(n+1)c(j)=(2*j-1)/2*trapz(f*p(j),-1,1);end%将组合系数与对应的最佳平方多项式相乘然后求和,得到最佳逼近函数sx=0;for j=1:1:(n+1)sx=sx+c(j)*p(j);end%将变量替换还原sx=subs(sx,(2*x-a-b)/(b-a));%使用fplot绘制原函数图像f1=feval(func,x);f1=inline(f1);[x,y]=fplot(f1,[a,b]);plot(x,y,'r-','linewidth',1.5);hold on;%使用plot绘制最佳平方逼近函数图像g=linspace(a,b,(b-a)*300);fsx=subs(sx,g);plot(g,fsx,'b-','linewidth',1.5);str=strcat(num2str(n),'次最佳平方逼近');legend('原函数',str);end2. 计算组合系数,变步长复化梯形求积法function To1=trapz(func,a,b)%半分区间复化梯形公式计算定积分%func指需要求积分的原函数%a,b分别指积分上下区间%初值h=b-a;To=(subs(func,a)+subs(func,b))*(b-a)/2;e=1;while e>10^-6%迭代终止条件,前后两次积分值差小于10^-6 H=0;x=a+h/2;while x<bH=H+subs(func,x);%计算出所有二分新出现的值的和x=x+h;endTo1=0.5*(To+h*H);%计算出新的积分值e=abs(To1-To);h=h/2;%继续半分区间,进行迭代计算To=To1;endend3. 以.m文件定义被逼近函数function y=func1(x)y=x*cos(x);end五.实验结果1. 一次最佳平方逼近c =-1.1702 -2.4235sx=1.253290 - 1.211752*x2. 二次最佳平方逼近c =-1.1702 -2.4235 -0.4265sx=-0.159939*x^2 - 0.571997*x + 0.8267873. 三次最佳平方逼近c =-1.1702 -2.4235 -0.4265 1.2216sx=0.381759*x^3 - 2.450495*x^2 + 3.092892*x - 0.3948434. 四次最佳平方逼近c =-1.1702 -2.4235 -0.4265 1.2216 0.3123sx =0.085392*x^4 - 0.301375*x^3 - 0.693864*x^2 + 1.531443*x - 0.082553六.分析与讨论从次数从1到4的最佳平方逼近图像对比可以发现,次数越高,图像拟合效果越好。

数值分析实验 实验报告

数值分析实验 实验报告

数值分析实验实验报告数值分析实验实验报告一、引言数值分析是一门研究如何利用计算机对数学问题进行数值计算和模拟的学科。

在实际应用中,数值分析广泛应用于工程、物理、金融等领域。

本实验旨在通过实际操作,探索数值分析方法在实际问题中的应用,并通过实验结果对比和分析,验证数值分析方法的有效性和可靠性。

二、实验目的本实验的主要目的是通过数值分析方法,解决一个实际问题,并对比不同方法的结果,评估其准确性和效率。

具体来说,我们将使用牛顿插值法和拉格朗日插值法对一组给定的数据进行插值,并对比两种方法的结果。

三、实验步骤1. 收集实验数据:我们首先需要收集一组实验数据,这些数据可以来自实验测量、调查问卷等方式。

在本实验中,我们假设已经获得了一组数据,包括自变量x和因变量y。

2. 牛顿插值法:牛顿插值法是一种基于差商的插值方法。

我们可以通过给定的数据点,构造一个插值多项式,并利用该多项式对其他点进行插值计算。

具体的计算步骤可以参考数值分析教材。

3. 拉格朗日插值法:拉格朗日插值法是另一种常用的插值方法。

它通过构造一个满足给定数据点的多项式,利用该多项式对其他点进行插值计算。

具体的计算步骤也可以参考数值分析教材。

4. 结果比较与分析:在完成牛顿插值法和拉格朗日插值法的计算后,我们将比较两种方法的结果,并进行分析。

主要考虑的因素包括插值误差、计算效率等。

四、实验结果在本实验中,我们选取了一组数据进行插值计算,并得到了牛顿插值法和拉格朗日插值法的结果。

经过比较和分析,我们得出以下结论:1. 插值误差:通过计算插值点与实际数据点之间的差值,我们可以评估插值方法的准确性。

在本实验中,我们发现牛顿插值法和拉格朗日插值法的插值误差都较小,但是拉格朗日插值法的误差稍大一些。

2. 计算效率:计算效率是衡量数值分析方法的重要指标之一。

在本实验中,我们发现牛顿插值法的计算速度较快,而拉格朗日插值法的计算速度稍慢。

五、实验结论通过本实验,我们对数值分析方法在实际问题中的应用有了更深入的了解。

数值分析实验报告线性插值和二次插值计算ln0.54的近似值(模板)

数值分析实验报告线性插值和二次插值计算ln0.54的近似值(模板)

数值分‎析实验‎报告线‎性插值‎和二次‎插值计‎算ln‎0.5‎4的近‎似值‎数值分‎析实验‎报告线‎性插值‎和二次‎插值计‎算ln‎0.5‎4的近‎似值‎‎‎‎篇‎一:‎‎‎数值‎分析-‎用线性‎插值及‎二次插‎值计算‎数值‎分析上‎机报告‎习题‎:‎给‎出f(‎x)?‎l nx‎的数值‎表,用‎线性插‎值及二‎次插值‎计算l‎n0.‎54的‎近似值‎。

解‎:‎‎‎(1)‎用线性‎插值计‎算 M‎a tl‎a b程‎序‎x=0‎.54‎;‎a=[‎0.5‎,0.‎6];‎b‎=[-‎0.6‎931‎47,‎-0.‎510‎826‎]; ‎l1‎=b‎ (‎1)*‎((x‎-a‎ (‎2))‎/(a‎‎(1)‎-a‎ (‎2))‎); ‎l2‎=b‎ (‎2)*‎((x‎-a‎ (‎1))‎/(a‎‎(2)‎-a‎ (‎1))‎); ‎y=‎l1+‎l2 ‎y =‎-0‎.62‎02 ‎‎(2)‎用抛物‎插值计‎算 M‎a tl‎a b程‎序‎x=0‎.54‎;‎a=[‎0.4‎,0.‎5,0‎.6]‎;‎b=[‎-0.‎916‎291‎,-0‎.69‎314‎7,-‎0.5‎1 08‎26]‎;‎A=b‎‎(1)‎*(x‎-a‎ (‎2))‎*(x‎-a‎ (‎3))‎/((‎a‎(1‎)-a‎‎(2)‎)*(‎a‎(1‎)-a‎‎(3)‎));‎B=‎b‎(2‎)*(‎x-a‎‎(1)‎)*(‎x-a‎‎(3)‎)/(‎(a‎ (‎2)-‎a‎(1‎))*‎(a‎ (‎2)-‎a‎(3‎)))‎; C‎=b‎ (‎3)*‎(x-‎a‎(1‎))*‎(x-‎a‎(2‎))/‎((a‎‎(3)‎-a‎ (‎1))‎*(a‎‎(3)‎-a‎ (‎2))‎); ‎y=A‎+B+‎C y‎= ‎-0.‎615‎3‎‎‎‎‎篇‎二:‎‎‎数值‎分析上‎机实验‎报告二‎实验‎报告二‎题目‎:‎如‎何求解‎插值函‎数摘‎要:‎‎在工程‎测量和‎科学实‎验中,‎所得到‎的数据‎通常都‎是离散‎的,如‎果要得‎到这些‎离散点‎意外的‎其他点‎的数值‎,就需‎要根据‎这些已‎知数据‎进行插‎值。

数值分析的实验报告

数值分析的实验报告

数值分析的实验报告实验目的本实验旨在通过数值分析方法,探讨数学问题的近似解法,并通过实际案例进行验证和分析。

具体目的包括: 1. 理解和掌握数值分析的基本原理和方法; 2. 学会使用计算机编程语言实现数值分析算法; 3. 分析数值分析算法的精确性和稳定性; 4. 根据实验结果对数值分析算法进行优化和改进。

实验步骤1. 问题描述首先,我们选择一个数学问题作为实验的对象。

在本次实验中,我们选取了求解非线性方程的问题。

具体而言,我们希望找到方程 f(x) = 0 的解。

2. 数值方法选择根据非线性方程求解的特点,我们选择了牛顿迭代法作为数值方法。

该方法通过不断迭代逼近方程的解,并具有较好的收敛性和精确性。

3. 程序设计与实现为了实现牛顿迭代法,我们使用了Python编程语言,并使用了相应的数值计算库。

具体的程序实现包括定义方程 f(x) 和其导数f’(x),以及实现牛顿迭代法的迭代过程。

4. 实验案例与结果分析我们选择了一个具体的方程,例如 x^3 - 2x - 5 = 0,并通过程序运行得到了方程的解。

通过比较实际解与数值解的差异,我们可以分析数值方法的精确性和稳定性。

5. 优化与改进基于实验结果的分析,我们可以对数值分析算法进行优化和改进。

例如,通过调整迭代的初始值、增加迭代次数或修改算法公式等方式,改进算法的收敛性和精确性。

实验结论通过本次实验,我们深入理解了数值分析的基本原理和方法,并通过具体案例验证了牛顿迭代法的有效性。

同时,我们也意识到数值分析算法的局限性,并提出了一些改进的建议。

在今后的数学问题求解中,我们可以运用数值分析的方法,通过计算机编程实现更精确的近似解。

数值分析 实验报告

数值分析 实验报告

数值分析实验报告1. 引言数值分析是一门研究如何利用计算机进行数值计算的学科。

它涵盖了数值计算方法、数值逼近、插值和拟合、数值微积分等内容。

本实验报告旨在介绍数值分析的基本概念,并通过实验验证其中一些常用的数值计算方法的准确性和可行性。

2. 实验目的本实验的目的是通过对一些简单数学问题进行数值计算,验证数值计算方法的正确性,并分析计算误差。

具体实验目标包括: - 了解数值计算方法的基本原理和应用场景; - 掌握常用的数值计算方法,如二分法、牛顿法等; - 验证数值计算方法的准确性和可靠性。

3. 实验设计3.1 实验问题选择了以下两个数学问题作为实验对象: 1. 求解方程f(x) = 0的根; 2. 求解函数f(x)在给定区间上的最小值。

3.2 实验步骤3.2.1 方程求根1.确定待求解的方程f(x) = 0;2.选择合适的数值计算方法,比如二分法、牛顿法等;3.编写相应的计算程序,并根据初始条件设置迭代终止条件;4.运行程序,得到方程的根,并计算误差。

3.2.2 函数最小值1.确定待求解的函数f(x)和给定的区间;2.选择合适的数值计算方法,比如黄金分割法、斐波那契法等;3.编写相应的计算程序,并根据初始条件设置迭代终止条件;4.运行程序,得到函数的最小值,并计算误差。

4. 实验结果与分析4.1 方程求根我们选择了二分法和牛顿法来求解方程f(x) = 0的根,并得到了如下结果: - 二分法得到的根为 x = 2.345,误差为 0.001; - 牛顿法得到的根为 x = 2.345,误差为 0.0001。

通过计算结果可以看出,二分法和牛顿法都能较准确地求得方程的根,并且牛顿法的收敛速度更快。

4.2 函数最小值我们选择了黄金分割法和斐波那契法来求解函数f(x)在给定区间上的最小值,并得到了如下结果: - 黄金分割法得到的最小值为 x = 3.142,误差为 0.001; - 斐波那契法得到的最小值为 x = 3.142,误差为 0.0001。

数值分析实验报告 第二次

数值分析实验报告 第二次

华中科技大学本科实验报告课程名称:数值分析姓名:姜福鑫学号:U201310044专业班级:应数1302指导老师:黄乘明实验题目:多项式的插值解法日期:2015-4-23实验成绩:1.实验目的1.理解插值的基本原理;2.掌握多项式插值的概念、存在唯一性;3.编写MATLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象、分析插值多项式的收敛性。

2.实验题目4.1编制拉格朗日插值法MATLAB 程序,求ln0.53的近似值。

已知)(x f =ln x 的数值表如下所示:x0.40.50.60.7ln x -0.916291-0.693147-0.510826-0.3577654.2编制牛顿插值法MATLAB 程序,求)5.0(f 的近似值。

已知的数值如下表所示:ix 0.00.20.40.60.8)(i x f 0.19950.39650.28810.77210.94313.程序文本4.1function yy=malagr(x,y,xx)m=length(x);n=length(y);if m~=n,error('向量x与y的长度必须一致');ends=0;for i=1:nt=ones(1,length(xx));for j=1:nif j~=it=t.*(xx-x(j))/(x(i)-x(j));endends=s+t*y(i);endyy=s;4.2function yi=maNew(x,y,xi)n=length(x);m=length(y);if n~=merror('向量x与y的长度必须一致');endY=zeros(n);Y(:,1)=y';for k=1:n-1for i=1:n-kif abs(x(i+k)-x(i))<epserror('数据错误');endY(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i));endendyi=0;for i=1:nz=1;for k=1:i-1z=z*(xi-x(k));endyi=yi+Y(1,i)*z;end4.运行结果与分析4.1xx=0.5300yy=malagr(x,y,xx)yy=-0.63474.2x=[0.00.20.40.60.8];>>y=[0.19950.39650.58810.77210.9461];xi=0.5;>>yi=maNew(x,y,xi)yi=0.6812分析:Lagrange插值法和Newton插值法解决实际问题中关于只提供复杂的离散数据的函数求值问题,通过将所考察的函数简单化,构造关于离散数据实际函数f(x)的近似函数P(x),从而可以计算未知点出的函数值,是插值法的基本思路。

数值分析实习报告总结

数值分析实习报告总结

一、实习背景数值分析是数学的一个重要分支,它研究如何用数值方法求解数学问题。

随着计算机技术的飞速发展,数值分析在各个领域得到了广泛的应用。

为了提高自己的实践能力,我选择了数值分析作为实习课题,希望通过这次实习,能够掌握数值分析的基本方法,并将其应用于实际问题中。

二、实习过程1. 实习初期在实习初期,我首先了解了数值分析的基本概念、理论和方法。

通过阅读相关教材和文献,我对数值分析有了初步的认识。

接着,我学习了数值分析的基本方法,如泰勒展开、牛顿法、高斯消元法等。

2. 实习中期在实习中期,我选择了几个实际问题进行数值计算。

首先,我使用泰勒展开法求解一个简单的微分方程。

通过编写程序,我得到了微分方程的近似解。

然后,我运用牛顿法求解一个非线性方程组。

在实际计算过程中,我遇到了一些问题,如收敛性、迭代次数过多等。

通过查阅资料和请教导师,我找到了解决方法,成功求解了方程组。

3. 实习后期在实习后期,我进一步学习了数值分析的高级方法,如复化梯形公式、复化Simpson公式、自适应梯形法等。

这些方法在解决实际问题中具有更高的精度和效率。

我选择了一个具体的工程问题,运用复化梯形公式求解定积分。

在计算过程中,我遇到了区间细分、精度控制等问题。

通过不断尝试和调整,我得到了较为精确的积分值。

三、实习收获与体会1. 理论与实践相结合通过这次实习,我深刻体会到理论与实践相结合的重要性。

在实习过程中,我不仅学习了数值分析的理论知识,还将其应用于实际问题中。

这使我更加深刻地理解了数值分析的基本方法,提高了自己的实践能力。

2. 严谨的学术态度在实习过程中,我养成了严谨的学术态度。

在编写程序、进行数值计算时,我注重细节,力求精确。

这使我更加注重学术规范,提高了自己的学术素养。

3. 团队合作精神实习过程中,我与其他同学进行了交流与合作。

在解决实际问题时,我们互相学习、互相帮助,共同完成了实习任务。

这使我更加懂得团队合作的重要性,提高了自己的团队协作能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

为一个整体,将 ln(a)进行 Taylor 级数分解,进而按式计算可以求得 ln(x)的值。由于我们选 取级数的前 n 项和近似 ln(a),则有:
Rn (a
1)

(1)n
(a 1)n1 n 1
…;
|
Rn
(a
1)
||
(a 1)n1 n 1
|

2
自 92 乔晖 2009011414
精度为 20 位,即 h4 1020 。
int * GetNumber() {return number;}
//获得大数中的整数数组
bool GetSgn() const {return sgn;}
//获得大数的符号
bool IsZero();
//判断大数是否为 0
CBigNumber Reverse() {sgn = !sgn;return *this;} //取相反数
数值分析——编写 ln 函数
实验报告
自 92 乔晖 2009011414
自 92 乔晖 2009011414
数值分析——编写 ln 函数实验报告
目录
一、 实验任务 ................................................... 2
二、 编译环境 ................................................... 2
1u
x 1
35
5
自 92 乔晖 2009011414
数值分析——编写 ln 函数实验报告
其前 n 项和,近似可得 ln(x)的值。
基于以上原理,可以设计迭代算法,累加 2u2i1 得到前 n 项和。每次计算后,判断计 2i 1
算的终止条件,即余项
|
Rn
(u)|

|
(1

2u 2 n 1 u2 )(2n
2
3
ln(a)的值。余项 |
Rn (a
1)
||
(a 1)n1 n 1
|

基于以上原理,可以设计迭代算法,累加 (1)i1 (a 1)i 得到前 n 项和。每次计算后, i
判断计算的终止条件,即余项的值是否符合精度要求,符合则退出循环。具体代码见附录。
1.2 换元 Taylor 法
根据计算式: x 1 u (u (1,1)) ; u x 1 。 ln(x) (2 u u3 u5 …)。我们取
七、 实验结果 .................................................. 14
八、 心得体会 .................................................. 16
附录 ............................................................. 16
{
number[i] = n[i];
}
this->sgn = sgn;
}
friend ostream& operator << (ostream& out, CBigNumber& bn);//标准流输出 CBigNumber operator + (CBigNumber& bn); //大数与大数的加法
CBigNumber operator - (CBigNumber& bn); //大数与大数的减法
CBigNumber operator * (CBigNumber& bn); //大数与大数的乘法
CBigNumber operator * (int n);
//大数与整数的乘法
CBigNumber operator / (CBigNumber& bn); //大数与大数的除法
Rn
(u
)

(2
u 2 n1 2n 1

…);
|
Rn
(u)|

|(2 u2n1

u2n3 2n
u2n5 1


)|=|
(1
2u 2 n1 u2 )(2n
1)
|

因此,根据精度的要求,可以计算出 n。
常微分方程求解——四阶龙格库塔公式
y ln(x) ,y f (x, y) d ln(x) 1 。采用常微分方程求解的方法,即利用 y 1 以
用taylor级数展开
void Taulor_FormerMethod(CBigNumber x);//先变元再用泰勒级数求ln(x),令
x=(1+u)/(1-u),化为关于u的taylor级数
void RKMethod(CBigNumber x);
//四阶龙格——库塔公式
CBigNumber exp(CBigNumber x); //求e^x
void NewTon(CBigNumber x); //牛顿迭代公式解非线性方程
2. 数据结构分析
由于 C 语言中的 double 数据类型只有 16 位有效数字,不能达到需要的运算精度,所
以需要自己编写基本数据存储结构。程序中用自己写的大数类 class CBigNumber 来存放高 精度数字并在其中封装了相应的加减乘除等操作。
五、 程序框图 ................................................... 9
六、 误差分析 ................................................... 9 1. 减半 Taylor 法 .............................................. 9 2. 换元 Taylor 法 ............................................. 11 3. 经典四阶龙格——库塔算法 .................................. 11 4. 牛顿迭代公式 .............................................. 12
1
自 92 乔晖 2009011414
数值分析拟计算器的 ln 函数,能够计算 ln(x)(x>0),要求最后结果有 20 位有效数字。 算法需要考虑方法误差和存储误差等影响因素。
要求: 1.建议程序用 C 语言编写,此程序不要求界面。 2.自行编写全部算法。 3.报告内容需完整,算法设计、程序框图、实验结果及误差分析等步骤不可缺少。
三、 任务分析 ................................................... 2 1. 数值方法分析 ............................................... 2 2. 数据结构分析 ............................................... 4
数值分析——编写 ln 函数实验报告
因此,根据精度的要求,可以用 |
Rn
(a
1)
||
(a 1)n1 n 1
|
计算出应该展开的阶数
n。
(2) 换元 Taylor 法 同(1)中方法设计的目的,为了保证 Taylor 级数的使用,必须满足收敛域的要求。我们
令 x 1 u (u (1,1)) ,则有: 1u ln(x) ln(1 u ) ln(1 u) ln(1 u) 1 u
void SetSgn(bool flag){sgn=flag;}
//设置符号
private: int number[SIZE]; bool sgn;
};
//大数数组 //大数符号
大数封装在整数数组中,其中预留了 20 位整数部分和 40 位小数部分(整数数组的总

长度是 60)。大数可以写成 dn 10n , dn 存储在数组的 20-n 位。 n
CBigNumber operator / (int n);
//大数与整数的除法
bool operator > (CBigNumber& bn);
//大数之间比较大小
bool operator < (CBigNumber& bn);
4
自 92 乔晖 2009011414
数值分析——编写 ln 函数实验报告
由于 u 的定义域满足收敛域的要求,我们可以将 ln(1+u),ln(1-u)分别展开,进行计算:
ln(1 u) u u2 u3 …; 23
ln(1 u) u u2 u3 …; 23
ln(x) (2 u u3 u5 …)。 35
由于我们选取级数的前 n 项和近似 ln(x),则有:
四、 算法设计 ................................................... 5 1. 数值算法 ................................................. 5 1.1 减半 Taylor 法 ......................................... 5 1.2 换元 Taylor 法 ......................................... 5 1.3 经典四阶龙格——库塔算法 .............................. 6 1.4 牛顿迭代公式 .......................................... 7 2. 高精度运算算法 ........................................... 7
相关文档
最新文档