数学软件实验报告实验八Word格式.docx

上传人:b****6 文档编号:19689391 上传时间:2023-01-08 格式:DOCX 页数:16 大小:30.58KB
下载 相关 举报
数学软件实验报告实验八Word格式.docx_第1页
第1页 / 共16页
数学软件实验报告实验八Word格式.docx_第2页
第2页 / 共16页
数学软件实验报告实验八Word格式.docx_第3页
第3页 / 共16页
数学软件实验报告实验八Word格式.docx_第4页
第4页 / 共16页
数学软件实验报告实验八Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数学软件实验报告实验八Word格式.docx

《数学软件实验报告实验八Word格式.docx》由会员分享,可在线阅读,更多相关《数学软件实验报告实验八Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

数学软件实验报告实验八Word格式.docx

%Incidengtally,thenameFibonaccicomesfrom

%FiliusBonassi,or"

sonofBonassus"

%fibfun.m

ifn>

2

f=fibfun(n-1)+fibfun(n-2);

else

f=1

end

>

fibfun(17)

f=1

此处有很多1,只粘贴了一个

ans=

1597

查询fibfun

helpfibfun

FIBFUNFORcaculatingFibonaccinumbers.

Incidengtally,thenameFibonaccicomesfrom

FiliusBonassi,or"

fibfun.m

查找fibfun

lookforfib

fibfun-FORcaculatingFibonaccinumbers.

fibodemo-UsedbySINGLEMATHdemo.

fibinscaling-FiBinaryPointScalingDemo

5.2控制语句

5.2.1循环语句

利用for循环生成范德蒙德矩阵

t=[-10135]'

t=

-1

0

1

3

5

a=

1-11-11

00001

11111

8127931

6251252551

while循环

a=[23;

34]

a=

23

34

expm(a)

162.7871224.6754

224.6754312.5707

e=zeros(size(a))

e=

00

00(这是自己做出的结果)

e=

224.6754312.5707(这是正确的结果)

5.2.2选择语句

B样条函数的判断函数

functionf=pdbsline(x)

ifx<

f=0

elseifx<

1

f=x

elseifx<

f=2-x

pdbsline(-1)

f=

pdbsline(1.36)

0.6400

pdbsline(2.5)

5.2.4人机交互语句

input命令

>

Howmanyapples2

R=

2

Whatisyourname?

Wngmoran

Wnagmoran

中断命令break

程序设计为i=1

while1

ifrem(100-i*2,4)==0&

(i+(100-i*2)/4)==36

break

end

i=i+1

a1=i

a2=(100-2*i)/4

运行结果是a1=

22

a2=

14

5.3函数变量及变量作用域

1.调试过程中只提供一个输入变量,要求输入模,若是两个变量,要求输入变量

例:

建立function文件

functionc=test531(a,b)

if(nargin==1)

c=det(a)

elseif(nargin==2)

c=a+b

调用margin文件

nargin('

test531'

绘制函数,函数名为test532,要求实现使用函数varargin,用户可以输入任意多个学生的数学、英语、语文成绩,然后求个科目的平均值

function[mathavg,englishavg,chineseavg]=test532(varargin)

I=length(varargin)

mathsum=0

englishsum=0

chinesesum=0

fori=1:

mathsum=mathsum+varargini{i}

(1)

englishsum=englishsum+varargin{i}

(2)

chinesesum=chinsessum+varagin{i}(3)

mathavg=mathsum/1

englishavg=englishsum/1

chineseavg=chinesesum/1

绘制一个函数,函数名为test533,综合应运nargin、nargout、varargin、varargout等,目的是要求学生的个人成绩以及指定科目的平均成绩

function[vararout]=test533(lessons,varargin)

inputnum=nargin

lessonsum=length(lessons)

outputnum=nargout

lessonnum

switchlesson(i)

case'

math'

vararout{1}=sum(varargin{1:

inputnum}

(1))

cash'

english'

vararout{2}=sum(varargin{1:

inputnum}

(2))

chinese'

vararout{3}=sum(varargin{1:

inputnum}(3))

inputnum

varargout{i+3}=sum(varargin{i}(:

))

全局变量示例

function[num1,num2,num3]=test534(varargin)

globalfirstlevelsecondlevel

num1=0

num2=0

num3=0

list=zeros(nargin)

nargin

list{i}=sum(varargin{i}(:

list{i}=list{i}/length()varargin(i)

iflist(i)>

firstlevel

mum1=num1+1

elseiflist(i)=>

seconglevel

num2=num2+1

else

num3=num3+1

globalfirstlevelsecondlevel

firstlevel=85

firstlevel=

85

secondlevel=75

secondlevel=

75

[num1,num2,num3]=test534([90,89,60],[79,89,60],[99,98,100])

num1=

num2=

num3=

在工作空间中存储的全局变量将以global标出

whos

NameSizeBytesClassAttributes

ans1x18double

firstlevel1x18doubleglobal

secondlevel1x18doubleglobal

toolbox_version1x510char

5.4子函数和局部函数

子函数示例

functionc=test(a,b)%主函数

c=test1(a,b)*test2(a,b)

functionc=test1(a,b)%子函数1,这里为c为形式参数,不影响主函数中c的作用

c=a+b

functionc=test2(a,b)%子函数2

c=a-b

5.5程序设计的辅助函数

1、执行函数

函数feval用于调用M文件,其调用格式:

●[y1,y2,…,yn]=feval[function,x1,x2,…,xn]

●evalin(workspacename,'

expression'

2、容错函数

例1

testerror('

i'

i)

flag=

?

Errorusing==>

testerrorat6

Inputmustbeastring!

!

3、时间控制函数

d1=datenum('

04-18-2012'

d1=

734977

d2=datestr(d1+30)

d2=

18-May-2012

dv1=datevec(d1)

dv1=

2012418000

dv2=datevec(d2)

dv2=

2012518000

函数cputime调用

t=cputime

90.1530

t=cputime-t

0.2652

5.6程序设计优化

1、以矩阵为操作主体

functiony=test1(x)

x=1

1000

y(i)=sin(x)

x=x+0.1*pi

functiontest2

x=1:

0.1*pi:

1000*pi

y=sin(x)

test1=cputime

test1=

124.9412

t=cputime-test1

0.4680

test2=cputime

test2=

125.7680

t=cputime-test2

0.2496

2、数据的预定义

119.9024

120.0896

0.3432

0.8112

5.7程序调试

M文件错误的种类

A=[1,2;

3,4]

A=

12

B=[1,2,3;

4,5,6;

7,8,9]

B=

123

456

789

A*B

mtimes

Innermatrixdimensionsmustagree.

A=NaN

NaN

isnan(A)

A=Inf

Inf

isinf(A)

A=[]

[]

isempty(A)

调试过程

dbtypedb_test.m

1functionC=db_test(A,B)

2[num11,num12]=size(A)

3[num21,num22]=size(B)

4if(num12==num21)

5C=A*B

6else

7if(num11==num22)

8C=B*A

9else

10error('

inputerror!

'

11end

12end

13return

14end

15

dbstopindb_test.mat5

A=[1,2;

4,5,6]

db_test(A,B)

num11=

num12=

num21=

num22=

K>

dbstatus

Breakpointfordb_testisonline5.

dbstack

Indb_testat5

whos

A2x232double

B2x348double

num111x18double

num121x18double

num211x18double

num221x18double

dbup

Inbaseworkspace.

dbquit

5.8M文件的调用记录

loadwest0479

A=west0479;

profileon-detailbuiltin-history

eigs(A)

1.0e+003*

0.0000+1.7007i

0.0000-1.7007i

-0.1009+0.0666i

-0.1009-0.0666i

0.1081+0.0541i

0.1081-0.0541i

profilereporttest_eig

Warning:

UnknownargumentforPROFILE.SeeHELPPROFILE.

Inprofileat236

profileplot

s=profile('

status'

s=

ProfilerStatus:

'

on'

DetailLevel:

builtin'

Timer:

cpu'

HistoryTracking:

HistorySize:

1000000

profileresume

a=profile('

a=

profileoff

5.9函数句柄

函数句柄的创建和显示

fun_handle=@load

fun_handle=

@load

functions(fun_handle)

ans=

function:

load'

type:

simple'

file:

MATLABbuilt-infunction'

函数句柄的调用和操作

fun_handle=@test23

@test23

feval(fun_handle,3,4)

feval('

test23'

3,4)

fun_handle=str2func('

eig'

@eig

func2str(fun_handle)

eig

isa(fun_handle,'

function_handle'

isequal(fun_handle,@eig)

四、实验总结

这次实习做的是程序设计。

第一是M文件,了解了M文件的特点与形式,区分了命令式文件与函数式文件,对M文件有了一定的了解。

第二是控制语句,包括循环语句for,选择语句if,分支语句switch,人机交互语句echo和input、keyboard、pause、breek。

第三是函数变量及变量作用域,应用了varargin函数。

第四是子函数与局部函数。

第五是程序设计的辅助函数,如feval,error、warning,cputime。

第六是程序设计的优化,,第七是程序调试,对比了M文件的错误种类,运用keyboard函数进行错误识别,模拟了调试过程。

第八是M文件的调用记录,用了profile函数进行查看调用状态。

最后是函数句柄的创建、显示、调用和操作。

这次实习总的来说就是把程序设计的过程做了一遍。

通过实习了解了程序设计的流程和程序设计中所应用到的一些函数。

课本上讲的比较基础,按照步骤基本能做出来,对程序设计有了一定的了解。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1