计算方法实验报告4

合集下载

计算方法_实验报告

计算方法_实验报告

一、实验目的1. 理解并掌握计算方法的基本概念和原理;2. 学会使用计算方法解决实际问题;3. 提高编程能力和算法设计能力。

二、实验内容本次实验主要涉及以下内容:1. 线性方程组的求解;2. 多项式插值;3. 牛顿法求函数零点;4. 矩阵的特征值和特征向量求解。

三、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 科学计算库:NumPy、SciPy四、实验步骤及结果分析1. 线性方程组的求解(1)实验步骤a. 导入NumPy库;b. 定义系数矩阵A和增广矩阵b;c. 使用NumPy的linalg.solve()函数求解线性方程组。

(2)实验结果设系数矩阵A和增广矩阵b如下:A = [[2, 1], [1, 2]]b = [3, 2]解得:x = [1, 1]2. 多项式插值(1)实验步骤a. 导入NumPy库;b. 定义插值点x和对应的函数值y;c. 使用NumPy的polyfit()函数进行多项式拟合;d. 使用poly1d()函数创建多项式对象;e. 使用多项式对象计算插值点对应的函数值。

(2)实验结果设插值点x和对应的函数值y如下:x = [1, 2, 3, 4, 5]y = [1, 4, 9, 16, 25]拟合得到的二次多项式为:f(x) = x^2 + 1在x = 3时,插值得到的函数值为f(3) = 10。

3. 牛顿法求函数零点(1)实验步骤a. 导入NumPy库;b. 定义函数f(x)和导数f'(x);c. 设置初始值x0;d. 使用牛顿迭代公式进行迭代计算;e. 判断迭代结果是否满足精度要求。

(2)实验结果设函数f(x) = x^2 - 2x - 3,初始值x0 = 1。

经过6次迭代,得到函数零点x ≈ 3。

4. 矩阵的特征值和特征向量求解(1)实验步骤a. 导入NumPy库;b. 定义系数矩阵A;c. 使用NumPy的linalg.eig()函数求解特征值和特征向量。

实验报告四线性方程组的求解_迭代

实验报告四线性方程组的求解_迭代

浙江大学城市学院实验报告课程名称 科学计算实验项目名称 线性方程组的求解-迭代法实验成绩 指导老师(签名 ) 日期 2012-4-6一. 实验目的和要求1. 掌握Jacobi 迭代方法.Gauss-Seidel 迭代方法.SOR 迭代方法的编程思想.能够分别用分量形式和矩阵形式编写相关程序。

2. 观察SOR 迭代法中松弛因子变化情况对收敛的影响。

3. 了解Hilbert 矩阵的病态性和作为线性方程组系数矩阵的收敛性。

二. 实验内容和原理编程题2-1要求写出Matlab 源程序(m 文件).并有适当的注释语句;分析应用题2-2.2-3.2-4要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上。

2-1 编程注释 设11121121222212,n n n n nn n a a a b a a a b A b a a a b ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦对下述求解线性方程组的Matlab 程序添上注释语句.其中A 和b 分别为线性方程组的系数矩阵和右端向量;0x 为迭代初始向量(0)X;max N 为容许迭代最大次数.eps 为迭代终止条件的精度(容许误差).终止条件为前后两次迭代解的差的向量2-范数。

1) Jacobi 迭代:Jacobimethod(A,b,x0,Nmax,eps)2) Gauss-Seidel 迭代:GaussSeidelmethod(A,b,x0,Nmax,eps)3) 松弛迭代:SORmethod(A,b,x0,Nmax,eps,w)2-2 分析应用题利用2-1中的程序来分析用下列迭代法解线性方程组:123456410100014101050141012101410501014120010146x x x x x x --⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥---⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥----=⎢⎥⎢⎥⎢⎥---⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥----⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 的收敛性.并求出使(1)()20.0001k k X X +-≤的近似解及相应的迭代次数.其中取迭代初始向量(0)X 为零向量。

数值计算方法方程求根

数值计算方法方程求根

数值计算⽅法⽅程求根数值计算⽅法实验报告实验内容:⽅程求根实验室:专业班级:学号:姓名:2.⽤MATBAB软件,⽤⼆分法求⽅程f(x)=x^3+4*x^2-10=0在区间[1,2]内根的近似值,为使误差不超过10^-5时所需要的⼆分次数。

function bisection_time(tolerance)a=1;b=2;k=0;while(abs(b-a)>tolerance)c=(a+b)/2;fa=a^3+4*a^2-10;fb=b^3+4*b^2-10;fc=c^3+4*c^2-10;if((fa==0)|(fc==0))disp(k);elseif(fa*fc<0)b=c;k=k+1;elseif(fc*fb<0)a=c;k=k+1;elseif(fb==0)disp(k);endendsoluntion=(a+b)/2;disp(soluntion);disp(k);运⾏结果1.36523176.取x0=1.5,⽤⽜顿迭代法求f(x)=x^3+4*x^2-10=0的跟的近似值function new(tolerance)x0=1.5;k=0;a=x0^3+4*x0^2-10;b=3*x0^2+8*x0;x1=x0-a/b;while(abs(x0-x1)>tolerance)x0=x1;k=k+1;a=x0^3+4*x0^2-10;b=3*x0^2+8*x0;x1=x0-a/b;enddisp(x1);disp(k);运⾏结果1.3652338.弦割法求⽅程f(x)=x^3-3*x^2-x+9=0在区间[-2,-1]内的⼀个实根近似值Xk,使|f(x) |<=10^-5. function xuange(k)x0=-2;x1=-1;t=0;a=x1^3-3*x1^2-x1+9;b=x0^3-3*x0^2-x0+9;x2=x1-a*(x1-x0)/(a-b);while(abs(x1-x0)>k)x0=x1;x1=x2;a=x1^3-3*x1^2-x1+9;b=x0^3-3*x0^2-x0+9;x2=x1-a*(x1-x0)/(a-b);t=t+1;enddisp(x1);disp(t)运⾏结果-1.52510269.⽤艾特肯算法求⽅程f (x )=x^3+4*x^2+10=0在区间[1,2]内的根的近似值(取X0=1.5,g (x )=410x ,精确到|Xk+1-Xk|<=10^-5,并与第2,3,6题的相应结果进⾏⽐较。

数值计算基础实验报告(3篇)

数值计算基础实验报告(3篇)

第1篇一、实验目的1. 理解数值计算的基本概念和常用算法;2. 掌握Python编程语言进行数值计算的基本操作;3. 熟悉科学计算库NumPy和SciPy的使用;4. 分析算法的数值稳定性和误差分析。

二、实验内容1. 实验环境操作系统:Windows 10编程语言:Python 3.8科学计算库:NumPy 1.19.2,SciPy 1.5.02. 实验步骤(1)Python编程基础1)变量与数据类型2)运算符与表达式3)控制流4)函数与模块(2)NumPy库1)数组的创建与操作2)数组运算3)矩阵运算(3)SciPy库1)求解线性方程组2)插值与拟合3)数值积分(4)误差分析1)舍入误差2)截断误差3)数值稳定性三、实验结果与分析1. 实验一:Python编程基础(1)变量与数据类型通过实验,掌握了Python中变量与数据类型的定义方法,包括整数、浮点数、字符串、列表、元组、字典和集合等。

(2)运算符与表达式实验验证了Python中的算术运算、关系运算、逻辑运算等运算符,并学习了如何使用表达式进行计算。

(3)控制流实验学习了if-else、for、while等控制流语句,掌握了条件判断、循环控制等编程技巧。

(4)函数与模块实验介绍了Python中函数的定义、调用、参数传递和返回值,并学习了如何使用模块进行代码复用。

2. 实验二:NumPy库(1)数组的创建与操作通过实验,掌握了NumPy数组的基本操作,包括创建数组、索引、切片、排序等。

(2)数组运算实验验证了NumPy数组在数学运算方面的优势,包括加、减、乘、除、幂运算等。

(3)矩阵运算实验学习了NumPy中矩阵的创建、操作和运算,包括矩阵乘法、求逆、行列式等。

3. 实验三:SciPy库(1)求解线性方程组实验使用了SciPy库中的线性代数模块,通过高斯消元法、LU分解等方法求解线性方程组。

(2)插值与拟合实验使用了SciPy库中的插值和拟合模块,实现了对数据的插值和拟合,并分析了拟合效果。

4的倍数特征实验报告单

4的倍数特征实验报告单

4的倍数特征实验报告单
实验目的:
本次实验旨在探究4的倍数的特征,通过对不同数字进行分析,验证4的倍数的特征并得出结论。

实验方法:
1. 选择一系列整数数字进行实验,包括4的倍数和非4的倍数。

2. 分别对这些数字进行求余数运算,即用这些数字除以4并得出余数。

3. 分析余数的情况,观察4的倍数和非4的倍数的特征。

实验结果:
通过实验我们得到了以下结果:
1. 对于4的倍数,经过求余数运算得到的余数始终为0。

2. 对于非4的倍数,求余数运算的结果不为0。

3. 通过不同数字的实验,验证了4的倍数的特征,即能被4整除的数字的余数为0。

实验结论:
综合实验结果,我们得出结论:
1. 4的倍数的特征是其能被4整除,即求余数的结果为0。

2. 任何一个数被4整除的余数都是0,这是4的倍数的特征之一。

实验总结:
本次实验验证了4的倍数的特征,通过实验数据的分析,我们得以确定4的倍数的特征为其能被4整除,余数为0。

实验结果的验证进一步加深了我们对数学中倍数的理解,为数学知识的学习提供了实际的例证。

希望通过这次实验,同学们能更加深入地了解4的倍数的特征,提高数学分析的能力。

实验延伸:
在以后的学习中,可以进一步探讨倍数的特征,例如2的倍数、5的倍数等,通过实验验证不同倍数的特征,加深对数学概念的理解。

同时,可以进行更加复杂的数学实验,进一步提高数学分析的能力,培养数学思维的能力。

希望同学们在数学学习中能够通过实验的方式,加深对数学的理解,提高数学的学习兴趣和能力。

长整数四则运算 实验报告

长整数四则运算 实验报告

“数据结构”课程设计报告长整数四则运算学生姓名:吴成杰徐文良指导教师:陈少军所在系:电子信息系所学专业:计算机科学与技术年级:2010计算机(1)班目录第1章需求分析 (1)1.1选题要求 (1)1.2选题背景和意义 (1)1.3选题目标 (2)1.4组员分配任务 (2)第2章概要分析 (2)2.1系统数据流图 (2)2.2原始数据 (3)2.3输出数据 (3)2.4对数据的处理 (3)2.5数据结构(存储方式) (4)2.6模块分析 (4)第3章详细设计 (4)第4章系统说明书 (11)第5章系统测试 (12)项目总结 (16)参考文献 (17)第1章需求分析1.1选题要求1、实现一个任意长度的整数进行四则运算的演示程序(1) 运算过程分步骤显示(2) 完成含有加法和减法的四则运算(3) 完成含有乘法和除法的四则运算(4) 包含括号的四则运算2、2个人对应完成2个人各自的任务1.2选题背景和意义(1)选题背景操作系统老师曾经布置我们做一道斐波拉契数列和求30的阶乘,但是计算的结果很大,还不知道该做样的存储,老师告诉我们需要用高精度数的知识能将计算的结果存储起来,数据结构老师也曾经布置过一个实验题,是计算长整数的加法的,但是长整数的位数是固定的。

于是我们试想计算任意长度的整数是不是能把所有的四则运算问题解决。

(2)选题意义我们选的这个课题能计算任意的四则运算,比如:1234567+7654321=8888888987654321-123456789=86419754123*456=5608884/42=2586-25*15+8*(9*2-144/12)=586-375+8*(18-12)=586-375+8*6=586-355+48=211+48=2591.3选题目标实现一个任意长度的整数进行四则运算的演示程序(1) 运算过程分步骤显示(2) 完成含有加法和减法的四则运算(3) 完成含有乘法和除法的四则运算(4) 包含括号的四则运算1.4组员分配任务我们组有两个成员,分别为吴成杰和徐文良,一个负责写主函数、函数整体的框架和写转换函数函数和对输入的字符进行处理,一个负责写出栈函数和写处理函数和拼接,程序出现错误,两个人一起在一起互相商量,修改。

数值分析实验报告4

数值分析实验报告4

function f=gg(x) f=sqrt(2.5-(x^3)/4); end
则三种方法运行出的结果分别为: >> BDD(1.5) k= 20 ans = 1.365229578333959 >> WA(1.5) k= 6 ans = 1.365230351032824 >> ATJ(1.5) k= 4 ans = 1.365230013413594 (5)在 MATLAB 的 Editor 中建立一个 M-文件,输入程序代码,实现 matlab 自带函数求根 的程序代码如下:
>>format long BDD(1.5) k= 7 ans = 1.365230575673434
(2)在 MATLAB 的 Editor 中建立一个 M-文件,输入程序代码,实现加权加速求根的程序 代码如下:
function [y,n]=WA(a,eps) if nargin==1 eps=1e-16; end syms x L=subs(diff(sqrt(10/(4+x))),a); xl=gg(a,L); n=1; E=abs(xl-a); while (E>=eps)&(n<=10000) x=xl; xl=gg(x,L); n=n+1; E=abs(xl-x); end
在 command Windows 中输入命令:XJF(1.5),得出的结果为:
>> XJF(1.5) k= 5 ans = 1.365230020178121 (8)在 MATLAB 的 Editor 中建立一个 M-文件,输入程序代码,实现抛物线法求根的程序
代码如下:
function [y,n] = parabola(fx,a,b,c,eps) if(nargin == 4) eps=1e-6; syms x fa = subs(fx,a); fb = subs(fx,b); fc = subs(fx,c); fb_a = (fb-fa)/(b-a); fc_b = (fc-fb)/(c-b); fc_b_a = (fc_b - fb_a)/(c-a); w = fc_b + fc_b_a*(c-b); x0 = c - 2*fc/(w+(w^2 - 4*fc*fc_b_a)^.5); n=1; if(abs(x0-c) > eps && n <= 10000) a=b; b=c; c=x0; fa = subs(fx,a); fb = subs(fx,b); fc = subs(fx,c); fb_a = (fb-fa)/(b-a); fc_b = (fc-fb)/(c-b); fc_b_a = (fc_b - fb_a)/(c-a); w = fc_b + fc_b_a*(c-b); x0=c - 2*fc/(w+(w^2 - 4*fc*fc_b_a)^.5); n=n+1; end y=x0; n; end end

4的倍数特征实验报告单

4的倍数特征实验报告单

4的倍数特征实验报告单实验目的:本实验旨在探究4的倍数的特征,并通过实验数据分析和归纳总结得出相关结论。

实验材料:1. 20张白纸2. 铅笔3. 计算器实验步骤:1. 将20张白纸按照一定的格式排列,比如每张纸上画三个小矩形。

2. 在第一个小矩形内随机写入一个个位数数字,数字可以重复出现。

3. 统计在四个小矩形内出现4的倍数的个数,并记录在每张纸上。

4. 将每张纸上记录的数据进行汇总并计算得出4的倍数出现的频率。

5. 对实验数据进行分析和归纳总结得出结论。

实验结果:经过统计和计算,在20张纸上统计到的4的倍数出现的个数为:12、8、9、13、11、7、10、15、12、9、8、14、10、12、11、9、13、8、11和12个,共计198个。

经过计算,20张纸上4的倍数出现的频率为:0.06、0.04、0.045、0.065、0.055、0.035、0.05、0.075、0.06、0.045、0.04、0.07、0.05、0.06、0.055、0.045、0.065、0.04、0.055和0.06。

通过对实验数据的分析和归纳总结,可以得出以下结论:1. 出现4的倍数的频率在不同的样本中有一定的差异,但总体上来说,4的倍数出现的频率较稳定并且相对均衡。

2. 在20张纸样本中,4的倍数出现的个数大多在10个左右,少数在5个以下或15个以上。

3. 在20张纸样本中,4的倍数出现的频率在0.04~0.075之间,呈现出比较均衡的分布。

4. 在20张纸样本中,4的倍数与出现的位置没有明显的规律性可言,出现在不同的位置上。

结论:本次实验的结果表明,4的倍数具有较为稳定的出现频率,并且在样本中呈现较为均衡的分布,与出现的位置没有明显的规律性可言。

河北工业大学数值分析实验三实验四实验报告

河北工业大学数值分析实验三实验四实验报告

数值分析实验报告指导老师:宛艳萍姓名:班级:学号:实验三 复化辛卜生法,龙贝格法1.实验名称:复化辛卜生法,龙贝格法2.实验目的1)通过实际计算体会各种方法的精确度。

2)会编写用复化辛卜生、龙贝格算法求定积分的程序。

3.算法描述1)用复化辛卜生法计算积分 dxx I ⎰+=12)1/(1算法:复化辛卜生公式为S n =h/6∑∑+-=+++)]()2/(4)([11k k kn k x f h x f xf ,计算过程为:1.令,/)(n a b h -= ),2/(1h a f s +=;02=s2.对1,,2,1-=n k计算),2/(11h kh a f s s +++=)(22kh a f s s ++=3.))(24)((6/21b f s s a f h s +++= 。

2)龙贝格算法计算dxxI ⎰+=102)1/(156e ε=-算法)((12/12∑-=++=n k k n n n x f h T T ;/)(n a b h n -= n k h k x )2/1(2/1+=+)(3/122n n n n T T T S -+= )_(15/122n n n n S S S C +=)(63/122n n n n C C C R -+=用事后估计法控制精度2|5e -6n n R R -< 。

4.源程序:1)/* 用复化辛卜生公式求积分 */ #include "stdio.h" float fx(float x){double f;f=1.0/(1.0+x*x); return f; } double fs(int n){double a=0.0,b=1.0,h,s,s1,s2=0; int i;h=(b-a)/n; s1=fx(a+h/2); for(i=1;i<n;i++){s1=s1+fx(a+i*h+h/2); s2=s2+fx(a+i*h);}s=(h/6.0)*(fx(a)+fx(b)+4*s1+2*s2);return s;}void main(){printf("实验三复化辛卜生法计算机112 耿向飞学号:112434\n");printf("s(2)=%lf\ns(4)=%lf\ns(8)= %lf",fs(2),fs(4),fs(8));}2)/* 龙贝格法 */#include "stdio.h"#include "math.h"#define E 2.71828182//被积函数f(x)double fx(double x){double f;f=1/(1+x*x);return f;}//梯形公式求tndouble tx(int n){double s3=0.0,h,t,b=1.0,a=0.0;int i;h=(b-a)/n;for(i=1;i<n;i++)s3=s3+fx(i*h);t=(h/2)*(fx(a)+fx(b)+2*s3);return t;} double s(int n){double s;s=tx(2*n)+(1.0/3.0)*(tx(2*n)-tx(n ));return s;}double c(int n){double c;c=s(2*n)+(1.0/15.0)*(s(2*n)-s(n)) ;return c;}double r(int n){double r;r=c(2*n)+(1.0/63.0)*(c(2*n)-c(n)) ;return r;}void main(){double rr,pp;int n=1;rr=r(n);pp=r(2*n)-r(n);printf("实验三龙贝格法计算机112 耿向飞学号:112434\n");printf("结果为:%.15lf 误差小于等于: %.15lf",rr,pp);}5.运行结果1)复化辛卜生公式2)龙贝格算法6.对算法的理解与分析:复化辛卜生公式和龙贝格算法适用于求数值积分,而且都能提高计算积分的精度龙贝格算法其实是在复化辛卜生公式递推的基础之上生成的一种精度高,而且收敛速度也较快的一种算法。

常见算法设计实验报告(3篇)

常见算法设计实验报告(3篇)

第1篇一、实验目的通过本次实验,掌握常见算法的设计原理、实现方法以及性能分析。

通过实际编程,加深对算法的理解,提高编程能力,并学会运用算法解决实际问题。

二、实验内容本次实验选择了以下常见算法进行设计和实现:1. 排序算法:冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序。

2. 查找算法:顺序查找、二分查找。

3. 图算法:深度优先搜索(DFS)、广度优先搜索(BFS)、最小生成树(Prim算法、Kruskal算法)。

4. 动态规划算法:0-1背包问题。

三、实验原理1. 排序算法:排序算法的主要目的是将一组数据按照一定的顺序排列。

常见的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序等。

2. 查找算法:查找算法用于在数据集中查找特定的元素。

常见的查找算法包括顺序查找和二分查找。

3. 图算法:图算法用于处理图结构的数据。

常见的图算法包括深度优先搜索(DFS)、广度优先搜索(BFS)、最小生成树(Prim算法、Kruskal算法)等。

4. 动态规划算法:动态规划算法是一种将复杂问题分解为子问题,通过求解子问题来求解原问题的算法。

常见的动态规划算法包括0-1背包问题。

四、实验过程1. 排序算法(1)冒泡排序:通过比较相邻元素,如果顺序错误则交换,重复此过程,直到没有需要交换的元素。

(2)选择排序:每次从剩余元素中选取最小(或最大)的元素,放到已排序序列的末尾。

(3)插入排序:将未排序的数据插入到已排序序列中适当的位置。

(4)快速排序:选择一个枢纽元素,将序列分为两部分,使左侧不大于枢纽,右侧不小于枢纽,然后递归地对两部分进行快速排序。

(5)归并排序:将序列分为两半,分别对两半进行归并排序,然后将排序好的两半合并。

(6)堆排序:将序列构建成最大堆,然后重复取出堆顶元素,并调整剩余元素,使剩余元素仍满足最大堆的性质。

2. 查找算法(1)顺序查找:从序列的第一个元素开始,依次比较,直到找到目标元素或遍历完整个序列。

《大学计算机课程》实验报告1-4

《大学计算机课程》实验报告1-4

《大学计算机基础》课程实验报告手册学院年级专业姓名学号任课教师上机地点(以上由学生填写)实验教师(签字)西南大学计算机与信息科学学院计算机基础教育系年月日《大学计算机基础》课程实验报告一《大学计算机基础》课程实验报告二《大学计算机基础》课程实验报告三《大学计算机基础》课程实验报告四(综合设计)学期总结这个学期,我们学习了《大学计算机基础实践》和《大学计算机——计算思维的视角》两本书。

实践教程主要讲解了windows7及office 2013版,在讲Windows7时,老师不仅讲了win7,同时也讲了微软公司一系列的Windows产品,在什么时候出了什么操作系统,其特点又是什么。

改变了不少人认为最新操作系统就是好系统的错误观点。

而office则是一套经典的、常用的办公软件,就word 而言,简单的输入文字,或许大家都会,但细致的处理则未必人人都会。

在当今社会,office已经成为很多行业必备的能力。

在今后的学习过程中,应当多与他人交流,作为非计算机专业的学生,难免有很多知识不懂。

更重要的是要知道,计算机并不是简单的娱乐工具,运用别人设计好的程序并不能算是懂计算机。

计算机在科技研究上有这极其重要作用,能自主根据需求设计需要的程序才是真正的计算机能手。

对一些常用的软件,如office,要经常使用,才能发现问题,同时包括电脑操作上的问题都可以上网查答案,养成自行解决疑难的好习惯,在运用中找到不足,弥补不足。

此外最好能够掌握一门高级语言,通过编程可以大大发散个人思维能力。

通过这次学习我真正体会到了计算机知识的更新是很快的,随着教育体制的改革和教育理念的更新,以及信息技术的飞速发展,如何接受新的教育理念,转变我们传统的教育观念,来充实我们的计算机技能,已经成为我们每一个人必须要解决的第一个问题.只有不断地学习,才能掌握最新的知识,才能在以后把工作做得更好。

我们也渴望能够多学关于计算机方面的知识.。

我相信在更多的学习机会中,我们懂的也会越来越多。

数学实验报告4

数学实验报告4

实验报告4实验名称数列与级数实验目的通过计算机图示的方法发现数列与级数的规律及其极限状态的性质。

实验环境Mathematica 4实验内容1. 分别取N=10,20,50,100,500,观察Fibonacci 数列的折线图。

2. 分别取N=2000,5000,10000,用直线去拟合N n F n n ,,2,1)),log(,( =的函数。

3. 分别取N=100,500,5000,演奏Fibonacci 数列的函数。

4. 分别取N=100,1000,5000,显示点列n i i i ,,2,1)),sin(,( =的函数。

5. 求级数∑∞=11n n α的部分和。

实验的基本理论和方法所谓一个无穷数列是指按一定顺序排列的一串数字 ,,,,21n a a a , (1) 而一个无穷级数则是用无穷项数字构成的和式.211 ++++=∑∞=n n n a a a a (2)数列与级数有着密不可分的关系。

给定一个无穷级数(2),它唯一确定了一个无穷数列,,,21 S S其中.,2,1,21 =+++=n a a a S n n 反过来,给定一个无穷数列(1),它也唯一地确定了一个无穷级数∑∞=1n n b,这里.,2,1,,111 =-==-n a a b a b n n n 并且,无穷级数的和就是相应的无穷是咧的极限。

因此,无穷数列与无穷级数是可以相互转化的。

实验步骤1. 用如下语句作图:FibShow[n_Integer]:=Module[{t={},i},For[i=1,i<=n,i++,AppendTo[t,{i,Fibonacci[i]}]]; ListPlot[t,PlotJoined-> True]]FibShow[N]2. 用如下语句计算:FibFit[n_Integer]:=Module[{t={},i},For[i=1,i<=n,i++,AppendTo[t,{i,Log[Fibonacci[i]]}]]; Fit[t,{1,x},x]]FibFit[N]3.用如下语句作图:FibPlay[n_Integer]:=Module[{t={},i},For[i=1,i<=n,i++,AppendTo[t,Mod[Fibonacci[i],n]]];ListPlay[t,PlayRange->{0,n},SampleRate->5]]FibPlay[N]4. 用如下语句作图:PlotList[n_Integer]:=Module[{t={},i},For[i=1,i<=n,i++,AppendTo[t,{i,Sin[i]}]];ListPlot[t,PlotStyle->{PointSize[0.005]}]]PlotList[N]5.用如下语句计算:HamoSum[n_Integer, m_Integer]:=Module[{i},Sum[1/i^m,{i,1,n}]]实验结果与结果分析1.从实验得出的五个图像可以看出,Fibonacci数列的变化速度非常快,数列单调递增而且趋于无穷大。

大学计算机实验4 实验报告

大学计算机实验4 实验报告

深圳大学实验报告课程名称:计算机基础实验名称:电子表格处理学院:建筑与城市规划学院专业:建筑学报告人:XXX学号:2015XXXX班级:XXXXXX同组人:指导教师:李炎然实验时间:2015.11.16实验报告提交时间:2015.11.22教务处制一.实验目的1.掌握工作表和工作簿的基本操作。

2.掌握公式和函数的使用方法。

3.掌握数据清单的管理方法。

4.掌握数据分析工具和VBA编程方法。

二.实验步骤与结果5.2实验环境1.硬件环境:微机2.软件环境:Windows8中文版,WPS表格20165.3实验内容1.Excel的基本操作⑴Excel工作窗口的组成执行“开始”菜单的“所有程序”/“WPS Office2016”/“WPS表格”命令(如图5-1所示),图5-1“开始”菜单或双击桌面上的“WPS 表格”快捷图标。

点击按钮打开菜单后单击“新建”新建空白表格文件,同时在该工作簿中新建了一个名为“sheet1”的空工作表,该工作表就是默认的当前工作表,如图5-2和图5-3所示。

(2)单元格的操作图5-2新建空工作表图5-3WPS 表格2016工作窗口①选择单元格选择一个单元格,直接单击相应的单元格即可。

若选择一行或一列单元格,将鼠标移动到相应行或列对应的数字或字母处,单击即可。

若选择多行或多列单元格,将鼠标移动到相应行或列对应的数字或字母处,然后拖动到适当的位置松开即可。

②清除单元格选择要清除的单元格,按Delete或单击右键选择“清除内容”命令即可,如图5-4所示。

图5-4快捷菜单③修改单元格内容双击需要修改内容的单元格,然后输入新的内容,单击Enter即可。

④插入单元格首先在要插入单元格的地方选择单元格,选择单元格的数目和即将要插入的单元格。

然后在选择的区域右击,选择“插入”命令,从弹出的对话框中选择要插入的方式。

⑤删除单元格首先在要删除单元格的地方选择单元格,选择单元格的数目和即将要删除的单元格。

力学计算实验报告

力学计算实验报告

一、实验目的本次实验旨在通过实际操作,加深对力学基本概念和计算方法的理解。

通过实验,掌握以下内容:1. 力的合成与分解;2. 物体的受力分析;3. 力矩和力偶的计算;4. 物体平衡条件的应用;5. 力学实验数据的处理和分析。

二、实验原理力学计算实验涉及的主要原理包括:1. 力的合成与分解:根据力的平行四边形法则,将多个力合成一个力,或将一个力分解为两个分力。

2. 物体的受力分析:分析物体所受的力,包括重力、支持力、摩擦力等,并根据力的作用线、作用点等特征进行计算。

3. 力矩和力偶的计算:力矩是力与力臂的乘积,力偶是两个等大、反向、不共线的力。

通过计算力矩和力偶,可以分析物体的转动状态。

4. 物体平衡条件的应用:物体在力的作用下处于平衡状态时,所受的合力为零,合力矩为零。

5. 力学实验数据的处理和分析:对实验数据进行整理、计算和分析,得出结论。

三、实验设备与仪器1. 力学实验台;2. 力学测力计;3. 支撑杆;4. 滑轮;5. 测力计;6. 水平仪;7. 计算器;8. 记录纸。

四、实验步骤1. 实验一:力的合成与分解(1)搭建力学实验台,将测力计固定在实验台上;(2)用测力计分别测量两个力的合力,记录数据;(3)用平行四边形法则计算两个力的合力,并与实验数据进行比较。

2. 实验二:物体的受力分析(1)搭建力学实验台,将物体放置在实验台上;(2)分析物体所受的力,包括重力、支持力、摩擦力等;(3)根据受力分析,计算物体所受的合力,判断物体的运动状态。

3. 实验三:力矩和力偶的计算(1)搭建力学实验台,将物体放置在实验台上;(2)分析物体所受的力,确定力臂;(3)计算力矩和力偶,判断物体的转动状态。

4. 实验四:物体平衡条件的应用(1)搭建力学实验台,将物体放置在实验台上;(2)分析物体所受的力,判断物体的平衡状态;(3)验证物体是否满足平衡条件。

5. 实验五:力学实验数据的处理和分析(1)整理实验数据,进行计算;(2)分析实验数据,得出结论。

4的倍数特征实验报告单

4的倍数特征实验报告单

4的倍数特征实验报告单4的倍数特征实验报告一、实验目的本实验的目的是研究4的倍数的特征,通过实验数据的统计分析,探讨并验证4的倍数的一些显著特征,为数学研究提供实证依据。

二、实验设计本实验采用的方法是通过对一定范围内的整数进行筛选,统计其中4的倍数的特征,并进行数学分析。

具体实验设计如下:1. 定义实验的整数范围,在本实验中我们选择了1到1000之间的整数;2. 通过循环筛选出范围内的4的倍数,将其记录下来;3. 对筛选出的4的倍数数据进行统计分析,包括计算出均值、标准差、中位数等数学特征;4. 通过绘制直方图、箱线图等图表,展示4的倍数数据的分布特征;5. 对统计和图表结果进行分析和总结。

三、实验过程本实验的具体步骤如下:1. 编写程序,使用编程语言进行循环筛选范围内的整数,找出4的倍数,并将其记录下来;2. 计算筛选得到的4的倍数数据的均值、标准差、中位数等统计特征;3. 绘制直方图、箱线图等图表,展示4的倍数数据的分布特征;4. 分析统计和图表结果,探究4的倍数的特征;5. 撰写实验报告,总结实验结果。

四、实验结果通过实验数据的统计分析,我们得到了如下结果:1. 在1到1000之间的整数中,有250个数是4的倍数;2. 筛选得到的4的倍数数据的均值为200,标准差为115.47;3. 4的倍数数据的中位数为200,说明4的倍数数据的分布相对均匀;4. 通过绘制直方图可以看出4的倍数数据的分布近似于正态分布;5. 箱线图显示4的倍数数据的离群点较少,整体分布较为集中。

五、数据分析与讨论根据实验结果和分析,可以得出以下结论:1. 4的倍数的数目相对较多,约占整数范围的四分之一;2. 4的倍数的分布较为均匀,没有明显的聚集现象;3. 4的倍数数据的均值较大且方差较大,说明4的倍数的数值波动较大;4. 4的倍数数据的分布近似于正态分布,说明其随机性较好;5. 4的倍数数据的离群点较少,说明其整体分布较为集中。

细胞活性计算实验报告

细胞活性计算实验报告

一、实验目的通过本实验,了解细胞活性的基本概念和计算方法,掌握使用MTT法(噻唑蓝法)测定细胞活性的原理和操作步骤,学会通过细胞活性数据评估细胞在不同条件下的生长状态。

二、实验原理细胞活性是指细胞在一定条件下进行正常生命活动的程度。

MTT法是一种常用的细胞活性检测方法,通过检测细胞代谢活性来判断细胞的生长状态。

该方法的原理是:活细胞内的酶系可以将MTT(噻唑蓝)还原成甲臜(Formazan),甲臜的生成量与细胞活性成正比。

通过比色法测定甲臜的吸光度值,可以计算出细胞的活性。

三、实验材料1. 细胞系:某细胞株2. 细胞培养液:DMEM培养基3. MTT试剂:噻唑蓝4. DMSO:二甲基亚砜5. 吸光度计6. 微量移液器7. 培养箱8. 培养皿9. 封口膜四、实验器材1. 电子天平2. 移液器3. 培养箱4. 培养皿5. 吸光度计6. 移液枪7. 微量滴定板8. 移液器吸头五、实验药品及试剂1. 细胞系:某细胞株2. 细胞培养液:DMEM培养基3. MTT试剂:噻唑蓝4. DMSO:二甲基亚砜5. 胰蛋白酶:0.25%6. PBS缓冲液六、实验步骤1. 细胞培养:将细胞接种于培养皿中,置于培养箱中培养至对数生长期。

2. 细胞传代:用胰蛋白酶消化细胞,按1:2的比例传代培养。

3. 细胞活性测定:将细胞接种于96孔板中,每组设3个复孔。

待细胞贴壁后,分别加入不同浓度的药物或处理组,对照组加入等体积的DMEM培养基。

继续培养24小时。

4. MTT处理:向每孔中加入20μl MTT试剂,继续培养4小时。

5. DMSO溶解:向每孔中加入150μl DMSO,充分振荡,使甲臜溶解。

6. 比色:用酶标仪在570nm波长下测定各孔的吸光度值。

7. 数据处理:计算细胞活性,公式如下:细胞活性(%)=(实验组吸光度值 - 空白组吸光度值)/(对照组吸光度值 - 空白组吸光度值)×100%七、实验结果通过实验,我们得到了不同浓度药物或处理组对细胞活性的影响。

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

计算方法实验报告(四)(一)线性方程的迭代解法一、实验问题利用简单迭代法,两种加速技术,牛顿法,改进牛顿法,弦割法求解习题5-1,5-2,5-3中的一题,并尽可能准确。

选取5-3:求在x=1.5附近的根。

二、问题的分析(描述算法的步骤等)(1)简单迭代法算法:给定初始近似值,求的解。

Step 1 令i=0;Step 2 令(计算);Step 3 如果,则迭代终止,否则重复Step 2。

(2)Aitken加速法算法Step 1 令k=0,利用简单迭代算法得到迭代序列;Step 2 令-(计算得到一个新的序列,其中k=0,1,2…);Step 3 如果,则迭代终止,否则重复Step 2。

(3)插值加速法算法Step 1 令k=0,利用简单迭代算法得到迭代序列;Step 2 令+(计算得到一个新的序列,其中k=1,2,3…);Step 3 如果,则迭代终止,否则重复Step 2。

(4)牛顿法算法Step 1给定初始近似值;Step 2令,其中k计算得到的序列;Step 3如果,则迭代终止,否则重复Step 2。

(5)改进牛顿法的算法Step 1给定初始近似值;Step 2令,其中k迭代计算得到的序列;Step 3如果,则迭代终止,否则重复Step 2。

(6)弦割法算法(双点弦割法)Step 1给定初始近似值,;Step 2令其中k计算得到的序列;Step 3如果,则迭代终止,否则重复Step 2。

三、程序设计(1)简单迭代法利用迭代公式进行迭代运算。

#include <iostream.h>#include <math.h>#include<stdio.h>double fun(double x){double c=1+x*x;returnpow(c,1/3.0);}void main(){double x=1.5;double y=0;double D=1;double e=0.001;while(D>e){D=0;y=fun(x);if(fabs(y-x)>=D){D=fabs(y-x);}x=y;}cout<<x<<endl;}(2) )Aitken加速法源程序如下:x1=1.5;eps=0.0001;y1=(1+x1^2)^(1/3);z1=(1+y1^2)^(1/3);x=z1-(z1-y1)^2/(z1-2*y1+x1); while eps<abs(x2-x)x=x2;x1=y1;y1=(1+x1^2)^(1/3);z1=(1+y1^2)^(1/3);x2=z1-(z1-y1)^2/(z1-2*y1+x1); n=n+1;endfprintf('迭代次数 n=%.0f\n',n); fprintf('x2=%.5f\n',x2)(3)插值加速法源程序如下:x1=0;x2=1.5;eps=0.0000001;y1=0;z1=0;n=0;while eps<abs(x2-x1)x1=x2;y1=(1+x1^2)^(1/3);z1=(1+y1^2)^(1/3);x2=z1+(z1-y1)^2/(z1-2*y1+x1); n=n+1;endfprintf('迭代次数 n=%.0f\n',n);fprintf('x2=%.5f\n',x2)(4)牛顿法:利用公式进行迭代运算程序设计如下:#include <iostream.h>#include <math.h>double fun(double x){double a=2*pow(x,3.0)-pow(x,2.0)+1; double b=3*pow(x,2.0)-2*x;return a/b;}void main(){double x=1.5;double y=0;double D=1;double e=0.001;double f=0;while(D>e){D=0;y=fun(x);if(fabs(y-x)>=D){D=fabs(y-x);}x=y;f++;}cout<<x<<endl;cout<<"f="<<f<<endl;}(5)运用改进牛顿法:迭代公式:程序代码如下:#include <iostream.h>#include <math.h>double fun(double x){double a=2*pow(x,3.0)-pow(x,2.0)+1; double b=3*pow(x,2.0)-2*x;double c=pow((pow(x,3.0)-pow(x,2.0)-1),2.0); double d=(6*x-2)/12;return a/b-c*d;}void main(){double x=1.5;double y=0;double D=1;double e=0.001;double f=0;while(D>e){D=0;y=fun(x);if(fabs(y-x)>=D){D=fabs(y-x);}x=y;f++;}cout<<x<<endl;cout<<"f="<<f<<endl;}(6)利用弦割法利用公式程序代码:#include "stdafx.h"#include <iostream>using namespace std;#include <math.h>doublefua(double l){returnpow(l,3.0)-pow(l,2.0)-1;}int _tmain(intargc, _TCHAR* argv[]){double x=1.4;double y=0;double D=1;double e=0.001;double f=0;while(D>e){D=0;y=x-fua(x)*(x-1.5)/(fua(x)-0.125);if(fabs(y-x)>=D){D=fabs(y-x);}x=y;f++;}cout<<x<<endl;cout<<"f="<<f<<endl;return 0;}四、计算结果(1)简单迭代法的运行结果:x=1.46624(2)Aitken加速法运行结果如下:迭代次数 n=15x2=1.46557(3)插值加速法运行结果如下:迭代次数 n=15x2=1.46557(4)牛顿迭代法的运行结果如下(5)改进牛顿迭代法运行结果:(6)弦割法的运行结果五、结果分析通过实验很容易发现在相同的准确数字时,加速迭代法的迭代次数明显少于简单的迭代法。

但仅仅就实验结果而言,牛顿迭代法和改进的牛顿迭代法与弦割法所得运行结果相同,但是改进的迭代法速度比牛顿迭代法要快速。

六、实验的总结与体会迭代法是一种逐次逼近的方法,且都是局部收敛的,具有原理简单,编写程序方便等优点,但还存在是否收敛与收敛速度快慢的问题,不能盲目使用。

当迭代过程只有线性收敛速度时,可采用埃特金加速法实现加速。

牛顿法是一种特殊的迭代法,用于求方程单根时具有二阶收敛速度。

但牛顿法对初值的要求苛刻,而且需要求函数的导数,遇到求导数复杂的情形,常用弦割法求解。

弦割法是对牛顿法的变形,不需要求函数的导数,但收敛阶不高,而且需要提供两个较好的初值。

(二)线性方程组的迭代解法一、实验问题利用雅可比迭代法,赛德尔迭代法求解如下方程组二、问题的分析(描述算法的步骤等)雅克比迭代法算法如下:(1)对令(2)令(3)对做令对但令令若则令(4)对i=1令(5)若D则转到()(6)输出并停止计算赛德尔迭代法算法如下()对令()令(3)对做令对但令令若则令令(4)若D则转到()(5)输出并停止计算三、程序设计(1)运用雅可比迭代法进行迭代:代码如下:#include <iostream.h>#include <math.h>void main(){double x[3]={0,0,0};double a[3][3]={-8,1,1,1,-5,1,1,1,-4}; double b[3]={1,16,7};double y[3];double e=0.04;double D=1;int f=0;while(D>e){D=0;for(int c=0;c<5;c++){for(int i=0;i<3;i++){y[i]=b[i];for(int j=0;j<3;j++){if(j!=i){y[i]=y[i]-a[i][j]*x[j];}y[i]=y[i]/a[i][i];if(fabs(x[i]-y[i])>=D){D=fabs(x[i]-y[i]);}}for(int l=0;l<3;l++){x[l]=y[l];}}f++;}for(int k=0;k<3;k++){cout<<x[k]<<endl;}cout<<f<<endl;}(2)赛德尔迭代法源代码如下:程序代码:#include <iostream.h>#include <math.h>#include<stdio.h>void main(){double x[3]={0,0,0};double a[3][3]={-8,1,1,1,-5,1,1,1,-4}; double b[3]={1,16,7};double y;double e=0.0001;double D=1;double f=0;while(D>e){D=0;for(int c=0;c<5;c++){for(int i=0;i<3;i++){y=b[i];for(int j=0;j<3;j++)if(j!=i){y=y-a[i][j]*x[j];}}y=y/a[i][i];if(fabs(x[i]-y)>=D){D=fabs(x[i]-y);}}for(int l=0;l<3;l++){x[l]=y[l];}}f++;}for(int k=0;k<3;k++){cout<<x[k]<<endl;};cout<<f<<endl;}四、计算结果(1)雅克比迭代法运行结果如下:(2)赛德尔迭代法运行结果如下:五、结果分析通过观察运行结果很容易发现使用赛德尔迭代法求解此线性方程组具有明显的优势,它的迭代次数明显少于雅克比迭代法,因此收敛速度更快。

相关文档
最新文档