计算方法上机实验

2024-08-18

计算方法上机实验(共6篇)

计算方法上机实验 篇1

#include

#include

float function(float x,float y)

{

return(0-(y*y));//f(x,y)µÄ±í´ïʽ }

int main()

{

float x0,x1,y0,y1,k1,k2,k3,k4,a,b,c,n,h;int i;

scanf(“%f %f %f %f”,&a,&b,&c,&n);x0=a;

y0=c;

h=(b-a)/n;

for(i=1;i<=n;i++)

{

k1=h*function(x0,y0);

k2=h*function(x0+h/2,y0+k1/2);k3=h*function(x0+h/2,y0+k2/2);k4=h*function(x0+h,y0+k3);x1=x0+h;

y1=y0+(k1+2*k2+2*k3+k4)/6;

printf(“x%d=%f,y%d=%fn”,i,x1,i,y1);x0=x1;

y0=y1;

}

return 0;

}

拉格朗日

#include

#include

#include

#define maxlength 500

#define pi 3.14***

floata[maxlength],f[maxlength];

float n;

floatlagrange(floata[],floatf[],float x,int n)

{

int k=0,j;

floaty=0.0,l;

while(k<=n)

{

l=1.0;

// printf(“%lfn”,y);

for(j=0;j<=n;j++)

{

if(j!=k)

{

l=l*(x-a[j])/(a[k]-a[j]);// printf(“%lfn”,l);

}

}

//printf(“%lfn”,f[k]);

// printf(“%lfn”,l);

y=y+l*f[k];

k++;

}

printf(“x=%f,y=%fn”,x,y);

return y;

}

float fx1(floatx)

{

return(1/(1+x*x));

}

floatfx2(floatx)

{

return exp(x);

}

floatfx3(float x)

{

return sqrt(x);

}

void math1(float c,float n)

{

int i=0;

float h;

h=2*c/n;

while(i<=n)

{

a[i]=i*h-5;

i++;

}

}

void math2()

{

int i=0;

while(i<=n)

{

a[i]=cos((2*i+1)*pi/2/(n+1));

i++;

}

}

int main()

{

n=20;

int i;

math1(5,n);

for(i=0;i<=n;i++)

{

f[i]=fx1(a[i])

}

lagrange(a,f,0.75,n);

return 0;

}

龙贝格

#include

#include

#include

double t[1000],r[1000];

double f(double x)

{

return(x*x*exp(x));

}

int main()

{

double h,a,b,e;

int i,N,m;

scanf(“%lf,%lf,%d,%lf”,&a,&b,&N,&e);

h=b-a;

m=0;

t[1]=0.5*h*(f(a)+f(b));

printf(“%lf”,t[1]);

r[0]=t[0];

while(1)

{

printf(“n”);

for(i=0;i<((m<4)?m:4);i++)

t[i]=r[i];

m++;

h=h/2;

r[0]=t[0]/2;

for(i=1;i<=pow(2,m);i++)

r[0]+=h*f(a+(i-0.5)*h)/2;

printf(“%lf”,r[0]);

r[1]=(4*r[0]-t[0])/3;

printf(“ %lf”,r[1]);

if(m==1)

continue;

r[2]=(16*r[1]-t[1])/15;

printf(“ %lf”,r[2]);

if(m==2)

continue;

r[3]=(64*r[2]-t[2])/63;

printf(“ %lf”,r[3]);

if(m==3)

continue;

if((fabs(r[3]-t[3])<=e)||(m==N))

break;

}

printf(“nthe current time is :%dn”,m);

return 0;

}

牛顿

#include

#include

#include

double function(double point)

{

return(point*point-2*point*exp(-point)+exp(-2*point));

}

double d_function(double point)

{

return(2*point+2*point*exp(-point)-2*exp(-point)-2*exp(-2*point));}

int main()

{

double beginner,error1,error2;

int max_times=0;

beginner=error1=error2=0;

scanf(“%lf %lf %lf %d”,&beginner,&error1,&error2,&max_times);int current_times=0;

while(current_times<=max_times)

{

if(fabs(function(beginner))

{

printf(“%lfn”,beginner);

return 0;

}

if(fabs(d_function(beginner))

{

printf(“failuren”);

return 0;

}

beginner=beginner-function(beginner)/d_function(beginner);if(fabs(function(beginner)/d_function(beginner))

printf(“%lfn”,beginner);

return 0;

}

current_times++;

}

printf(“failuren”);

return 0;

计算方法上机实验 篇2

【关键词】公共计算机实验任务设计测评方法

笔者从多年的教学中总结出“任务测评”实验模式,能够较好的提高计算机上机实验的质量与效率,提高学生对计算机知识的掌握和应用。

1设计“任务”

1.1“任务”要明确

在设计“任务”时,要注意学生的特点与知识接受能力的差异,充分考虑学生的现有文化知识、认知能力和兴趣等。在设计的过程中,要始终从学生的角度考虑,根据学生的实际水平来设计每一个模块,针对不同程度的学生来设计不同层次的练习,也就是说要“任务”要有层次感。在“文字处理”时,我就发现有的学生在中学时就已经学过一些相关知识了。这一章共8小节,如果按部就班地从第一节开始这样顺序学习,就会造成一些学生上课时不想听,上机时无事可干。因此在设计“任务”时,就要针对不同程度的学生来设计不同层次的练习,设计出不同的“子任务”,精心组织教学内容,使学生能顺利地完成“任务”。具体办法是:对于一些从没有学过的学生,我就要求他们先学会简单基本的文字处理方法,我布置的“任务”相对容易些,让他们先学会做一个课程表,通过制作课程表这个任务,学生就掌握了如何进行汉字输入、如何创建和编辑文档等一系列的简单知识;对于那些学过一些基本知识的学生,我布置的“任务”难度就稍微大一些,要求学生设计出一张自己的报纸,打印出来,然后还进行年级评比。通过这样的活动,大大激发了学生的兴致和想象力,这一章节的学习任务也就轻松完成。

1.2“任务”适应教学环境

教师在教学过程中要不断地用“任务”来引导学生自学。在学生学习过程中,要充分发挥多媒体计算机综合处理图形、图像、声音、文字等多种信息的功能,设置特定的情境,创设良好的学习氛围。如果有了这样一个良好的教学环境,那么学生在这种愉悦的环境中,便会自觉自愿地学习,主动地完成学习“任务”。在进行《网页制作》实验时,要求学生掌握基本的制作网页的方法。为了创设一个良好的教学环境,在讲课之前,教师就要搜集一些好的网页给学生看。在网页中不仅要有好的文字内容,还要有优美的学生爱听的背景音乐,以及一些好看的动画效果。这样的网页在教学过程中演示,学生会立即表现出兴趣。学生有兴趣学习后,教师就要安排好每一个“子任务”,用一个个“子任务”来引导学生一步一步地学习网页设计。具体这一章的“任务”,可以分为让学生完成制作一个简单网页、制作一个框架网页和制作一个动态网页。在学生制作网页过程中,教师要不断鼓励学生自己看教材,多看一些别人设计好的优秀网页,从易到难地学习。特别是在学生自己动手上机实践时,教师要注重加强学生的自学能力,在旁起一个“辅导员”的作用,给学生答疑,而不是手把手地教。

1.3“任务”要调动学生积极性

从能力培养的角度看,教师要注重调动学生的积极性,培养他们的创新精神和合作意识。在教学过程中,要引导学生积极参与,以此来提高学生上课时的注意力,从而提高学习的效率。

2实验效果的测评

2.1测评理念

2.1.1能够根据任务需求,熟练地使用文字处理、图表处理等工具软件加工信息,表达意图;选择恰当的工具软件处理多媒体信息,呈现主题,表达创意。例如可以使用多媒体素材加工软件、多媒体著作软件、网页制作软件等处理多媒体信息,制作自己的作品。

2.1.2能合乎规范地使用网络等媒介发布信息、表达思想。只有清晰表达的信息,才能使信息接受者明晰所接受的信息蕴含的意义,这样才能使信息有效地在网络上传递,更有利于信息的共享。

2.1.3能选择恰切的媒介来表达信息。信息技术不仅为学生提供了丰富的资源,它还为学生提供了丰富的认知工具以及信息创作与表达的工具。因而学生必须能从繁杂的工具中挑选出最恰切的媒体工具来表达自己的观点与思想。这主要体现在他们对各种工具的信息表现特性与将要表达的信息的特性的深切理解基础之上,同时,还涉及个体对美的感知能力与理解能力。

这一方面能力的评价可以依据学生的作品(包括电子作品和其他形式的作品)来进行。

2.2测评方法

2.2.1分散测评

一般情况下,教师要在实验课时内要完成全部学生的实验测评是不可能的,故此,必须提前下达“任务”,在学生完成“任务”的过程中,注意观察和指导学生,并与学生的学习态度和学习的主导性及完成任务情况相结合,给出评测成绩,特别是提前较早完成“任务”的学生,主要面向学习较好的学生。

2.2.1集中测评

教师要在实验课结束前十分钟对完成和基本完成“任务”的学生进行集中测评,主要依据“任务”完成的知识点给出成绩。

2.2.3网络测评

任务测评的过程穿插在学生完成任务的过程,以突出知识点为主题,以学生的作品为基础进行测评,起到鼓励学生相互学习,完善与提高完成自己的任务,培养学生协作精神。

总之,在“任务测评”实验模式中,任务的是基础,测评是手段,只有“任务”对部分学生就驱而不动,测评特别能够督促那些学习自觉性较差的学生,测评也起到鼓励鞭策的作用,使学生较好的掌握知识点,提高实验教学的质量和效率,提高计算机知识的应用能力和水平。

【参考文献】

[1]郑世珏. 计算机技术教学方法概论[M]. 清华大学出版社,2011.

计算机实验室学生上机守则 篇3

一、所有上机学生必须严格遵守学生守则及学院有关规章制度。

二、按规定时间上上机,学生和教师提前5分钟进入实验室,上课过程中不得随意进出实验室。必须听从任

课教师及实验室工作人员的指导。

三、实验室内应保持肃静,不准大声喧哗、谈笑。

四、保持室内卫生,在进入实验室前必须先穿鞋套,不许喝饮料、吃食物、乱扔废纸杂物、吸烟、吐痰等,一经发现,除教育批评外罚款10元,并按有关规定处罚。

五、学生必须按照自己的学号坐在固定的机位上,不得随意调换座位,需要调换座位时应跟任课教师申请,每次上机使用设备前必须认真填写“学生上机登记薄”,在备注项目内如实填写机器状况,如:正常、故障等。不得做与本堂课程内容无关的事情。

六、按正确的操作方法开机、关机,发现机器有硬件、软件故障时,应及时向任课教师或实验室工作人员汇

报,如果视有故障隐瞒不报被下一次上机学生发现,就要追究其责任,并加以重罚。

七、不准安装、运行游戏程序。一经发现,根据游戏性质处以20至50元的罚款,并按相关规定处理。

八、不得制作、传播、复制、观看或下载任何违法数据(黄色、反动内容等)。违者送交相关部门并按相关

规定进行处理。

九、不得擅自用电,(如给手机充电、接变压器等等),违者罚款20元,引发按有关规定处理。

十、违纪和违章操作造成仪器设备损坏的要按有关规定追究其责任并按损坏设备原值赔偿损失。

十一、除指定设备外,不许擅自拔动任何开关(含开启窗户)和动用任何设备,不得随意移动、拆卸、拨插

(含键盘鼠标)、改装仪器设备;严禁以任何方式修改或损坏计算机系统软硬件;

十二、不得将任何实验室设备及物品擅自携出实验室,违者按相关规定处罚。需要借用设备者,要按制度

办理借用手续;对违反本条规定者,视为影响正常教学秩序,除罚款100~200元外,并按有关规定处理。对拒交罚款,态度恶劣者,取消本科目期末上机考试资格;

十三、遵守安全防火公约,禁止携带易燃、易爆等具有危害性的物品。发现任何安全隐患及险情应及时向

实验室工作人员或相关人员汇报。

十四、下课时,学生应正确的退出正在运行的程序或系统,并关掉计算机电源,将实验所用设备归位,桌

计算机实验室上机管理系统 篇4

1.毕业设计(论文)的主要任务及目标

1、初步掌握进行科学研究的基本方法和步骤,阅读相关的学术期刊,具有较强的纸质和电子文献的检索能力。适当了解本研究相关的一些国内外动态。

2、分析在计算机实验室上机管理系统的相关需求,熟悉相关的编程语言与技术。

3、合理设计数据库,完成计算机实验室上机管理系统的总体设计,独立完成系统功能模块的分析设计,并编程实现。

4、对计算机实验室上机管理系统进行检测与调试,最终实现一个完整的计算机实验室上机管理系统。

5、严格遵守学校就毕业设计制定的各项规章制度和进程安排。

2.毕业设计(论文)的主要内容

本设计拟开发一个计算机实验室上机管理系统,所开发的系统主要包括以下主要模块:

1、进行计算机实验室基本信息的设置

2、学生基本信息的维护

3、学生课表的设定

4、自由上机费用的设定。

5、用户管理等功能

3.毕业设计(论文)的基本要求 在WINODWS 操作系统下开发,开发工具为VC++,建议使用SQ Lserver数据库。要求所开发的系统界面美观,方便实用,能有效提高企业的工作效率,通过本课题的毕业设计,全面掌握系统开发理论与技术,以达到锻炼与提高软件开发动手能力之目的。4.主要参考文献(要求至少外文两篇,中文三篇)

[1] 孙鑫.VC++深入详解,电子工业出版社,2012-7-1

[2] 霍尔顿(Horton, I.).Visual C++ 2012入门经典 ,清华大学出版社,2013-5-1

[3] 明日科技.Visual C++从入门到精通,清华大学出版社,2012-9-1

[4]Gordon Hogenson.C++/Cli The Visual C++ Language For.Net [M].Wiley India Pvt.Ltd., 2007.[5]Clare Churcher.Beginning SQL Queries: From Novice to ProfessionalApress Series[M].Apress, 2008

MATLAB上机实验实验报告 篇5

一、实验目得 初步熟悉 MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息。

命令窗口 二、实验内容(1)熟悉MATLAB平台得工作环境.(2)

熟悉MATLAB 得5 个工作窗口。

(3)MATLAB 得优先搜索顺序.三、实验步骤 1、熟悉MATLAB 得5 个基本窗口 ① mand Window(命令窗口)

② Workspace(工作空间窗口)

③ mand History(命令历史记录窗口)

④ Current Directory(当前目录窗口)

⑤ Help Window(帮助窗口)

(1)命令窗口(mand Window)。

在命令窗口中依次输入以下命令:

>〉x=1 〉> y=[1 2 3

4 5 68 9]; 〉> z1=[1:10],z2=[1:2:5]; >> w=linspace(1,10,10); >〉 t1=ones(3),t2=ones(1,3),t3=ones(3,1)〉〉 t4=ones(3),t4=eye(4)x =1 z1 =

9t1 =

t2 =

t3 =

1 t4 =

t4 =

0

0

0

0

0

0

0

0

0

0

0

思考题: ①

变量如何声明, , 变量名须遵守什么规则、就是否区分大小写。

答:(1)变量声明

1、局部变量 每个函数都有自己得局部变量,这些变量只能在定义它得函数内部使用。当函数运行时,局部变量保存在函数得工作空间中,一旦函数退出,这些局部变量将不复存在。

脚本(没有输入输出参数,由一系列MATLAB命令组成得M文件)没有单独得工作空间,只能共享调用者得工作空间。当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中. 2、全局变量 在函数或基本工作空间内,用global声明得变量为全局变量。例如声明a为全局变量:

>〉global a 声明了全局变量得函数或基本工作空间,共享该全局变量,都可以给它曲赋值。

如果函数得子函数也要使用全局变量,也必须用global声明.3、永久变量 永久变量用persistent声明,只能在M文件函数中定义与使用,只允许声明它得函数存取.当声明它得函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量: 〉〉persistent a(2)变量命名规则如下: :

始于字母,由字母、数字或下划线组成;区分大小写;可任意长,但使用前N个字符.N与硬件有关,由函数namelengthmax返回,一般N=63; 不能使用关键字作为变量名(关键字在后面给出); 避免使用函数名作为变量名.如果变量采用函数名,该函数失效.(3)区分大小写

试说明分号、逗号、冒号得用法。

答:分号:加上分号“;“其作用就是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存得同时,还将运算结果显示出来.逗号:分割列表

冒号:从什么到什么,比如1:10意思就是——1到10 ③ ③

l inspace())

称为“线性等分”函数, , 说明它得用法。可使用help命令,格式如下:

>>help linspace

数 说明函数 ones())、、zero s()、eye()得用法。

答;(1)ones()函数:全部元素都为 1 得常数矩阵;(2)zeros()函数:全部元素都为 0 得矩阵;(3)eye()函数:单位矩阵;

(4)linspace()函数:如 a=linspace(n1,n2,n3),表示在线性空

间上,行矢量得值从 n1 到 n2(2)工作空间窗口(Workspace). 单击工作空间窗口右上角得按钮,将其从MATLAB 主界面分离出来。

① 在工作空间查瞧各个变量,或在命令窗口用who, whos(注意大小写)查瞧各个 变量。

② 在工作空间双击变量,弹出Array Editor 窗口(数组编辑器窗口),即可修改变量。

③ 使用save 命令把工作空间得全部变量保存为my_var、mat 文件。

〉〉save my_var、mat

④ 输入下列命令: 〉〉clear all %清除工作空间得所有变量

观察工作空间得变量就是否被清空。使用load 命令把刚才保存得变量载入工作空间。

>〉load my_var、mat

⑤ 清除命令窗口命令: >〉clc(3)历史命令窗口(mand History)。

打开历史命令窗口,可以瞧到每次运行MATLAB 得时间与曾在命令窗口输入过得命 令,练习以下几种利用历史命令窗口重复执行输入过得命令得方法。

① 在历史命令窗口中选中要重复执行得一行或几行命令,右击,出现快捷菜单,选择 Copy,然后再Paste 到命令窗口。

② 在历史命令窗口中双击要执行得一行命令,或者选中要重复执行得一行或几行命令 后,用鼠标将其拖动到命令窗口中执行。

③ 在历史命令窗口中选中要重复执行得一行或几行命令,右击,出现快捷菜单,选择 Evaluate Selection,也可以执行。

④ 或者在命令窗口使用方向键得上下键得到以前输入得命令。例如,按方向键“↑” 一次,就重新将用户最后一次输入得命令调到MATLAB 提示符下。重复地按方向上键 “↑”,就会在每次按下得时候调用再往前一次输入得命令。类似地,按方向键“↓”得时 候,就往后调用一次输入得命令.按方向键“←“或者方向键“→”就会在提示符得命令 中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本得方法编辑这些命令。

(4)

当前目录命令窗口(Current Directory).MATLAB 得当前目录即就是系统默认得实施打开、装载、编辑与保存文件等操作时得文 件夹。打开当前目录窗口后,可以瞧到用“save”命令所保存得my_var、mat 文件就是保存在 目录C:MATLAB6p5work 下。

(5)帮助窗口(Help Window)。

单击工具栏得图标,或选择菜单View|Help,或选择菜单Help|MATLAB Help 都能 启动帮助窗口。

① 通过Index 选项卡查找log2()函数得用法,在Search index for 栏中输入需要查找得 词汇“log2”,在左下侧就列出与之最匹配得词汇条目,选择“log2[1]”,右侧得窗口就 会显示相应得内容。

② 也可以通过Search 选项卡查找log2()函数得用法.Search 选项卡与Index 选项卡 不同,Index 只在专用术语表中查找,而Search 搜索得就是整个HTML 帮助文件。

2、MATLAB 得数值显示格式设置 屏幕显示方式有紧凑(pact)与松散(Loose)两种,其中Loose 为默认方式.>〉a=ones(1,30)

〉>format pact

〉〉a 数字显示格式有short、long、short e、long e 等,请参照教材得列表练习一遍。

〉〉format long >>pi

〉〉format short >〉pi

〉>format long 〉〉pi

>>format + 〉〉pi

〉>—pi

3、变量得搜索顺序 在命令窗口中输入以下指令:

>>pi

〉>sin(pi);

>>exist(’pi”)

〉>pi=0;>〉exist(’pi“)

>〉pi

〉〉clear pi 〉>exist('pi’)>>pi

思考题:① 3 次执行exist(’pi’)得结果一样吗?如果不一样,试解释为什么? 答:不一样,pi原来就是库存函数,但就是如果被赋值则系统默认被赋予得值为pi后来得值,但就是当执行clear pi之后所赋得值被清空,因此pi得值又成为3、1416 ② 圆周率 pi 就是系统得默认常量,为什么会被改变为 0? 答:pi原来就是库存函数,但就是如果被赋值则系统默认被赋予得值为 pi 后来得值,但就是当执行 clear pi之后所赋得值被清空,因此 pi 得值又成为3、1416

实验二

MA TLAB语言基础 一、实验目得 基本掌握 MATLAB 向量、矩阵、数组得生成及其基本运算(区分数组运算与矩阵运算)、常用得数学函数。交接字符串得操作.二、实验内容(1)向量得生成与运算。

(2)矩阵得创建、引用与运算。

(3)

多维数组得创建及运算。

(4)字符串得操作。

三、实验步骤 1、向量得生成与运算 1)

向量得生成 直接输入法: A =

>〉 B=[1;2;3;4;5]

B =

5  冒号生成发:

〉〉 A=1:2:10 ,B=1:10,C=10:—1:1

A =

B =

C =

10

1  函数法:

Linspace()就是线性等分函数,logspace()就是对数等分函数。

>〉 A=linspace(1,10),B=linspace(1,30,10)A =

Columns 1 through 91、0000

1、0909

1、1818

1、2727

1、3636

1、4545

1、5455

1、6364

1、7273

Columns 10 through 181、8182

1、9091

2、0000

2、0909

2、1818

2、2727

2、3636

2、4545

2、5455

Columns 19 through 272、6364

2、7273

2、8182

2、9091

3、0000

3、0909

3、1818

3、2727

3、3636

Columns 28 through 36

3、4545

3、5455

3、6364

3、7273

3、8182

3、9091

4、0000

4、0909

4、1818

Columns 37 through 454、2727

4、3636

4、4545

4、5455

4、6364

4、7273

4、8182

4、9091

5、0000

Columns 46 through 545、0909

5、1818

5、2727

5、3636

5、4545

5、5455

5、6364

5、7273

5、8182

Columns 55 through 63

5、9091

6、0000

6、0909

6、1818

6、2727

6、3636

6、4545

6、5455

6、6364

Columns 64 through 72

6、7273

6、8182

6、9091

7、0000

7、0909

7、1818

7、2727

7、3636

7、4545

Columns 73 through 81

7、5455

7、6364

7、7273

7、8182

7、9091

8、0000

8、0909

8、1818

8、2727

Columns 82 through 908、3636

8、4545

8、5455

8、6364

8、7273

8、8182

8、9091

9、0000

9、0909

Columns 91 through 999、1818

9、2727

9、3636

9、4545

9、5455

9、6364

9、7273

9、8182

9、9091

Column 100

10、0000

B =

Columns 1 through 91、0000

4、2222

7、4444

10、666713、8889

17、1111

20、333323、555626、7778

Column 1030、0000 >> A=logspace(0,4,5)A =

10

100

1000

10000 练习:

使用 logspace()创建1—4得有 10 个元素得行向量。

答案:

>〉 A=logspace(1,10,4*pi)

A =1、0e+010 *

Columns 1 through 9

0、0000

0、0000

0、0000

0、0000

0、0000

0、0000

0、0001

0、0005

0、0035

Columns 10 through 120、0231

0、1520

1、0000 2)向量得运算 维数相同得行向量只见可以相加减,维数相同得列向量也可以相加减,标量可以与向量直接相乘除。

〉〉 A=[1 2 3 4 5],B=3:7,A =

B =

>〉 AT=A”,BT=B“, AT =

BT =

>〉 E1=A+B, E2=A-B

E1 =

10E2 =

—2

—2

—2

〉〉 F=AT—BT, F =

-2

—2

〉〉 G1=3*A, G2=B/3, G1 =

12

15

G2 =1、0000

1、3333

1、6667

2、0000

2、3333  向量得点积与叉积运算。

〉〉 A=ones(1,10);B=(1:10); BT=B”;>> E1=dot(A,B)

E1 =

55

〉〉 E2=A*BT

E2 =

〉〉 clear >> A=1:3,B=3:5,A =

B =

〉〉 E=cross(A,B)

E = -2

—2 2.矩阵得创建、引用与运算

1)矩阵得创建与引用

矩阵就是由元素构成得矩阵结构,行向量与列向量就是矩阵得特殊形式。

 直接输入法:

〉〉 A=[1 2 3;4 5 6]

A =

〉〉 B=[ 1 4 75 86 9 ] B =

〉> A(1)

ans =〉〉 A(4:end)

ans =

6 〉〉 B(:,1)ans =

2〉> B(:)ans =

8>〉 B(5)

ans =抽取法 〉> clear 〉> A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16] A =

10

12

13

16 >〉 B=A(1:3,2:3)

B =

10

11 〉> C=A([1 3],[2 4])

C =

10

12 〉〉 A([1 3;2 4])ans =

5 函数法: 〉〉 A=ones(3,4)A =

>〉 B=zero(3)

??? Undefined function or method “zero’ for input arguments of type ”double’、>> B=zeros(3)B =

0

0

0

0

0 >> C=eyes(3,2)??? Undefined function or method “eyes’ for input arguments of type ”double’、〉> C=eye(3,2)C =

0

0

0

0 >> D=magic(3)D =

拼接法 〉〉 clear 〉> A=ones(3,4)A =

>〉 B=zeros(3)

B =

0

0

0

0

0

0

0 >〉 C=eye(4)C =

0

0

0

0

0

0

0

0

0

>〉 D=[A B] D =

0

0

0

0

0

0

0 >〉 F=[A;C] F =

0

0

0

0

0

0

0

0

拼接函数与变形函数法:

〉〉 clear 〉> A=[0 1;1 1] A =

0

〉> B=2*ones(2)

B =

>> cat(1,A,B,A)ans =

0

0

>〉 cat(2 A,B,A)

??? cat(2 A,B,A)Error: Unexpected MATLAB expression、>〉 cat(2,A,B,A)ans =

0

0

1 >〉 repmat(A,2,2)ans =

0

0

0

0

〉> repmat(A,2)ans =

0

0

练习:使用函数法、拼接法、拼接函数法与变形函数法,按照要求创建以下矩阵:A 为

得全1矩阵、B 为得 0 矩阵/C 为得单位矩阵、D 为得魔方阵、E 由 C

与D纵向拼接而成,F 抽取 E 得2—--5 行元素生成、G 由 F 经变形为得矩阵而得、以 G 为子矩阵用复制函数(repmat)生成得大矩阵H。

答案 :

>〉 A=ones(3,4)

A =

1 〉〉 B=zeros(3,3)B =

0

0

0

0

0

0

0

0 >〉 C=eye(3)

C =

0

0

0

0

>〉 D=magic(3)D =

>> E=[C;D] E =

0

0

0

0

0

〉〉 F=(2:5,:)??? F=(2:5,:)Error: Expression or statement is incorrect—-possibly unbalanced(, {, or [、>〉 F=E(2:5,:)F =

0

0

〉〉 G=respace(E,3,4)

??? Undefined mand/function “respace’、〉>

G=respace(F,3,4)

??? Undefined mand/function ”respace“、〉> G=reshape(F,3,4)

G =

0

0

0

0

〉〉 H=repmat(G,2,2)H =

0

0

0

0

0

0

0

0

0

2)矩阵得运算  矩阵得加减、数乘与乘法

已知矩阵: >> A=[1 2

-1], A =

-1 >〉 B=[-1 0

2] B =

0

>〉 A+B ans =

1 〉〉 2*A ans =

-2 >〉 2*A-3*B ans =

-8 〉〉 A*B ans =

4-4

—2  矩阵得逆矩阵 〉〉 format rat;A=[1 0 1;2 1 2;0 4 6] A =

0

>> A1=inv(A)A1 =

—1/3

2/3

-1/6

-2

0

4/3

-2/3

1/6

>〉 A*A1

ans =

0

0

0

0

0

矩阵得除法 >〉 a=[1 2 1;3 1 4;2 2 1],b=[1 1 2],d=b’ a =

b =

d =

>> c1=b*inv(a),c2=b/a c1 =

6/7

3/7

-4/7

c2 =

6/7

3/7

-4/7

>> c3=inv(a)*d, c4=ab c3 =

2/7

-4/7

??? Error using ==〉 mldivide Matrix dimensions must agree、>〉 c3=inv(a)*d,c4=ad c3 =

2/7

-4/7

c4 =

2/7

-4/7

练习: 按下列要求求出各种得矩阵运算得值

求矩阵得秩、特征值与特征向量、矩阵得乘幂与开方;

矩阵得指数与对数

矩阵得提取与翻转 答案:

〉〉 A=[6 3

4 3

—2 5 7 —4

8-1 —3 —7] A =

-4

-1

—3

—7 〉> B=rank(A)B =〉> rb=rank(A)

rb =>> [X,Lamda]=eig(A)

??? Error using ==〉 eig Matrix must be square、〉〉 [X,Lamda]=eigs(A)??? Error using ==〉 eigs A must be a square matrix or a function which putes A*x、〉〉 C=[6 3 4

-2 5 7

—1-3] C =

—2

—1

—3 >> [X,Lamda]=eigs(C)

X =0、8013

-0、1094

-0、1606

0、3638

—0、6564

0、86690、4749

0、7464

-0、4719 Lamda =9、7326

0

0

0

-3、2928

0

0

0

1、5602 〉〉 [X,Lamda]=eig(C)

X =

0、8013

—0、1094

—0、16060、3638

—0、6564

0、86690、4749

0、7464

-0、4719 Lamda =9、7326

0

0

-3、2928

0

0

0

1、5602 〉> [X,Lamda]=eig(C)

X =

0、8013

—0、1094

-0、1606

0、3638

—0、6564

0、8669

0、4749

0、7464

—0、4719 Lamda =9、7326

0

0

0

—3、2928

0

0

0

1、5602 〉> D=A^2 ??? Error using ==> mpower Matrix must be square、〉> D=C^2 D =

33

34

〉〉 E=sqrtm(C)E =

2、2447 + 0、2706i0、6974 — 0、1400i0、9422-0、3494i

-0、5815 + 1、6244i

2、1005-0、8405i

1、7620-2、0970i

1、9719 - 1、8471i

-0、3017 + 0、9557i

0、0236 + 2、3845i >> F=expm(C)F =

1、0e+004 *

1、0653

0、5415

0、6323

0、4830

0、2465

0、2876

0、6316

0、3206

0、3745 〉〉 G=logm(C)Warning: Principal matrix logarithm is not defined for A with

nonpositive real eigenvalues、A non-principal matrix

logarithm is returned、〉 In funm at 153

In logm at 27 G =

1、7129 + 0、4686i0、5305-0、2425i0、5429-0、6049i

1、1938 + 2、8123i0、3658 — 1、4552i

—0、5514-3、6305i

-0、0748 - 3、1978i

0、7419 + 1、6546i1、8333 + 4、1282i >> H=fliplr(C)H =

-2

—1

>> I=triu(C)I =

0

0

-3 〉〉 J=tril(C)

J =

0

0

-2

0

-3 >> K=diag(C)K =

6-3 3.多维数组得创建及运算 1)多维数组得创建 >〉 A1=[1,2,3;4 5 6;7,8,9];A2=reshape([10:18],3,3)A2 =

10

13

16

14

17

12

15〉〉 T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3)T1(:,:,1)

=

T1(:,:,2)=

0

0

0

0

0

0

0 〉> T2=ones(3,3,2)

T2(:,:,1)=

1 T2(:,:,2)=

1 >> T3=cat(3,A1,A2),T4=repmat(A1,[1,1,2])

T3(:,:,1)=

T3(:,:,2)=

10

13

16

17

15T4(:,:,1)

=

T4(:,:,2)=

2)多维数组得创建

数组运算用小圆点加在运算符得前面表示,以区分矩阵得运算。特点就是两个数组相对应得元素进行运算。

〉〉 A=[1:6];B=ones(1,6);>> C1=A+B,C2=A—B C1 =

C2 =

0

>> C3=A、*B,C4=B、/A,C5=A、B C3 =

6 C4 =

1、0000

0、5000

0、3333

0、2500

0、2000

0、1667 C5 = 1、0000

0、5000

0、3333

0、2500

0、2000

0、1667

关系运算或逻辑运算得结果都就是逻辑值.>〉 I=A〉3,C6=A(I)

I =

0

0

0

1 C6 =

6 〉〉 A1=A-3,I2=A1&A A1 =

—2

—1

0

I2 =

0

〉〉 I3=~I I3 =

0

0 4.字符串得操作 1)字符串得创建

>〉 S1=”Ilike MATLAB’ S1 = Ilike MATLAB >> S2=“I'’m a stuent、” S2 = I“m a stuent、〉> S3=[S2,”and’,S1] S3 = I“m a stuent、andIlike MATLAB 2)求字符串长度 〉〉 length(S1)ans =>> size(S1)ans =

13)字符串与一维数值数组得相互转换 >> CS1=abs(S1)CS1 =

101

32

65

84

66 〉> CS2=double(S1)CS2 =

108

105

101

32

77

65

76

>> char(CS2)

ans = Ilike MATLAB >> setstr(CS2)

ans = Ilike MATLAB 练习:用char()与向量生成得方法创建如下字符串AaBbCc、、、、、、XxYyZz、〉> S1=65:90;S2=97:122;〉〉 C=[S1;S2];>>

C=C(:)’;〉>

S3=double(C);char(S3)ans = AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz 实验三

MAL TAB B 数值运算 一、实验目得

掌握 MATLAB 得数值运算及其运算中所用到得函数,掌握结构数组与细胞数组得操作。

二、实验内容

1)

多项式运算。

2)

多项式插值与拟合。

3)

数值为积分。

4)

结构数组与细胞数组。

三、实验步骤

1、多项式运算

1)

多项式表示。在 MATLAB 中,多项式表示成向量得形式.如: 在 MATLAB 中表示为 >> s=[1 3-5 0 9] 2)

多项式得加减法相当于向量得加减法,但必须注意阶次要相同。如不同,低阶次得要补 0。如多项式与多项式相加。

〉> s1=[0 0 2 3 11] 〉〉 s2=[1 2 —5 4 7] 〉〉 s3=s1+s2 答;s1 =

0

0

3s2 =

—5

s3 =

—3

18 3)

多项式得乘、除法分别用函数 conv与得 deconv实现。

〉> s1=[2 3 11] >> s2=[1 3 —5 4 7] >〉 s3=conv(s1,s2)

>> s4=deconv(s3,s1)答;s1 =

11 s2 =

s3 =

—29

65

s4 =

7 4)

多项式求根用函数roots。

>〉 s1=[2 4 2] >> roots(s1)

答;s1 =

ans =

—1

5)

多项式求值用函数 polyval >> s1=[2 4 1-3] 〉〉 polyval(s1,3)

〉> x=1:10 〉〉 y=polyval(s1,x)答;s1 =

-3 ans =

90 x =

10 y =

Columns 1 through 8

193

352

579

886

1285

Columns 9 through 10 练习:求得“商”及余数.〉> s1=[1 0 1];s2=[1 3];s3=[1 1]; 〉> s4=[1 0 2 1]; >> [q,r]=deconv(conv(conv(s1,s2),s3),s4)答;q =

4 r =

0

0

-1 2、多项式插值与拟合 有一组实验数据如附表 1—1 所示。

附表 1-1 X 1 2 3 4 5 6 7 8 9 10 Y 16 32 7

1

分别用拟合(二阶至三阶)与插值(线性与三次样条)得方法来估算X=9、5 时 Y 得值。以下就是实现一阶拟合得语句。

〉> x=1:10 >〉 y=[16 32 70 142 260 436 682 1010 1342 1960] 〉> p1=polyfit(x,y,1)

%一阶拟合 >> y1=polyval(p1,9、5)

%计算多项式 P1 在x=9、5 得值 答;x =

9y =

Columns 1 through 8

32

70

142

260

436

682

1010

Columns 9 through 10

1342

1960 p1 =

200、9818 -510、4000 y1 =1、3989e+003 3、数值微积分

1)

差分使用 diff 函数实现。

>〉 x=1:2:9 〉〉 diff(x)答;x =

ans =

2 2)

可以用因变量与自变量差分得结果相处得到数值微分。

〉> x=linspace(0,2*pi,100);>〉 y=sin(x); >〉 plot(x,y)>〉 y1=diff(y)、/diff(x); 〉〉 plot(x(1:end-1),y1)答;

3)

cumsum 函数求累计积分,trapz 函数用梯形法求定积分,即曲线得面积。

〉〉 x=ones(1,10)

>> cumsum(x)>> x=linspace(0,pi,100); >> y=sin(x); 〉〉 trapz(x,y)〉> p=cumsum(y); >> p(100)*pi/(100—1)答;x =

ans =

9ans =

1、9998 ans =

1、9998 练习:图 A1就是瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向东方向为 X 轴,由南向北方向为 Y 轴,选择方便得原点,并将从最西边界点到最东边界点在 X 轴上得区间适当划分为若干段,在每个分点得Y方向测出南边界点与北边界点得 Y 坐标Y1与 Y2,这样就得到表 1,根据地图比例尺回到18mm相当于 40Km,试由测量数据计算瑞士国土近似面积,与其精确值 41228 比较。地图得数据见附表 1—2(单位mm).附表 1—2 X 7 10、5 13 17、5 34 40、5 44、5 48 56 61 68、5 76、5 80、5 91 Y1 44 45 47 5

34 41 45 46 Y2 44 59 7

18 1 18 续表 X 96 101 104 106、5 111、5 118 123、5 1 36、5 142 146 150 157 158 Y1 43 37 33 28 32 65 55 54 52 50 66 66 68 Y2 121 124 1 21 1 21 121 116 1 22 83 81 82 86 85 68 提示:由高等数学得知识,一条曲线得定积分就是它与 x 轴所围成得面积,那么两条曲线所围成得面积可由两条曲线得定积分相减得到。、结构数组与细胞数组 1)

机构数组得创建. 〉> student、number=’20050731001’;〉〉 student、name=’Jack”;〉〉 student(2)、number=’20050731002’;〉〉 student(2)、name=’Lucy“; >> student 或者用 struct 函数创建。

>> student=struct(”number“,{’001”,“002’},”name',{'Jack’,“Lucy’});答;student =

1x2 struct array with fields:

number

name 2)

机构数组得操作。

〉> student(1)、subject=[]

%添加 subject 域并赋予空值 〉〉 student(1)、score=[] >〉(studeng)〉>fieldnames(studeng)

〉>fieldnames(student)

〉〉 getfield(student,{2},'name')〉〉 student=rmfield(student,”subject’)

%删除 subject 域 〉〉 student=setfield(student,{1},“score’,90);>> student(2)、score=88;

%比较与上一条语句就是否效果一样 答;student =

1x2 struct array with fields:

number

name

subject student =

1x2 struct array with fields:

number

name

subject

score ??? Undefined function or variable ’studeng’、练习:创建一结构数组stusorce,其域为:No,Name,English,Math,Chinese,Total,Average。结构数组得大小为 2×2。

3)

细胞数组得创建。

〉> A={’How are you!”,ones(3);[1 2;3 4],{“cell’}};

%直接创建

〉〉 B(1,1)={’Hello world”};

%由各个细胞元素创建

>> B(1,2)={magic(3)};

>〉 B(2,1)={[1 2 3 4]};答

或者用cell 函数先创建空得细胞数组,然后再给各个元素赋值 c=cell(1,2); >> c(1,1)={’Hello world’};>> c(1,2)={magic(3)}; 〉〉 c(1,3)={[1 2 3 4]}; 4)

细胞数组得操作。

〉> ans1=A(1,1)>> ans2=A(1,1)>〉 whos ans1 ans2 〉〉 celldisp(A)〉> a1=A{2,1}(1,2)>〉 [a2 a3]=deal(A{1:2})

答;ans1 =

’How are you!’ ans2 =

’How are you!’

Name

Size

Bytes

Class

Attributes

ans1

1x1

84

cell

ans2

1x1

84

cell

A{1,1} = How are you!

A{2,1} =

A{1,2} =

A{2,2}{1} = cell a1 =a2 = How are you!a3 =

实验四

MA LT AB B 符号运算

一、实验目得

掌握符号变量与符号表达式得创建,掌握MALTAB得symbol工具箱得一些基本运用。

二、实验内容

1)

符号变量、表达式、方程及函数得表示。

2)

符号微积分运算.

3)

符号表达式得操作与转换.4)

符号微分方程求解.三、实验步骤1、符号运算得引入

在数值运算中如果求,则可以不断让得让x趋近0,一球得表达式趋近什么数,但终究不能令 x=0,因为在数值运算中 0 不就是能作除数得。MATLAB得符号运算能解决这内问题。输入如下命令: 〉> f=sym(’sin(pi*x)/x')

>> limit(f,’x“,0)答;f = sin(pi*x)/x ans = pi 2 2、符号常量、符号变量、符号表达式得创建

1)

使用 sym()创建 输入以下命令,观察 Workspace 中 A、B、f就是什么内性得数据,占用多少字节得内存空间。

>〉 A=sym(”1’)

%符号常量 〉〉 B=sym(’x’)

%符号变量 >> f=sym(’2*x^2+3*x-1’)

%符号表达式 >> clear >> f1=sym(“1+2”)

%有单引号,表示字符串 >〉 f2=sym(1+2)

%无单引号 >〉 f2=sym(1+2)

〉> f4=sym(“2*x+3’)

%为什么出错 〉〉 x=1 〉〉 f4=sym(2*x+3)

答;A = 1 B = x f = 2*x^2+3*x-1 f1 = 1+2 f2 = 3 f2 = 3 f4 = 2*x+3 x =f4 = 5 通过瞧 MATLAB 得帮助可知,sym()得参数可以使字符串或就是数值类型,无论就是哪种类型都会生成符号类型数据。

2)

使用 syms创建 〉> clear >〉 syms x y z 〉> x,y,z 〉〉 f1=x^2+2*x+1 >〉 f2=exp(y)+exp(z)^2 >> f3=f1+f2 答;x = x y = y z = z f1 = x^2+2*x+1 f2 = exp(y)+exp(z)^2 f3 = x^2+2*x+1+exp(y)+exp(z)^2 3 3、符号矩阵创建

>〉 syms a1 a2 a3 a4 〉〉 A=[a1 a2;a3 a4] 〉> A(1),A(3)答;A = [ a1,a2] [ a3, a4] ans = a1 ans = a2 4 4、符号算术运算

1)

符号向量相乘、相除 符号量相成与数值量相乘一样,分成矩阵乘与数组乘。

〉> a=sym(5);b=sym(7); 〉> c1=a*b >〉 c2=a/b >> a=sym(5);B=sym([3 4 5]);>〉 C1=a*B,C2=aB >> syms a b >> A=[5 a;b 3];B=[2*a b;2*b a];〉> C1=A*B,C2=A、*B >〉 C3=AB,C4=A、/B 答;c1 =

35 c2 = 5/7 C1 = [ 15, 20, 25] C2 = [ 3/5, 4/5,1] C1 = [ 10*a+2*a*b,5*b+a^2] [

2*a*b+6*b,b^2+3*a] C2 = [

10*a,a*b] [ 2*b^2,3*a] C3 = [

2*a*(b—3)/(—15+a*b),(a^2-3*b)/(—15+a*b)] [

2*b*(a-5)/(-15+a*b), —(5*a-b^2)/(-15+a*b)] C4 = [ 5/2/a,a/b] [

1/2, 3/a] 2)

符号数值任意精度控制与运算 任意精度得 VPA 运算可以使用命令 digits(设定默认得精度)与vpa(对指定对象以新得精度进行计算)来实现。

>〉 a1=sym(’2*sqrt(5)+pi')

〉> a=sym(’2*sqrt(5)+pi’)〉〉 b=sym(2*sqrt(5)+pi)

>> digits >> vpa(a)>> digits(15)>〉 vpa(a)〉〉 c1=vpa(a,56)

〉〉 c2=vpa(b,56)

答 a1 = 2*sqrt(5)+pi a = 2*sqrt(5)+pi b = 8572296331135796*2^(-50)

Digits = 32 ans = 7、637263128 ans = 7、637 c1 = 7、6372631285535581572696

c2 = 7、6372726175781250000000 注意观察c1 与c2 得数值类型,c1 与 c2 就是否相等。

3)

符号类型与数值类型得转换 使用命令sym可以把数值型对象转换成有理数性符号对象,命令vpa可以讲数值型对象转换为任意精度得 VPA 型符号对象.使用 double,numeric 函数可以将有理数型与 VPA 型符号对象转换成数值对象、〉> clear >〉 a1=sym('2*sqrt(5)+pi’)

>〉 b1=double(a1)

%符号转数值 >> b2=isnumeric(b1)

%判断就是否转换成了数值 >> a2=vpa(a1,70)

%数值转符号 答;a1 = 2*sqrt(5)+pi b1 =7、6137 b2 =

1 a2 = 7、6372631285535589083128858 5 5、、符号表达式得操作与转换

1)独立变量得确定原则 独立变量得确定原则:在符号表达式中默认变量就是惟一得.MATLAB 会对单个英文小写字母(除 i、j外)进行搜索,且以 x 为首选独立变量。如果表达式中字母不唯一,且无 x,就选在字母表最接近x 得字母.如果有相连得字母,则选择在字母表中较后得那一个。例如:中,y 就是默认独立变量。,t 就是默认独立变量。

输入以下命令,观察并分析结果。

>> clear >〉 f=sym(”a+b+i+j+x+y+xz’)

>〉 findsym(f)

〉> findsym(f,1)>〉 findsym(f,2)>> findsym(f,3)

>〉 findsym(f,4)〉〉 findsym(f,5)>〉 findsym(f,6)答;f = a+b+i+j+x+y+xz ans = a, b, j,x,xz, y ans = x ans = x,xz ans =

x,xz,y ans = x,xz,y,j ans = x,xz,y,j,b ans = x,xz,y,j,b,a 2)符号表达式得化简 符号表达式化简主要包括表达式美化(pretty)、合并同类项(collcet)、多项式展开(expand)、因式分解(factor)、化简(simple或 simplify)等函数。

①合并同类项(collect)。分别按 x 得同幂项与e指数同幂项合并表达式: . 〉〉 syms x t; >〉 f=(x^2+x^exp(—t)+1)*(x+exp(-t));〉〉 f1=collect(f)〉〉 f2=collect(f,’exp(-t)“)答;f1 = x^3+exp(-t)*x^2+(x^exp(-t)+1)*x+(x^exp(-t)+1)*exp(-t)

f2 =(x^2+x^exp(-t)+1)*exp(-t)+(x^2+x^exp(—t)+1)*x ②对显示格式加以美化(pretty)。针对上例,用格式美化函数可以使显示得格式更符合数学书写习惯。

>〉 pretty(f1)>〉 pretty(f2)

答;f1 = x^3+exp(-t)*x^2+(x^exp(—t)+1)*x+(x^exp(—t)+1)*exp(-t)

f2 =(x^2+x^exp(-t)+1)*exp(-t)+(x^2+x^exp(—t)+1)*x >〉

pretty(f1)pretty(f2)

exp(-t)

exp(-t)

x

+ exp(—t)

x

+(x

+ 1)

x +(x

+ 1)exp(—t)

exp(—t)

exp(-t)

(x

+ x

+ 1)exp(-t)+(x

+ x

+ 1)x 注意与直接输出得 f1 与 f2 对比。

③多项式展开(expand)。展开成 x 不同次幂得多项式、〉> syms x 〉> f=(x—1)^12;〉> expand(f)〉〉 pretty(expand(f))

答;ans = 1+x^12-12*x^11+66*x^10—220*x^9+495*x^8—792*x^7+924*x^6-792*x^5+495*x^4-220*x^3+66*x^2—12*x

+ x

- 12 x

+ 66 x

— 220 x

+ 495 x

x

+ 924 x

- 792 x

+ 495 x

- 220 x

+ 66 x

- 12 x ④ 因式分解(factor)。将表达式做因式分解。

>> syms x;f=x^12—1; 〉> pretty(factor(f))

答;ans = 1+x^12—12*x^11+66*x^10—220*x^9+495*x^8-792*x^7+924*x^6—792*x^5+495*x^4—220*x^3+66*x^2-12*x

12

11

+ x

— 12 x

+ 66 x

— 220 x

+ 495 x

x

+ 924 x

— 792 x

+ 495 x

— 220 x

+ 66 x

- 12 x 〉〉 syms x;f=x^12—1;pretty(factor(f))

(x-1)(1 + x

+ x)(1 + x)

(1 — x + x)(1 + x)(x

— x

+ 1)⑤化简(simple或 simplify)。

将函数化简.〉〉 clear 〉〉 syms x;f=(1/x^3+6/x^2+12/x+8)^(1/3); 〉> g1=simple(f)>〉 g2=simplify(f)

答;g1 =(2*x+1)/x g2 =((2*x+1)^3/x^3)^(1/3)6 6、符号表达式得变量替换

subs 函数可以对符号表达式中得符号变量进行替换 >> clear >> f=sym(’(x+y)^2+4*x+10’)〉〉 f1=subs(f,’x',’s')

%使用 s 替换x >〉 f2=subs(f,”x+y’,“z’)答;f =(x+y)^2+4*x+10 f1 =(s+y)^2+4*s+10 f2 = z^2+4*x+10 7、符号极限、符号积分与微分

1)

求极限函数得调用格式 limit(F,x,a)

%返回符号对象 F 当 x→a 时得极限 limit(F,a)

%返回符号对象 F 当独立变量*→a 时得极限

limit(F)

%返回符号对象 F 当独立变量→0(a=0)时得极限 limit(F,x,a,’right’)

%返回符号对象 F 当 x→a 时得右极限 limit(F,x,a,’left”)

%返回符号对象F当 x→a 时得左极限 例一:

〉〉 clear >> f=sym(“sin(x)/x+a*x”)

>〉 limit(f,“x’,0)

%以 x 为自变量求极限 >> limit(f,”a’,0)

%以 a 为自变量求极限 >> limit(f)

%在默认情况下以 x 为自变量求极限 >> findsym(f)

%得到变量并且按字母表顺序排列 答‘f = sin(x)/x+a*x ans = 1 ans = sin(x)/x ans = 1 ans = a,x 例二: >> clear >〉 f=sym('sqrt(1+1/n));

〉〉 limit(f,n,inf)

%求 n 趋于无穷大时得极限

2)

求积分函数得调用格式 int(F)

%求符号对象 F 关于默认变量得不定积分 int(F,v)

%求符号对象 F 关于指定变量 v 得不定积分 int(F,a,b)

%求符号对象 F 关于默认变量得从 a 到 b 得定积分 int(F,v,a,b)

%求符号对象 F 关于指定变量得从 a 到b得定积分 3)

求微分方程得调用格式 diff(F)

%求符号对象 F 关于默认变量得微分 diff(F,v)

%求符号对象 F 关于指定变量 v 得微分 diff(F,n)

%求符号对象 F 关于默认变量得 n 阶微分,n 为自然数 1、2、3…… diff(F,v,n)%求符号对象 F 关于指定变量 v 得 n 阶微分 8 8、符号方程求解

1)常规方程求解函数得调用格式 g=solve(eq)

%求方程(或表达式或字串)eq 关于默认变量得解

g=solve(eq,var)

%求方程(或表达式或字串)eq 关于指定变量 var 得解 g=solve(eq1,eq2,…、,eqn,var1,var2,…,varn)

%求方程(或表达式或字串)eq1,eq2,eq3,……eqn 关于指定变量组var1,var2,……,varn)得解 求一元二次方程得解.其求解方法有多种形式:

① seq=solve(“a*x^2+b*x+c')

② seq=solve(’a*x^2+b*x+c=0”)③ eq=’a*x^2+b*x+c“;④ eq=”a*x^2+b*x+c=0’; seq=solve(eq)

⑤sym x a b c

eq=a*x^2+b*x+c seq=solve(eq)

2)常微分方程求解 求解常微分方程得函数就是 dsolve。应用此函数可以求得常微分方程(组)得通解,以及给定边界条件(或初始条件)后得特解。

常微分方程求解函数得调用格式:

r=dsolve(“eq1,eq2,…’,’cond1,cond2,…’,’v’)r=dsolve(’eq1’,’eq2”,…,“cond1’,’cond2’,…,’v”)说明: ① 以上两式均可给出方程 eq1,、qeq2 对应初始条件 cond1、cond2 之下得一 v 作为解变量得各微分方程得解。

② 常微分方程解得默认变量为 t。

③ 第二式中最多可接受得输入式就是 12 个。

④ 微分方程得表达方法。

在用 MATLAB 求解常微分方程时,用大写字母 Dy表示,用D2y表示,依此类推。

边界条件以类似于 y(a)=b 给出。其中 y 为因变量,a、b 为常数、如果初始条件给得不够,求出得解为含有 C1、C2 等待定常数得通解。

例一 求微分方程得通解、练习:(1)求。

(2)求函数得积分;求函数得导数(3)计算定积分(4)求下列线性方程组得解

(5)求解但 y(0)=2,在 z(0)=7 时,微分方程组得解。

实验五

MATLA B 程序设计

一、实验目得

掌握 MATLAB 程序设计得主要方法,熟练编写 MATLAB函数、二、实验内容

(1)M 文件得编辑。

(2)程序流程控制结构。

(3)子函数调用与参数传递。

(4)局部变量与全局变量。

三、实验步骤1、M M 文件得编辑

选择MATLAB 得菜单,打开新得M文件进行编辑,然后输入以下内容,并保存文件名为 expl、m。

s=0;for n=1:100

s=s+n;end s 答;s =

5050 保存好文件后,在命令窗口输入expl 即可运行该脚本文件,主义观察变量空间。紧接着创建 M 函数文件,然后输入以下内容,并保存文件名为 expl2、m。

function s=expl2(x)

s=0;for n=1:x

s=s+n; end

保存好文件后,在命令窗口输入

>〉 clear 〉> s=expl2(100)以 open 命令可以打开 M 文件进行修改。

〉〉open conv

%打开 conv 函数 2 2、程序流程控制结构

1)

for 循环结构

>〉 for n=1:10 n end 答;n =n =n =n =n =n =

6 n =n =

n =n =

另一种形式得 for 循环: 〉> n=10:—1:5;>〉 for i=n

%循环得次数为向量 n 得列数 i end 答;i =

10 i =i =i =i =i =2)

while 循环结构 在命令窗口输入:

clear x=1;while 1 x=x*2 end 将会瞧到 MATLAB 进入死循环因为 while 判断得值恒为真,这时须按 Ctrl+C键来中断运行,并且可瞧到 x 得值为无穷大。

练习:

(1)请把 exp2、m函数文件用 while 循环改写。

(2)用公式求得近似值,直到最后一项得绝对值小于为止,试编写M脚本文件、3)

if-else—end 分支结构

if—else—end 分支结构有如下 3 种形式。

(a)

if

表达式 语句组 1 end(b)

if

表达式 语句组 1 else 语句组2 end(c)

if

表达式 A

语句组 1 else if 表达式 B 语句组 2 else if 语句组 3 …… else

语句组 n end 4)

switch—case结构 创建 M 脚本文件 exp3、m,输入以下内容并在命令窗口中运行。

%功能:判断键盘输入得数就是奇数还就是偶数 n=input(’n=');if isempty(n)

error(’please input n');

n=input(“n=’);end switch mod(n,2)

case 1

A=’奇数'

case 0

A=’偶数” End 答;n=input('n=’); if isempty(n)

error('please input n’);

n=input(“n=’); end switch mod(n,2)

case 1

A=”奇数“

case 0

A=”偶数' end n=1 A = 奇数 3、子函数与参数传递

有一个函数,试编写实现该函数得函数文件.function g=expl4(x)

%主函数 g=0;for n=1:x

g=g+fact(n);

%调用子函数 end

function y=fact(k)

%子函数 y=1; for n=1:k

y=y*n; end 输入参数可以有函数 nargin 计算,下面得例子 sinplot(),当知输入一个参数 w 时,sinplot()函数会给p赋予默认值 0。4、局部变量与全局变量

计算方法上机实验 篇6

关键词:高中;计算机上机;教学水平

中图分类号:TP3-4

现阶段在每個学科领域中信息化技术都会有不同程度的应用,高中学校也顺应时代发展的需要增设了一些计算机基础知识以及专业知识的相关应用课程。作为由课堂上所讲述的计算机理论知识到实践操作过程的一种过渡教学,计算机上机教学能够不断的深化同学们对课堂上理论知识的理解,同时也能够培养学生的动手能力。计算机机房是高中计算机上机教学的主要场所,在经济不断发展的带动下,各高中学校机房中的计算机数量不断增加,有些学校还增设了一些公用计算机机房来为学生提供专门的上机实践操作的机会。只有不断的提高并且强化高中计算机上机教学水平,才能保证这些计算机设备的充分利用,才能够提高学生的计算机学习能力,从而培养出更加符合社会发展需要的高科技人才。

1 高中计算机上机教学过程中存在的问题

在计算机上机的课堂中应该结合计算机理论课堂上所教授的理论知识进行一些任务性的实践操作,通过一些具体的要求来对学生的操作进行一些规范化的管理。一般来说计算机理论课堂上都是老师进行实际演练,在计算机上机课堂上更多的是学生进行上机的操作以及一些测试。在上机教学中主要是通过对学生操作完成的准确以及进度进行上机考核,这主要是为了培养学生的操作能力。在教学过程中,由于计算机资源以及一些其他因素的影响容易产生一些问题。

1.1 上机教学作业中的漏洞

在高中计算机上机教学中,因为受到计算机使用资源的限制,一般情况下一台计算机会被多个不同班级的学生进行使用,也就导致上机课堂中的个人作业提交的不准确性,很多学生会通过利用移动硬盘抄袭其他同学的作业,不仅不利于学生的诚实品质的养成,也使得教师对学生的学习掌握存在偏差,不利于高中计算机上机教学的正常进行。

1.2 课堂计算机系统中还原性程序问题

很多高中计算机上机课堂中所使用的计算机都具有系统还原性的应用程序,这主要是为了防止学生随意对计算机进行一些配置上的改动,但是这些程序也会相应带来一定的弊端。这些程序的应用会导致信息的流失,不利于信息的存储,学生在课堂上所保存的一些操作会在电脑重启后自动删除,这就对上机教学的连贯性以及稳定性带了影响。

1.3 计算机测评单一,评卷中容易产生问题

在高中计算机上机评测中,大都是通过随机出题的方式来进行评卷的,这就使得评卷的过程只是看中了学生的操作结果而忽略了一些在操作中的实际性的失误问题。这将在很大程度上影响了教学评测的客观性,容易导致学生通过一些投机取巧的方式来取得相应的得分。

2 如何强化高中计算机上机教学水平

2.1 建立FTP服务器进行专业的文件储存

未来能够杜绝高中学生在进行计算机上机测评中存在的抄袭现象,很多高中已经建立了FTP服务器。FTP服务器主要是指通过serv-U的软件技术来进行文件下载以及上传的控制。通过此类技术的应用将会在很大程度上杜绝高中生在进行计算机上机测评中所存在的考试以及作业的抄袭或者是测评文件的被恶意删除等现象。FTP程序主要是通过对不同班级的分类注册管理,从而控制不同班级学生对于文件的上传以及下载操作权利,在这个管理中,学生只能够上传或者是下载自己的文件。同时FTP程序也通过其具有的大批量的文件发送以及下载的功能有效避免了文件在传输过程中可能会产生错误的情况,并且通过对不同用户的分类以及IP管理来实现了对文件传输的控制与监管。这在很大程度上保证了数据的传输的准确性,从而降低了文件存储以及出错的概率。

2.2 上机教学中实施学生上机监控措施

在FTP服务器中,教师也可以通过宽带连接的方式采用delphi编程语言技术,通过屏幕切换以及网络远程控制而对学生的上机施行有效监控。此技术的操作方法主要是:通过serv-uj进行相关的宽带网络设置,在设置中允许最大速度的上传以及下载,在这种情况下如果有学生对其他链接进行使用,就会被教师发现;为了能够有效的杜绝学生在上机课堂中随意的进行聊QQ或者是浏览网页就需要教师对每台计算机设置一定的网络访问密码,学生只有对计算机的账号以及密码输入正确的情况下,才能够进行网络访问;除以上方法之外也可以在计算机内进行一些上机监控软件的安装,通过这些软件教师便能够直观的了解到学生上机课中的一举一动,通过对学生上机课状态的了解并且对一些上机课中存在的不正确操作进行纠正以及指导,来提高高中计算机上机的教学水平。

2.3 注重学生自主操作计算机以及学习的能力

在计算机上机课中教师应该注重学生的上机自主操作能力,培养学生的自主学习意识。计算机软件具有更新速度快的特点这就需要老师要最先掌握先进性的操作技术,并且积极的鼓励学生进行一些自主学习,从而培养学生的实际操作能力。由于计算机技术以及软件的迅速发展,往往会形成学生还未进行熟悉的掌握就会有新的技术以及软件的更新,这就需要教师在培养学生的上机操作时,更加注重学生的自主学习能力的培养。

在计算机上机教学中,教师应该让学生尽可能的接触更多的计算机的种类以及各种计算机软件。在上机操作的过程中教师只有让学生接触到更多的软件内容,才能够保证学生计算机操作能力的提升,才能充分发挥计算机上机教学的目的。除此之外还需要创建全新的计算机上机教学环境,在平时的上机课堂中教师应该注重学生的自主学习潜能的发挥,只有不断的鼓励学生在实际操作中进行问题的探索才能够更好的培养其自主学习的能力。例如:在上机课堂中教师可以布置一些Word文档的页眉页脚以及段落格式的相关处理,但是教师不能进行详细的讲解,只有这样才能够让学生进行一些独立的搜索,从而找出相应的解决办法,完成个人作业。在上机课中类似于这些小型的问题都可以让学生通过自学活动来培养学生的自主学习能力。

2.4 计算机上机测评采用公开的测评方式

传统的计算机上机测评,主要是要求学生在规定的时间内根据计算机中所规定的测评步骤在计算机上完成考试操作。这种测评方式在时间以及评卷上都会存在一定的漏洞,从而影响测评结果的客观性,对学生的学习成绩无法进行真实的反映,也无法对学生的上机操作情况进行真实的反映。这就需要通过答卷的方式先对学生进行上机操作的理论知识考查,同时再专门的教师监督下进行实际的上机操作测评,只有这样才能够真实的反映学生的上机操作情况。通过试卷答题而真实的反映出学生的学习情况,使教师以及学校都能够对其学习状况有一定的了解,从而为强化高中计算机上机的教育水平提供指导方向。

3 结束语

总之言而,通过对现阶段我国高中计算机上机教学中存在的问题进行分析,并在此基础上进行一系列的计算上机教学的探索以及创新,从而使我国的高中学校在计算机上机这个环节的教学更加趋于成熟。只有通过不断的完善计算机上机教学中所需要的资源以及系统,并且进行学生的计算机上机自主学习能力的培养,才能够不断的提高并且强化高中计算机上机的教学水平,才能培养出更加符合社会需要的高技术人才。

参考文献:

[1]马经杰.论高校计算机上机教学管理[J].成人教育,2012(02):113-114.

[2]陈德燕.新课程理念下的高中计算机课教学初探[J].计算机光盘软件与应用,2012(19):284-285.

[3]白东峰.新课程理念下的高中计算机课教学分析[J].电子制作,2013(12):99.

作者简介:杨宗阳(1979.09-),男,江苏徐州人,中一,研究方向:信息技术教学。

上一篇:赠李颀,赠李颀王维,赠李颀的意思,赠李颀赏析下一篇:《梦姑姑的花篮》教案