搜档网
当前位置:搜档网 › 实验2 MATLAB的基本数据类型

实验2 MATLAB的基本数据类型

实验2 MATLAB的基本数据类型
实验2 MATLAB的基本数据类型

数学与软件科学学院实验报告

学期:至第学期 201年月日

课程名称:MATLAB程序设计及应用专业:信息与计算机科学实验编号:实验项目:MATLAB的基本数据类型

指导教师:班级:级班学号:

姓名:实验成绩:

一、实验目的及要求

(1) 熟悉MATLAB提供的常用数据类型:

数值:numeric

字符:char

逻辑:logical

单元:cell

结构:struct

(2) 掌握每种数据类型标识符、范围以及不同数据类型之间的

转换方式;

(3) 熟悉MATLAB提供的运算符;

(4)熟练掌握MATLAB常用函数的用法

二、实验内容

(1) 利用MATLAB简单计算的功能完成第二章课后习题;

(1) 利用MATLAB简单计算的功能完成第二章课后习题;

一、判断下面语句的运算结果:

(1)4<20

(2)4<=20

(3)4==20

(4)4~=20

(5)'b'<'B'

二、设a=39,b=58,c=3,d=7,判断下面表达式的值:

(1)a>b

(2)a

(3)a>b && b>c

(4)a==d

(5)a|b>c

(6)~~d

(2) 利用class()函数测已知变量的数据类型;

(3) 熟练掌握不同数据类型之间转换的两种格式,分别将已知变量的数据类型转换成int16,double类型;

(4) 利用函数测实数及整数的范围;

(5) 通过两种方式创建下列复数,并测试所创建的数是否为复数:

100+24i、10-23.567i、20

(6) 熟悉逻辑数组的创建、使用方法;

数值计算实验课题目

数值实验课试题 本次数值实验课结课作业,请按题目要求内容写一篇文章。按题目要求 人数自由组合,每组所选题目不得相同(有特别注明的题目除外)。试题如下: 1)解线性方程组的Gauss 消去法和列主元Gauss 消去法(2人)/*张思珍,巩艳华*/ 用C 语言将不选主元和列主元Gauss 消去法编写成通用的子程序,然后用你编写的程序求解下列84阶的方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 1681684 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 2)解线性方程组的平方根法(4人)/*朱春成、黄锐奇、张重威、章杰*/ 用C 语言将平方根法和改进的平方根法编写成通用的子程序,然后用你编写的程序求解对称正定方程组b Ax =,其中 (1)b 随机的选取,系数矩阵为100阶矩阵 ?????? ???? ? ? ?101 1101 1101 1101 1101110 ; (2)系数矩阵为40阶的Hilbert 矩阵,即系数矩阵A 的第i 行第j 列元素为 1 1-+= j i a ij ,向量b 的第i 个分量为∑=-+ = n j i j i b 1 1 1. 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编

3.《数值分析简明教程》,王能超编 3)三对角线方程组的追赶法(3人)/*黄佳礼、唐伟、韦锡倍*/ 用C 语言将三对角线方程组的追赶法法编写成通用的子程序,然后用你编写的程序求解如下84阶三对角线方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 16816 84 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值分析简明教程》,王能超编 4)线性方程组的Jacobi 迭代法(3人)/*周桂宇、杨飞、李文军*/ 用C 语言将Jacobi 迭代法编写成独立的子程序,并用此求解下列方程组, 精确到小数点后5位 ???? ? ??=????? ??????? ? ?-149012 2111221 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 5)线性方程组的Gauss-Seidel 迭代法(3人)/*张玉超、范守平、周红春*/ 用C 语言将Gauss-Seidel 迭代法编写成独立的子程序,并用此求解下列方程组,精确到小数点后5位 ???? ? ??=????? ??????? ? ?--39721 1111112 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 6)解线性方程组的最速下降法法(2人)/*赵育辉、阿热孜古丽*/ 用C 语言将最速下降法编写成通用的子程序,然后用你编写的程序求解对称

实验2---数据类型、运算符和简单的输入输出

实验2 数据类型、运算符和简单的输入输出 【实验目的】掌握C语言数据类型,了解字符型数据和整型数据的内在关系;掌握对各种数值型数据的正确输入方法学会使用C的有关算术运算符以及包含这些运算符的表达式,特别是自加(++)和自减(––)运算符的使用;学会编写和运行简单的应用程序。 【实验内容】 1、输入教材第3章第4题(P83)给出的程序,按照(1)(2)(3)的要求分别运行,并分析其结果。 2、P83第5题。 用下面的scanf函数输入数据,使得a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,问在键盘上如何输入? #include int main( ) { int a,b; float x,y; char c1,c2; scanf(“a=%d b=%d”,&a,&b); scanf(“%f %e”,&x,&y); scanf(“%c %c”,&c1,&c2); printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2); return 0; } 3、输入以下程序: #include int main() { int i,j,m,n; i=8;

j=10; m=++i; n=j++; printf(”%d,%d,%d,%d\n”,i,j,m,n); return 0; } (1)编译和运行程序,注意i,j,m,n各变量的值。(2)将第7,8行改为 m=i++; n=++j; 再编译和运行,分析结果。 (3)把第7,8删掉,将程序中的printf语句改为printf(“%d,%d\n”,i++,j++); 再编译和运行,查看结果。 (4)在(3)的基础上,将printf语句改为 printf(”%d,%d,%d,%d\n”,i,j, i++,j++); 再编译和运行,分析结果。 (5)程序改为: #include int main() { int i,j,m=0,n=0; i=8; j=10; m+=i++; n–=––j; printf(”i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n); return 0; } 再编译和运行,分析结果。

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

实验2基本数据类型与数组(最新整理)

民族学院实验报告 计算机科学 系 级 班 指导教师 报告人20 年 月 日 成 绩 课程名称 JAVA 语言程序设计实验名称实验二 基本数据类型与数组实验 目的 1.掌握基本数据类型及其相互之间的转换2.掌握JAVA 中数组的使用实验仪器 和器材具有JDK 环境的计算机一台 实验内容和要求 一、输出希腊字母表 1.请按模板要求,将【代码】替换为Java 程序代码,运行该程序时在命令窗口中输出希腊字母表。其运行效果如图 2.1所示。 图2.1 输出希腊字母表 GreekAlphabet.java public class GreekAlphabet { public static void main(String[] args) { int startPosition=0,endPosition=0; char cStart='α',cEnd='ω'; startPosition=(int )cStart; //cStart 做int 型数据转换,并将结果赋值给startPosition endPosition=(int )cEnd; //cEnd 做int 型数据转换,并将结果赋值给EndPosition System.out.println("希腊字母\'α\'在Unicode 表中的顺序位置:"+(int)cStart); System.out.println("希腊字母表:"); for (int i=startPosition;i<=endPosition;i++){ char c='\0'; cStart=(char )i; //i 做char 型转换运算,并将结果赋值给c System.out.print(" "+c); if ((i-startPosition+1)%10==0) System.out.println(); } } } 2.实验后练习 (1)将一个double 型数据直接赋值给float 型变量,程序编译时提示怎样的 错误? 答:程序提示的内容为:“可能损失精度”。 (2)在应用程序的main 方法中增加语句:

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

c++实验2 数据类型与表达式

实验2 数据类型与表达式 实验目的 ●掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值 的方法; ●懂得转义字符的使用; ●了解基本数据类型的字节宽度; ●进一步熟悉C++程序的编辑、编译、连接和运行的过程; ●掌握数据的输入输出的方法; ●掌握运算符的优先级和结合性,能够正确书写表达式; ●掌握不同的类型数据之间运算的类型转换规则,理解自动类型转换和会使用强制类型转 换。 实验内容: 1、基本数据类型的长度 验证你的C++编译环境中每个基本数据类型的长度(即在内存空间所占的字节个 数)。用sizeof运算符获取类型或数据的所占字节数。 # include using namespace std; int main() { cout << "字符'a' 所占字节数: " << sizeof('a') << endl; cout << "字符\"a\"所占字节数: " << sizeof("a") << endl; cout << "字符串\"China\" 所占字节数: " << sizeof("China") << endl; cout << "整型常量默认为int,int型所占字节数: " << sizeof(136) << endl; cout << "短整型short类型所占字节数: " << sizeof(short) << endl; cout << "实型常量.23456默认为double类型,double字节数:" << sizeof(1.23456) << endl; cout << "float型数据所占字节数:" << sizeof(float) << endl; cout << "double型数据所占字节数:" << sizeof(double) << endl; cout << "bool型数据所占的字节数:" << sizeof(bool) << endl; return 0; } 1)人工分析程序,写出应得结果,上机后将二者对照。 2)仿照上述程序输出基本数据类型char, short, int, long double, float, double,bool的数据类型长度。 3)为什么字符串长度比总字符个数还要多1? 2、先阅读下列程序,写出执行结果(有些程序可能存在错误,请调试、改正) (1) #include using namespace std; int main()

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

实验2 简单数据类型和流程控制

实验二简单数据类型和流程控制 一、实验目的 1.掌握Java语言的标识符和保留字,各简单数据类型变量以及有逻辑量意义数据的表示方法以及表示条件的表达式的类型。 2.掌握Java语言中具各种运算符表达式的基本知识。 3.熟练掌握使用if语句进行单分支结构和双分支结构程序设计的基本方法。4.熟练掌握使用if语句的嵌套及switch语句进行多分支结构程序设计的基本方法。 5.熟练掌握while、do-while和for三种语句组成循环结构的基本方法。熟练掌握特殊流程控制语句如break,continue,标号语句。 二、实验内容与要求 1、仔细读下面的JA V A语言源程序,自己给出程序的运行结果然后编译、运行进行验证。 public class Ch21 { public static void main(String args[]) { char x,y,z; x='K'; y='\\'; z='\117'; System.out.print(x); System.out.print(y); System.out.print(z); } } 2、仔细读下面的JA V A语言源程序,自己给出程序的运行结果然后编译、运行进行验证。 public class Ch22 { public static void main(String args[]) { boolean x,y,z; int a=12,b=24; x=(a>b); y=(a!=b); z=(a+b==36); System.out.println("x="+x); System.out.println("y="+y); System.out.println("z="+z); } }

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

数值计算方法实验5

实验报告 学院(系)名称: 主程序部分列选主元部分

实验结果: 一.列主元消去法 输入各个数据,最终使用列选主元法,得到结果为:x1=x2=x3=1二.高斯-赛德尔迭代法 输入各个数据,输出每一步迭代数据,最终结果为:x1=0.285716,附录(源程序及运行结果) 一.列主元高斯消去法 #include #include void print(double a[3][3],int n,double b[3]){ printf("输出矩阵:\n"); for(int i=0;ifabs(d)){ d=a[i][k]; l=i; } i++; } printf("选出主元:%lf\n",d); if(d==0) printf("矩阵奇异!\n"); else if(l!=k){ for(int j=k;j

实验报告_实验2 数据类型与表达式

实验报告_实验 2 数据类型与表达式(学生学号__姓名) 一、实验目的: 1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据; 2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用; 3、熟悉字符常量与一般常量的定义、使用; 4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果; 5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。 二、实验内容 1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。 回答下列问题: (1)sizeof运算符如何使用?它的操作数可以是类型关键字吗? 答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。可以。 (2)整数的占用长度与其数值大小有关吗? 答:有。 (3)字符串中’\’’、’\n’、’\t’的功能各是什么? 答:单引号,换行,水平制表。 (4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字 符? 答:1个字节;4个字节;结束符‘\0’。 (5)整数的存储形式是什么? 答:二进制补码。

2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。 回答下列问题: (1)字符数据在内存中是以什么方式存储的? 答: ASCII码。 (2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符” 方式输出字符? 答:能,整数:”%d”,字符:”%c”。 (3)大小写字母的ASCII有什么关系?(如:’G’与’g’) 答:ASCII码相差32。 (4)如何由’A’、’a’分别得到后续的大写字母、小写字母? 答:’A+1’,’a+1.’ (5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个 字符吗?若能,如何得到? 答:两个ASCII码绝对值相减,’a’-5,’a’+10. (6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’? 答:”C”字符串,’c’字符,能. 3、(基础题)符号常量与常变量(即用const关键字定义)的使用: 回答问题: (1)写出用符号常量定义PI的格式; #define PI (2)写出用“常变量”方式定义PI值的语句。 Const float PI=; 4、(基础题)运行下列程序,体会/、%运算符的用法: 回答下列问题: (1)运算符/的操作数有什么要求? 答:被除数不能为0.

大一上期C语言实验报告2 数据类型、运算符和表达式

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对它们赋值的方法 (2)掌握不同的数据类型之间赋值的规律 (3)学会使用关系运算符,以及包含这些运算符的表达式,特别是自增和自减运算符的使用 2.实验内容 (1)要将China译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。例如A后面第4个字母是E,用E代替A,因 此,China应翻译为Glmre。请编译一个程序,用赋初值的方式是 c1,c2,c3,c4,c5,五个变量的值分别 为’C’、’h’、’i’、’n’、’a’,经过运算,使 c1,c2,c3,c4,c5,分别为’G’、’l’、’m’、’r’、’e’ ①画出算法流程图,输入事先已编好的程序,并运行该程序,分 析是否符合要求。 ②改变c1,c2,c3,c4,c5的值分别为Today,修改程序并运行 ③修改程序,完成上述译码规则的解码操作,并将密码PSZI解码 成明文 3.流程图

4.源代码 #include void main() {char c1='C',c2='h',c3='i',c4='n',c5='a'; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);} 修改后的程序 #include void main() {char c1='T',c2='o',c3='d',c4='a',c5='y'; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);} 将密码PSZI解码成明文 #include void main() {char c1='P',c2='S',c3='Z',c4='I'; c1-=4; c2-=4; c3-=4; c4-=4; printf("%c%c%c%c\n",c1,c2,c3,c4);} 5.运行结果 将China翻译成密码 将China改成Today

(完整版)数值计算方法上机实习题答案

1. 设?+=1 05dx x x I n n , (1) 由递推公式n I I n n 1 51+-=-,从0I 的几个近似值出发,计算20I ; 解:易得:0I =ln6-ln5=0.1823, 程序为: I=0.182; for n=1:20 I=(-5)*I+1/n; end I 输出结果为:20I = -3.0666e+010 (2) 粗糙估计20I ,用n I I n n 51 5111+- =--,计算0I ; 因为 0095.05 6 0079.01020 201 020 ≈<<≈??dx x I dx x 所以取0087.0)0095.00079.0(2 1 20=+= I 程序为:I=0.0087; for n=1:20 I=(-1/5)*I+1/(5*n); end I 0I = 0.0083 (3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。 首先分析两种递推式的误差;设第一递推式中开始时的误差为000I I E '-=,递推过程的舍入误差不计。并记n n n I I E '-=,则有01)5(5E E E n n n -==-=-Λ。因为=20E 20020)5(I E >>-,所此递推式不可靠。而在第二种递推式中n n E E E )5 1(5110-==-=Λ,误差在缩小, 所以此递推式是可靠的。出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制, 即算法是否数值稳定。 2. 求方程0210=-+x e x 的近似根,要求4 1105-+?<-k k x x ,并比较计算量。 (1) 在[0,1]上用二分法; 程序:a=0;b=1.0; while abs(b-a)>5*1e-4 c=(b+a)/2;

实验2简单数据类型和流程控制

实验2简单数据类型和流程控制 1.实验目的 (1)掌握Java语言的标识符、保留字、各简单数据类型。 (2)掌握Java语言中各种运算符表达式的基本知识。 (3)熟练掌握使用if语句进行单分支结构和双分支结构程序设计的基本方法。 (4)熟练掌握使用if语句嵌套及switch语句进行多分支结构程序设计的基本方法。(5)熟练掌握while、do-while和for三种语句组成循环结构的基本方法。 2.实验主要内容 (1)将百分制成绩转换成等级制成绩。 (2)打印所有的水仙花数,即一个三位数,它的每个数字位的立方和等于它本身。 (3)打印出杨辉三角形。 (4)改写下面的计算圆面积的程序,使之能处理用户输入的负数、并能让用户循环输入半径值,另外,设定一个用户退出程序的值,比如0或者q等,用户输入这个值后能退出时程序。 public class ComputerAreaV02 { public static void main(String[] args) { final double PI = 3.14159; // 创建一个 Scanner对象 Scanner input = new Scanner(System.in); // 提示用户输入一个半径值 System.out.print("请输入半径值: "); //从键盘接受输入的值 double radius = input.nextDouble(); // 计算圆的面积 double area = radius * radius * PI; // Display result System.out.println("圆的面积是: " + area); } } (5)计算身体质量指数。BMI指数(身体质量指数,Body Mass Index,BMI),是国际上常用的衡量人体胖瘦程度的一个标准,其计算方法是用体重(公斤)数除以身高(米)

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

(完整版)实验2基本数据类型与数组

民族学院实验报告 计算机科学系级班指导教师 报告人20 年月日成绩 课程 名称JAVA语言程序设计 实验名称实验二基本数据类型与数组实验 目的 1.掌握基本数据类型及其相互之间的转换 2.掌握JAVA中数组的使用 实验仪器 和器材 具有JDK环境的计算机一台 实验内容 和要求 一、输出希腊字母表 1.请按模板要求,将【代码】替换为Java程序代码,运行该程序时在命令窗 口中输出希腊字母表。其运行效果如图2.1所示。 图2.1 输出希腊字母表 GreekAlphabet.java public class GreekAlphabet { public static void main(String[] args) { int startPosition=0,endPosition=0; char cStart='α',cEnd='ω'; startPosition=(int)cStart; //cStart做int型数据转换,并将结果赋值给startPosition endPosition=(int)cEnd; //cEnd做int型数据转换,并将结果赋值给EndPosition System.out.println("希腊字母\'α\'在Unicode表中的顺序位置:"+(int)cStart); System.out.println("希腊字母表:"); for (int i=startPosition;i<=endPosition;i++){ char c='\0'; cStart=(char)i; //i做char型转换运算,并将结果赋值给c System.out.print(" "+c); if ((i-startPosition+1)%10==0) System.out.println(); } } } 2.实验后练习 (1)将一个double型数据直接赋值给float型变量,程序编译时提示怎样的 错误? 答:程序提示的内容为:“可能损失精度”。 (2)在应用程序的main方法中增加语句:

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

实验2 C语言基本数据类型

实验2 C语言基本数据类型 一、实验目的: 1.掌握C语言的基本数据类型(整型、字符型和实型)。 2.掌握C语言变量的定义和赋值方法。 3.进一步熟悉C程序的编辑、编译、连接和运行的过程。 二、实验内容: 1.验证性实验 (1) 分析下面程序结果,并上机验证(整型、字符型数据表示和输出)。 #include void main() { int x=010,y=10,z=0x10; /*前导中的'0'是数字0而不是字母o*/ char c1='M',c2='\x4d',c3='\115',c4=77,c; /*字符型数据表示*/ /* 整型数据的输出 */ printf("x=%o,y=%d,z=%x\n",x,y,z); /* 数据以原进制输出,注意是否有前导0或0x */ printf("x=%d,y=%d,z=%d\n",x,y,z); /* 数据以10进制输出,换算到10进制,结果对吗? */ /* 字符型数据的输出 */ printf("c1=%c,c2=%x,c3=%o,c4=%d\n",c1,c2,c3,c4); /* 数据以原进制输出,注意是否有前导0或0x */ printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4); /*结果都是什么字符?,也就是说字符可以自由的表示成几种形式? */ printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4); /*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符 */ /* 字符型数据参与算术运算 */ c=c1+32; /* 字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数/*参与数学运算;结果还是一个整数-另外一个字符的ASCII码 */ printf("c=%c,c=%d\n",c,c); /*看看这个字符是什么?'M'+32就变为'm'了字母的大小写转换原来如此!*/ } (2)分析下面程序结果,并上机验证(整型、实型数据的表示、输入和输出)。 #include void main() { int i,j; float m,n; long x,y; unsigned int u,v; char c1,c2; scanf("%d,%d",&i,&j);

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对(1.1)中19x 的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b = 的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =

相关主题