实验5 函数

合集下载

MATLAB(实验五)

MATLAB(实验五)

实验五1、 编写程序,该程序在同一窗口中绘制函数在[]0,2π之间的正弦曲线和余弦曲线,步长为200/π,线宽为 2 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记,并通过函数方式在生成的图形中添加注释,至少应包括:标题,文本注释,图例和坐标轴标注。

x=0:pi/200:2*pi;sinx = sin(x); cosx = cos(x);k=find(abs(sinx-cosx)<1e-2); x1=x(k);figure,plot(x,sinx,'LineWidth',2) hold on ,plot(x,cosx,'r:','LineWidth',2)hold on ,plot(x(find(cosx==sinx)),cosx(find(cosx==sinx)),'r*','LineWidth',2)hold on ,plot(x1,sin(x1),'r*') xlabel('x:(0-2\pi)'); ylabel('y:sin(x)/cos(x)');title('正弦曲线和余弦曲线');text(x1+0.1,sin(x1),'sin(x)=cos(x)');gtext('sin(x)') gtext('cos(x)')legend('sin(x)','cos(x)')2、 绘制图像:双曲抛物面:22164x y z =-,1616x -<<,44y -<<,并对绘制的双曲抛物面尝试进行视点控制。

[X,Y] = meshgrid(-16:0.4:16,-4:0.1:4); Z = X.^2/16 - Y.^2/4;subplot(1,3,1),plot3(X,Y,Z),view(0,180),title('azimuth = 0,elevation = 180'); subplot(1,3,2),plot3(X,Y,Z),view(-37.5,-30),title('azimuth = -37.5,elevation = -30');subplot(1,3,3),plot3(X,Y,Z),view([3,3,2]),title('viewpoint=[3,3,1]');3、 表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。

实验5__matlab自定义函数及导数应用

实验5__matlab自定义函数及导数应用

在区间 ( ,1) 与 (1, ) f ( x ) ,在区间 (1,3) f ( x ) , fmax (1) 7 fmin ( 3) 3
可建立一个名为 dandiao.m 文件,用来求函数 的单调区间。
disp('输入函数(自变量为x)'); syms x; f=input('f(x)='); df=diff(f); s=solve(df); s=eval(s) a=[]; for i=1:length(s); a(i)=s(i); end ezplot(f,[min(a)-1,max(a)+1])
grid21816141210806040215105发现在16和06附近各有一个零点我们分两个小区间分别求解fzerofun212fzerofun1201ans15956ans06180fzerofun16fzerofun06ans15956ans27656xfhfsolvefunx0返回一元或多元函数fun在x0附近的一个零点
解: 求可导函数的单调区间与极值,就是求导 函数的正负区间与正负区间的分界点。 先求导函数的零点,再画出函数图像,根据 图像可直观地看出函数的单调区间与极值。 syms x; f=x^3-6*x^2+9*x+3;df=diff(f,x);s=solve(df)
s = [ 1] [ 3]
ezplot(f,[0,4])
建立正态分布的密度函 数
( x )2 2 2
1 f ( x , , ) e 2 function y=zhengtai(x,a,b)
y=1/sqrt(2*pi)*a*exp(-(x-b)^2/2/a^2)
存为 zhengtai.m,调用时可输入命令: y=zhengtai(1,1,0) ans=0.2420

实验五(线性方程组的数值解法和非线性方程求解)

实验五(线性方程组的数值解法和非线性方程求解)

1大学数学实验 实验报告 | 2014/4/5一、 实验目的1、学习用Matlab 软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析;2、通过实例学习用线性代数方程组解决简化问题。

二、 实验内容项目一:种群的繁殖与稳定收获:种群的数量因繁殖而增加,因自然死亡而减少,对于人工饲养的种群(比如家畜)而言,为了保证稳定的收获,各个年龄的种群数量应维持不变。

种群因雌性个体的繁殖而改变,为方便起见以下种群数量均指其中的雌性。

种群年龄记作k=1,2,…,n ,当年年龄k 的种群数量记作x k ,繁殖率记作b k (每个雌性个体1年的繁殖的数量),自然存活率记作s k (s k =1−d k ,d k 为1年的死亡率),收获量记作ℎk ,则来年年龄k 的种群数量x ̌k 应该为x ̌k =∑b k n k=1x k , x ̌k+1=s k x k −ℎk , (k=1,2,…,n -1)。

要求各个年龄的种群数量每年维持不变就是要求使得x ̌k =x k , (k=1,2,…,n -1).(1) 如果b k , s k 已知,给定收获量ℎk ,建立求各个年龄的稳定种群数量x k 的模型(用矩阵、向量表示).(2) 设n =5,b 1=b 2=b 5=0,b 3=5,b 4=3,s 1=s 4=0.4,s 2=s 3=0.6,如要求ℎ1~ℎ5为500,400,200,100,100,求x 1~x 5.(3) 要使ℎ1~ℎ5均为500,如何达到?问题分析:该问题属于简单的种群数量增长模型,在一定的条件(存活率,繁殖率等)下为使各年龄阶段的种群数量保持不变,各个年龄段的种群数量将会满足一定的要求,只要找到种群数量与各个参量之间的关系,建立起种群数量恒定的方程就可以求解出各年龄阶段的种群数量。

模型建立:根据题目中的信息,令x ̌k =x k ,得到方程组如下:{x ̌1=∑b k nk=1x k =x 1x ̌k+1=s k x k −ℎk =x k+1整理得到:{−x 1∑b k nk=1x k =0−x k+1+s k x k =ℎk2 大学数学实验 实验报告 | 2014/4/52写成系数矩阵的形式如下:A =[b 1−1b 2b 3s 1−100s 2−1…b n−1b n0000⋮⋱⋮000000000⋯00−10s n−1−1]令h =[0, ℎ1,ℎ2,ℎ3,…,ℎn−2,ℎn−1]Tx =[x n , x n−1,…,x 1]T则方程组化为矩阵形式:Ax =h ,即为所求模型。

2019年MATLAB)课后实验答案

2019年MATLAB)课后实验答案

实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1) 0122sin 851z e =+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:: 解:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。

(2) 建立一个字符串向量,删除其中的大写字母。

解:(1) 结果:(2). 建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。

解: M 文件如下;5. 下面是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程的解。

(2) 将方程右边向量元素b 3改为再求解,并比较b 3的变化和解的相对变化。

(3) 计算系数矩阵A 的条件数并分析结论。

解: M 文件如下:123d4e56g9实验三 选择结构程序设计1. 求分段函数的值。

2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=,,,,,,时的y 值。

MATLAB)课后实验答案

MATLAB)课后实验答案

实验一 MATLAB 运算基础1、 先求下列表达式得值,然后显示MATLAB 工作空间得使用情况并保存全部变量。

(1) 0122sin 851z e =+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0、5:2、5 解:4、 完成下列操作:(1) 求[100,999]之间能被21整除得数得个数。

(2) 建立一个字符串向量,删除其中得大写字母。

解:(1) 结果:(2)、 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果就是:实验二 MATLAB 矩阵分析与处理1、 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵与对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。

解: M 文件如下;5、 下面就是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程得解。

(2) 将方程右边向量元素b 3改为0、53再求解,并比较b 3得变化与解得相对变化。

(3) 计算系数矩阵A 得条件数并分析结论。

解: M 文件如下:实验三 选择结构程序设计1、 求分段函数得值。

2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5、0,-3、0,1、0,2、0,2、5,3、0,5、0时得y 值。

实验五:遗传算法求解函数最值问题实验

实验五:遗传算法求解函数最值问题实验
//适应度巒数』为避免负值.把目标函数加Y正数
EJdoublefitness(constCh^crrcscrcRc)
{
doublek,y;
decode(cx# y);
retiurnf(x, y)+5;
2•交叉操作
首先是根据交叉概率probCross选择要交叉的个体进行交叉
//根据交叉槪率进行交叉
for(inti=pre = -1;i<N; i++)
//根据变异概率迸行变异
for (inti=0;i<N; i++)
if(randQm61() < probMutation)
mutate(group[i]);
变异时先随机生成变异的位置,然后把改位的01值翻转。
//变异操作
Hvoidmutate(ChrcfnosomeS c)
{
//随机选行翻转
inti-rand()%len; c-g[i] =
//骑越
boolflag-令;
for(inti = j=0; i<1.亡n;i++)
swap(d.g[l]Jc2.g[i]);
if(i== crosspcint[j])
//妇杲若干个交叉点重合”则效果叠加 "偃数个交叉点效果瑁当于没有交叉点while(j<
flag = [flag;
3.变异操作
首先是根据变异概率probMutation选择要变异的个体
经过一定的进化之后得到最终种群,从中选择最优的个体即可得
到最终的结果。
//获取种群最优你
-intgetOptimal(Ch^crescr:-oup[mxn]doubled—double&』doubled\)

实验训练5:存储过程与函数的构建与使用

实验训练5:存储过程与函数的构建与使用

实验训练5:存储过程与函数的构建与使用一、存储过程与函数的概念存储过程和函数都是数据库中的可执行代码,可以被多次调用和重复使用。

存储过程是一组预定义的SQL语句集合,可以在数据库中定义和存储。

而函数是一个独立的代码块,它接收输入参数并返回一个值。

二、存储过程的构建与使用1. 创建存储过程在MySQL中,创建存储过程需要使用CREATE PROCEDURE语句。

例如:CREATE PROCEDURE myproc()BEGINSELECT * FROM mytable;END;这个例子创建了一个名为myproc的存储过程,它会查询mytable表中的所有数据。

2. 调用存储过程使用CALL语句可以调用已经创建好的存储过程。

例如:CALL myproc();这个语句会执行myproc存储过程中定义的SQL语句。

3. 存储过程参数我们可以给存储过程添加参数来使其更加灵活。

例如:CREATE PROCEDURE myproc(IN p1 INT, IN p2 VARCHAR(50)) BEGINSELECT * FROM mytable WHERE column1 = p1 AND column2 = p2;END;这个例子创建了一个带有两个输入参数p1和p2的存储过程,它会查询mytable表中column1等于p1并且column2等于p2的数据。

4. 存储过程变量除了参数之外,存储过程还可以使用变量来存储中间结果。

例如:CREATE PROCEDURE myproc(IN p1 INT)BEGINDECLARE v1 INT;SET v1 = p1 * 2;SELECT * FROM mytable WHERE column1 = v1;END;这个例子创建了一个带有一个输入参数p1和一个变量v1的存储过程,它会将p1乘以2并将结果存储在v1变量中,然后查询mytable表中column1等于v1的数据。

C语言实验5-8答案(函数与数组)

C语言实验5-8答案(函数与数组)

任务
1.fact(j-1)*j
2.gcd(n,m%n)
m<n
3.//for(j=0;j<=n-i;j++)
//printf("");//删除这两行,因为顶格输出,不要空行了。
y==1||y==x
z=c(x-1,y-1)+c(x-1,y)
4.程序代码如下:
#include<stdio.h>
fib(int n)
#include <stdio.h>
main( )
{double fun(int m);//先调用再定义,且不是能缺省的int型,请加上函数说明。
int m;
printf("\n input m:");
scanf("%d",&m);
printf("\n t= %12.10lf \n",fun(m));
j=2
j—
i+j==2
输出为:a=13,b=14
4.i=1
x[i-1]
5.m<1000
m/10%10或m/10-x*10
a[i]=m
m<i
输出结果为:153 370 371 407
6.a
a
sum/n
x[i]<ave
任务
1.‘\0’
str1[i]-str2[i]
2.c[k]=a[i++];
c[k]=b[j++];
return yes;
}
main( )
{
int n;
scanf("%d",&n);

C语言在线实验第5次(第七章函数)-题目与答案

C语言在线实验第5次(第七章函数)-题目与答案

第五次实验题目-第七章函数教学目标31.一元二次方程的系数:a、b、c由主函数输入,编写函数求方程的根。

#include <stdio.h>#include <math.h>void root(double a, double b, double c){ double delta,x1,x2,m,n;if (fabs(a) <= 1e-6){if (fabs(b) <= 1e-6)puts("Not an equation");elseprintf("x=%.2lf",-c/b);return;}else{delta=b*b - 4*a*c;m = -b / (2*a);n = sqrt(fabs(delta)) / (2*a);x1 = m + n;x2 = m - n;if (fabs(delta) <= 1e-6)printf("x1=%.2lf, x2=%.2lf", x1, x1);else if (delta < 0)printf("x1=%.2lf+%.2lfi, x2=%.2lf-%.2lfi",m,n,m,n);elseprintf("x1=%.2lf, x2=%.2lf", x1, x2);}}int main( ){ double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);root(a,b,c);return 0;}教学目标32.输入一串字符,统计其中英文字母的个数,编写统计英文字母个数的函数。

#include<stdio.h>int numberOfLetter(char str[]) {int i=0;int num = 0;//统计字母个数while (str[i]!=’\0’) {if ((str[i]>='A'&& str[i]<='Z')||( str[i]>='a'&& str[i]<='z')) num++;i++;}return num;}int main( ) {char str[100];int letterNum;printf("Enter a string: ");gets(str);letterNum = numberOfLetter(str);printf("Number of letters is %d.\n", letterNum);return 0;}教学目标33. 求100以内所有素数的和。

MATLAB程序设计与应用课后实验答案

MATLAB程序设计与应用课后实验答案
A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
[A,B]
[A([1,3],:);B^2]
运算结果:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
0 0 0 0
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
由ans,所以
2. 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么?
解:M文件如下:
输出结果:
H =
P =
1 1 1 1 1
Columns 57 through 60
Column 61
z4 =
0 0
2. 已知:
求下列表达式的值:
(1) A+6*B和A-B+I(其中I为单位矩阵)
(2) A*B和A.*B
(3) A^3和A.^3
(4) A/B及B\A
(5) [A,B]和[A([1,3],:);B^2]
解:
M文件:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
实验四 循环结构程序设计
一、实验目的
1. 掌握利用for语句实现循环结构的方法。
2. 掌握利用while语句实现循环结构的方法。

高中数学数学实验与探索

高中数学数学实验与探索

高中数学数学实验与探索数学是一门充满探索和实验性的学科。

通过实验与探索,学生能够培养数学思维、提高解决问题的能力,并且更深入地理解数学的概念和原理。

本文将介绍一些适合高中数学实验和探索的方法和内容。

一、集合的实验与探索在高中数学中,集合是一个重要的概念。

通过实验与探索,我们可以帮助学生更好地理解集合的性质和运算。

实验1:比较集合的大小首先,给学生准备两个集合A和B,分别包含一些元素。

让学生通过观察元素的数量和内容,判断哪个集合更大或者两个集合是否相等。

然后,让学生交流归纳比较集合大小的规律。

实验2:集合的交、并、差运算同样给学生准备两个集合A和B,然后让他们进行交、并、差运算,观察和归纳集合运算的性质和规律。

通过实际操作,学生能够更深入地理解集合运算的含义和操作方法。

二、平面几何的实验与探索平面几何是高中数学的重点内容之一。

通过实验与探索,学生可以更好地理解几何概念和性质,并且培养几何思维和创造性的解题能力。

实验3:推断平行线的性质给学生一张纸和一支铅笔,让他们在纸上画一些线段、角等几何图形。

然后,让他们观察图形中的线段是否平行,并且思考如何判断两条线段是否平行。

通过实际绘制和观察,学生能够推断出平行线的性质,并且进一步理解平行线之间的关系。

实验4:探索三角形的内角和给学生提供一些三角形的模型,让他们通过测量三角形的内角,计算并比较各个三角形内角和的大小。

通过实际测量和计算,学生能够确认三角形内角和为180度,并且进一步研究不同类型三角形的内角和之间的关系。

三、函数的实验与探索函数是数学中的重要概念,通过实验与探索,学生可以更好地理解函数的定义、性质和应用。

实验5:观察函数图像给学生一个函数的表达式,让他们通过计算并绘制函数的图像。

然后,让他们观察图像的变化规律,推断出函数的性质和特点。

通过实际观察和绘制,学生能够更好地理解函数的图像表示和图像的含义。

实验6:探索函数的应用给学生提供一些实际问题,让他们通过建立函数模型并进行计算,解决实际问题。

Python语言程序设计形考二实验五

Python语言程序设计形考二实验五

Python语言程序设计形考二实验五实验目的本实验旨在通过使用Python语言编程,练并巩固对于函数的理解和运用。

实验要求编写一个Python程序,实现以下功能:1. 输入一个字符串,检查该字符串中是否包含字母和数字。

若包含,输出字符串中的字母和数字个数;若不包含,输出提示信息。

2. 输入一个字符串,对该字符串进行反转,输出反转后的字符串。

3. 输入两个字符串,判断第二个字符串是否是第一个字符串的子串。

若是,输出提示信息;若不是,输出提示信息。

实验步骤1. 定义函数`check_alphanumeric`- 输入:一个字符串`str`- 输出:检查结果字符串- 过程:检查输入字符串是否包含字母和数字,统计其中的字母和数字个数,并返回检查结果字符串。

2. 定义函数`reverse_string`- 输入:一个字符串`str`- 输出:反转后的字符串- 过程:将输入字符串反转后返回。

3. 定义函数`check_substring`- 输入:两个字符串`str1`和`str2`- 输出:检查结果字符串- 过程:判断第二个字符串是否是第一个字符串的子串,若是,返回检查结果字符串;若不是,返回提示信息。

4. 调用上述函数,实现需求功能。

实验代码示例def check_alphanumeric(str):检查字符串是否包含字母和数字if any(c.isalpha() for c in str) and any(c.isdigit() for c in str):统计字母和数字个数alpha_count = sum(1 for c in str if c.isalpha())digit_count = sum(1 for c in str if c.isdigit())return f"该字符串包含字母和数字。

字母个数为{alpha_count},数字个数为{digit_count}。

"else:return "该字符串不包含字母和数字。

MATLAB实验5(学号姓名)

MATLAB实验5(学号姓名)

实验五MATLAB函数及其调用
一、实验目的
(1)熟练掌握M文件的编写。

(2)掌握MATLAB程序的调试方法。

(3)掌握MATLAB函数文件的编写。

二、实验内容
(1)编写函数文件。

(2)对自己编写的程序进行调试。

三、程序设计
实验1:实验题6,教材51页。

实验2:编写函数rootresult.m求解一元二次方程ax2+bx+c=0的根。

输入参数a、b、c,调用用户编写的求根的函数,得到方程的根。

实验3:写一个MATLAB 函数piFun01.m 来计算下列级数:f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 其中n为函数的输入,代表上述级数的项数,f(n) 则是函数的输出。

(选做,附加分)
四、实验结果
实验1:
程序代码:
运行结果:
实验2:
程序代码:
运行结果:
实验3:
程序代码:
运行结果:。

实验五氨基甲酸铵分解压的测定(多相化学反应平衡常数和热力学函数

实验五氨基甲酸铵分解压的测定(多相化学反应平衡常数和热力学函数

实验五 氨基甲酸铵分解压的测定 (多相化学反应平衡常数和热力学函数的测定)一、实验目的1.测定氨基甲酸铵的分解压力,并求得反应的标准平衡常数和有关热力学函数。

2.了解真空泵的构造原理和使用方法以及获得低真空度的方法。

3.掌握大气压力计的构造原理,使用方法以及气压计读数的校正方法。

二、基本原理氨基甲酸铵的分解可用下式表示:NH 2COONH 4(固)=2NH 3(气)+CO 2(气)设反应中气体为理想气体,则其标准平衡常数K 可表示为:K =P P P P K CO NH p 232)((1)式中3NH P 和2CO P 分别表示某温度下NH 3和CO 2的平衡分压,P 为标准压力。

设平衡总压为P ,则3NH P =P32(2)2CO P =P 31(3)代入式(1),得到p K =322743132P P P P P P (4)因此测得一定温度下的平衡总压后,即可按式(4)算出此温度的反应平衡常数。

氨基甲酸铵分解是一个热效应很大的吸热反应,温度对平衡常数的影响比较灵敏。

但当温度变化范围不大时,按平衡常数与温度的关系式,可得C RTH Kmln (5)式中m 为该反应的标准摩尔反应热,R 为摩尔气体常数,C 为积分常数。

根据式(5),只要测出几个不同温度下的 P K ,以 P K ln 对1/T 作图,由所得直线的斜率即可求得实验温度范围内的m 。

利用如下的热力学关系式:K RT G m ln (6)mm m S T G (7) 还可计算反应的标准摩尔吉氏函数变化m G 和标准摩尔熵变m S 等。

本实验用静态法测定氨基甲酸铵的分解压力。

三、仪器及试剂恒温槽一套、等压计、大气压力计、DPC—2B 型数字式低真空测压仪、三通活塞、二通活塞、真空泵、氨基甲酸铵,实验装置如图6-1。

四、实验步骤1.从气压计上读出大气压和室温,将大气压进行仪器误差和温度误差校正。

2.恒温槽及数字式低真空测压仪的调节使用。

数学实验报告 实验五 一元函数积分

数学实验报告 实验五 一元函数积分

数学与统计学院实验报告实验项目名称所属课程名称实验类型实验日期班级学号姓名成绩附录1:源程序x 34Log3x54Log1xx4 3218x4Log x14x4Log x2ArcTan32Tan x625Sinh355 3239120023ArcTan35523ArcTan33910.1x2If Re x20Im x20, 0.0999445SinIntegral 1.x20.1x2,Integrate Sin0.1t0.1x20.1t0.1x2,t,0,1,Assumptions Re x20Im x2032Erf411428Erf22Erfi4114428附录2:实验报告填写说明1.实验项目名称:要求与实验教学大纲一致。

2.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。

3.实验原理:简要说明本实验项目所涉及的理论知识。

4.实验环境:实验用的软、硬件环境。

5.实验方案(思路、步骤和方法等):这是实验报告极其重要的内容。

概括整个实验过程。

对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。

对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。

对于创新性实验,应注明其创新点、特色。

6.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析。

7.实验结论(结果):根据实验过程中得到的结果,做出结论。

8.实验小结:本次实验心得体会、思考和建议。

9.指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价。

实验五:遗传算法求解函数最值问题实验

实验五:遗传算法求解函数最值问题实验

实验五:遗传算法求解函数最值问题实验一、实验目的使用遗传算法求解函数在及y的最大值。

二、实验内容使用遗传算法进行求解,篇末所附源代码中带有算法的详细注释。

算法中涉及不同的参数,参数的取值需要根据实际情况进行设定,下面运行时将给出不同参数的结果对比。

定义整体算法的结束条件为,当种群进化次数达到maxGeneration时停止,此时种群中的最优解即作为算法的最终输出。

设种群规模为N,首先是随机产生N个个体,实验中定义了类型Chromosome表示一个个体,并且在默认构造函数中即进行了随机的操作。

然后程序进行若干次的迭代,在每次迭代过程中,进行选择、交叉及变异三个操作。

1.选择操作首先计算当前每个个体的适应度函数值,这里的适应度函数即为所要求的优化函数,然后归一化求得每个个体选中的概率,然后用轮盘赌的方法以允许重复的方式选择选择N个个体,即为选择之后的群体。

但实验时发现结果不好,经过仔细研究之后发现,这里在x、y 取某些值的时候,目标函数计算出来的适应值可能会出现负值,这时如果按照把每个个体的适应值除以适应值的总和的进行归一化的话会出现问题,因为个体可能出现负值,总和也可能出现负值,如果归一化的时候除以了一个负值,选择时就会选择一些不良的个体,对实验结果造成影响。

对于这个问题,我把适应度函数定为目标函数的函数值加一个正数,保证得到的适应值为正数,然后再进行一般的归一化和选择的操作。

实验结果表明,之前的实验结果很不稳定,修正后的结果比较稳定,趋于最大值。

2.交叉操作首先是根据交叉概率probCross选择要交叉的个体进行交叉。

这里根据交叉参数crossnum进行多点交叉,首先随机生成交叉点位置,允许交叉点重合,两个重合的交叉点效果互相抵消,相当于没有交叉点,然后根据交叉点进行交叉操作,得到新的个体。

3.变异操作首先是根据变异概率probMutation选择要变异的个体。

变异时先随机生成变异的位置,然后把改位的01值翻转。

中南大学C++程序设计实践思考题答案

中南大学C++程序设计实践思考题答案

实验1 C++基础6.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。

#include<iostream>using namespace std;int main(){int i;cin>>i;if(i>=65 && 1<=90 )cout<<char(i-'A'+'a')<<endl;elsecout<<"输入有误"<<endl;return 0;}实验2三、实验思考1.输入直角三角形的两条直角边长,调用平方根库函数sqrt来求斜边的长度#include<iostream>#include<cmath>using namespace std;int main(){ float a,b,c;cout<<"请输入直角三角形的两条边长:";cin>>a>>b;c=sqrt(a*a+b*b);cout<<"直角三角形的斜边="<<c<<endl;return 0;}2.从键盘输入一个字符,如果输入的是英文大写字母,则将它转换成小写字母后输出,否则输出原来输入的字符。

#include<iostream>using namespace std;int main(){char c;cout<<"请输入一个字符:";cin>>c;if(c>='A'&& c<='Z')c+='a'-'A';cout<<c<<endl;return 0;}3.输入一个学生的成绩,如高于60分,则输出“pass”;否则,输出“failed”。

【MATLAB】实验五:数值微积分与方程数值求解

【MATLAB】实验五:数值微积分与方程数值求解

实验五 数值微积分与方程数值求解一、实验目的1. 掌握求数值导数和数值积分的方法。

2. 掌握代数方程数值求解的方法。

3. 掌握常微分方程数值求解的方法。

二、实验内容要求:命令手工 ( )输入1. 求函数在指定点的数值导数。

232()123,1,2,3026x x x f x x x x x==2. 用数值方法求定积分。

(1) 210I π=⎰的近似值。

(2) 2220ln(1)1x I dt xπ+=+⎰3. 分别用三种不同的数值方法解线性方程组。

6525494133422139211x y z u x y z u x y z u x y u +-+=-⎧⎪-+-=⎪⎨++-=⎪⎪-+=⎩4. 求非齐次线性方程组的通解。

1234123412342736352249472x x x x x x x x x x x x +++=⎧⎪+++=⎨⎪+++=⎩解:先建立M 函数文件,然后命令窗口中写命令。

121/119/112/115/111/1110/11100010X k k --⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦,其中12,k k 为任意常数。

5. 求代数方程的数值解。

(1) 3x +sin x -e x =0在x 0=1.5附近的根。

(2) 在给定的初值x 0=1,y 0=1,z 0=1下,求方程组的数值解。

23sin ln 70321050y x y z x z x y z ⎧++-=⎪+-+=⎨⎪++-=⎩ans =1289/6826. 求函数在指定区间的极值。

(1) 3cos log ()xx x x x f x e ++=在(0,1)内的最小值。

(2) 33212112122(,)2410f x x x x x x x x =+-+在[0,0]附近的最小值点和最小值。

(以下选作题,是微分方程的数值解)7. 求微分方程的数值解。

x 在[1.0e-9,20]2250(0)0'(0)0xd y dy y dx dx y y ⎧-+=⎪⎪⎪=⎨⎪=⎪⎪⎩解:M 文件:运行结果:8. 求微分方程组的数值解,并绘制解的曲线。

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

实验5 函数
实验要求:
使用Visual C++ 6.0开发环境,完成以下习题。

1. 编程实现:分别编写一个求三个整数最大值的函数max,和一个求三个整数最小值的函数min,然后在主函数输入三个整数的值,分别调用max和min函数求最大最小值,并输出。

源程序保存为5_1.c文件。

2. 编程实现:编写一个函数,由实参(数组传参)传来一个字符串(字符数组),统计此字符串中字母、数字(0~9)、空格和其它字符的个数,要求在主函数中输入字符串以及输出上述结果。

字符串的大小(里面所包含的字符个数)可以是固定的,亦可以是根据输入情况变化。

源程序保存为5_2.c文件。

3. 选做题:在一体育比赛中,有10个评委为参赛选手打分(分数在1~10之间),分数使用数组保存,求选手的最后得分,选手最后得分规则:去掉一个最高分和一个最低分后其余分数的平均值。

编写一个函数;(例如:函数名为:calculator)计算选手的最后得分。

在主函数中定义分数数组,并输入分数,调用自己函数计算最后得分,输出最后得分,结果保留2位小数。

源程序保存为5_3.c
实验提交要求:
1.每位同学的文件必须严格按照题目的要求对文件进行命名,否则按不提交作
业处理。

2.每位同学的作业放在一个文件夹中提交,只需提交源文件(后缀名是.c的文
件),文件夹按以下格式命名:
“班内序号_姓名_实验5”
例如:01_黄明_实验5
3.实验完成后,提交到指定服务器。

服务器地址:
ftp://fcy:fcy@10.5.1.5
请提交到服务器的“作业→高级语言程序设计(C)→实验5”文件夹中以各自
班级名称命名的文件夹内。

(请认清楚班级名称提交,切勿提交到其他班的文件夹中。

)。

相关文档
最新文档