MATLAB实验五 函数文件

合集下载

(完整版)MATLAB)课后实验[1]

(完整版)MATLAB)课后实验[1]

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

(1)2sin 85 z1 21 e(2) 12z ln( x 1 x ) ,其中22 x2 1 2i5(3)ae e az sin( a 0.3) ln , a 3.0, 2.9, L , 2.9, 32 22t 0 t 1(4) 2z t 1 1 t 242t 2t 1 2 t 3,其中解:M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)4. 完成以下操作:(1) 求[100,999] 之间能被 21 整除的数的个数。

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

解:(1) 结果:m=100:999;n=find(mod(m,21)==0);length(n)ans =43(2). 建立一个字符串向量比方:ch='ABC123d4e56Fg9'; 那么要求结果是:ch='ABC123d4e56Fg9';k=find(ch>='A'&ch<='Z');ch(k)=[]ch =123d4e56g9实验二 MATLAB矩阵解析与办理1. 设有分块矩阵 A E R3 3 3 2O S2 3 2 2,其中 E、R、O、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试经过数值计算考据 2A E R RS2O S。

MATLAB 实验五 函数文件

MATLAB  实验五  函数文件

MATLAB 实验报告实验五函数文件一、实验目的1、理解函数文件的概念2、掌握定义和调用MTALAB函数的方法二、实验内容1, 命令文件 fu1、函数文件 fushu.mfunction [a,b,c,d]=fushu(A)a=exp(A);b=log(A);c=sin(A);d=cos(A);shu2.mA=input('请输入任意一个复数A:');[a,b,c,d]=fushu(A);abcd2、函数文件 wulixitong.mfunction [a1,a2,N1,N2]=wulisitong(m1,m2,M)g=9.8;A=[m1*cos(M*pi/180) -m1 -sin(M*pi/180) 0m1*sin(M*pi/180) 0 cos(M*pi/180) 00 m2 -sin(M*pi/180) 00 0 -cos(M*pi/180) 1];B=[0m1*gm2*g];X=inv(A)*B;a1=X(1);a2=X(2);N1=X(3);N2=X(4);命令文件wulixitong2.mm1=input('请输入m1:');m2=input('请输入m2:');M=input('请输入角度M:');[a1,a2,N1,N2]=wulisitong(m1,m2,M);a1a2N1N23、函数文件 sushu.mfunction [x]= sushu(m)%UNTITLED3 Summary of this function goes here for M=2:(m/2)if mod(m,M)==0b=0;breakelseb=1;endendif b==1x=m;xendend命令文件sushu2.mfor m=10:99[x]=sushu(m)x=x/10+mod(x,10)*10;[y]=sushu(x)end4、函数文件fx.mfunction [f] = fx( x)%UNTITLED7 Summary of this function goes here % Detailed explanation goes hereA=0.1+(x-2).^2;B=0.01+(x-3).^4;f=1./A+1./B;end5、(1)函数文件fn.mfunction [ f ] = fn(n)%UNTITLED6 Summary of this function goes here % Detailed explanation goes heref=n+10*log(n^2+5)end命令文件fn2.m[f40]=fn(40);[f30]=fn(30);[f20]-fn(20);y=f40/(f20+f30)(2)/函数文件fn3.mfunction [ f ] = fn3(n)%UNTITLED6 Summary of this function goes here % Detailed explanation goes heref=0;for x=1:nf=f+x*(x+1);end命令文件fn4.m[f40]=fn3(40);[f30]=fn3(30);[f20]-fn3(20);y=f40/(f20+f30)三、实验总结通过这次实习,我有以下收获:1,学会了运用m文件创建函数与命令文件2,掌握了函数的定义及变量的命名3,学会了运用MATLAB解决较为复杂的数学问题。

matlab实验五

matlab实验五

实验五 基于matlab 的数据拟合与回归分析一、 实验类型验证性实验二、 实验学时2学时三、 实验目的1、掌握利用MATLAB 中实现单因变量的多元线性回归分析(经典多元线性回归分析)的方法;2、掌握利用MATLAB 中实现多因变量的多元线性回归分析(多对多线性回归分析)的方法。

3、掌握MATLAB 有关逐步回归的命令。

四、 实验内容及要求 实验内容:1 学习MATLAB 中有关经典多元线性回归分析的命令;(1) [b,bint,r,rint,stats] = regress(y,X,alpha)建立回归分析模型01122,i i i ip ip i y b b x b x b x ε=+++++其中()()2E 0,D i i εεσ==,1,2,,i n =.注:在该命令中,设计矩阵()(1)ij n p X x ⨯+=(X 的第1列全为1 ) 或响应值向量()1i n y y ⨯=中的无效值Nan 将被免忽略。

输入参数至少有2个,alpha 是检验的显著性水平,默认值为0.05。

输出参数至少有1个,b 是回归系数的估计值;bint 是各回归系数的置信度为1-alpha 的置信区间(第1列是它们的下界,第2列是它们的上界);r 是残差,rint 是残差的置信区间;stats 给出一个1*4的向量,依次是判定系数2R ,F 统计量的观测值及检验的p 值,以及误差的方差的估计值2ˆσ. 这里//(1)U p MMSF Q n p MSE==-- 是检验回归模型是否显著的检验统计量,当012:0p H b b b ====成立时, ~(,1)F F p n p --.可以通过分析残差的置信区间来观察原始数据是否存在异常点,若残差的置信区间不包括0,则可认为对应的观测值是异常值,将异常值全部去掉,重新建立的回归模型将更加精确。

可以调用命令rcoplot(r,rint)按观测顺序逐个画出各组观测值对应的残差和残差置信区间,从而观测异常值的位置。

matlab实验 函数

matlab实验  函数

实验(五)项目名称:函数一、实验目的:1、熟练掌握matlab的程序流程控制结构。

2、熟悉掌握M文件的结构和函数调用。

3、掌握内联函数和函数句柄的使用。

二、实验原理1.MATLAB的语法规则简洁,编程效率高,作为一个完整的程序语言,MATLAB 也有各种程序流程控制,文件格式和函数调用的规则,通过对函数的调用就能够组成庞大的程序,完成复杂的功能。

2.函数调用:脚本文件直接运行,函数文件需要调用。

三、实验环境1.硬件:PC机2. 软件:Windows操作系统、matlab2015四、实验内容、步骤以及结果4.1.1实验要求:a=[1 2 3 4 5],用matlab原有函数求出最大值、最小值和平均值。

4.1.2实验步骤(1)启动matlab,新建一个M文件;(2)输入程序,如图1;(3)保存文件;(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;图1:程序输入4.1.3运行结果如下:图2:运行结果4.2.1实验要求:编写函数max_min_avg,使得调用该函数可返回矢量的最大值、最小值和平均值。

矢量a = [ 10, 2, -1, -7, 8],调用max_min_avg:[m1,m2,m3]= max_min_avg(a);求m1\m2\m3的值。

4.2.2实验步骤:(1)启动matlab,M文件;(2)输入程序,如图3和4;(3)保存文件;(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;图3:编写函数max_min_avg图4:调用该函数4.2.3运行结果如下:图5:运行结果五、实验总结通过本次实验,我慢慢理解了函数的调用过程,掌握了一些程序设计方法,但还不是很熟练。

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

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

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 ,即为所求模型。

(完整版)MATLAB)课后实验答案[1]

(完整版)MATLAB)课后实验答案[1]

1 + e2 (2) z = 1 ln( x + 1 + x 2 ) ,其中 x = ⎡⎢ 2⎣-0.45 ⎦2 2 ⎪t 2 - 2t + 1 2 ≤ t <3 ⎨实验一MATLAB 运算基础1. 先求下列表达式的值,然后显示 MATLAB 工作空间的使用情况并保存全部变量。

(1) z = 2sin 8501221 + 2i ⎤5 ⎥(3) z = e 0.3a - e -0.3asin(a + 0.3) + ln 0.3 + a ,a = -3.0, - 2.9, L , 2.9, 3.03⎧t 2 0 ≤ t < 1 (4) z = ⎪t 2 - 11 ≤ t <2 ,其中 t=0:0.5:2.5 4⎩解:M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。

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

解:(1)结果:m=100:999;n=find(mod(m,21)==0);length(n)ans=43(2).建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:ch='ABC123d4e56Fg9';k=find(ch>='A'&ch<='Z');ch(k)=[]ch=⎣O2⨯3⎥,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩S⎦阵和对角阵,试通过数值计算验证A=⎢⎥。

实验五 用Matlab数据拟合

实验五 用Matlab数据拟合

2. 已知观测数据点如表所示 x 1.6 2.7 1.3 4.1 3.6 2.3 y 17.7 49 13.1 189.4 110.8 34.5
0.6
4
4.9
409.1
3
65
2.4
36.9
求a, b, c的值, 使得曲线 f(x)=aex+bsin x+c lnx 与已知数据 点在最小二乘意义上充分接近.
例4 已知观测数据点如表所示
x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 y 3.1 3.27 3.81 4.5 5.18 6 7.05 8.56 9.69 11.25 13.17 求三个参数 a, b, c的值, 使得曲线 f(x)=aex+bx2+cx3 与 已知数据点在最小二乘意义上充分接近.
1.55
500 106
2.47
2. 93
3. 03
2.89

1000 106 1500 106 2000 106 2375 106
3 1.953 103 1.517 103 1.219 10
/ / N / m 2 3.103 103 2.465 103
解: 描出散点图, 在命令窗口输入: t=[0:1:16] y=[30.0 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8 24.0] plot(t,y,'*')
a=polyfit(t,y,1) a= -0.3012 29.3804 hold on
beta
= 3.0022 4.0304 0.9404

(完整版)Matlab实验5选择结构程序结构

(完整版)Matlab实验5选择结构程序结构

实验五、选择与循环结构一、实验目的:1、 掌握建立和执行M 文件的方法。

2、 掌握利用if 语句实现选择结构的方法。

3、 掌握利用switch 语句实现多分支选择结构的方法。

4、 掌握try 语句的使用。

5、 掌握利用for 语句实现循环结构的方法。

6、 掌握利用while 语句实现循环结构的方法。

7、 熟悉利用向量运算来代替循环的操作方法。

二、实验内容:1、 列分段函数的值。

⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。

提示:x 的值从键盘输入,可以是向量。

%homework_5_1_1.mx=input('请输入x 的值:x=');if (x<0 & x~=-3)y= x.*x + x - 6elseif (x>=0 & x<10 & x~=2 & x~=3)y=x.*x-5.*x+6elsey=x.*x-x-6end>> homework_5_1请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]y =-5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000(2) 用逻辑表达式实现上述函数。

%homework_5_1_2.mx=input('请输入x 的值:x=')y=(x<0 & x~=-3).*(x.*x+x-6)...+(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)...+(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6)>> homework_5_1_2请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]x =-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =-6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.00002、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。

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

MATLAB实验报告
学院:光电学院
班级:073-1
姓名:***
学号:************
实验五 函数文件
1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。

程序设计:
function [e ln s c]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end
运行结果: >> num(5i) e =
0.2837 - 0.9589i ln =
1.6094 + 1.5708i s =
0 +74.2032i c =
74.2099 ans =
0.2837 - 0.9589i
2.一物理系统可用下列方程组来表示: ⎥⎥⎥

⎥⎦⎤
⎢⎢⎢⎢⎢⎣⎡=
⎥⎥⎥⎥⎥⎦
⎤⎢⎢
⎢⎢⎢
⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢
⎣⎡----g g m m N N a a m m m m 2121212111001cos 00
0sin 00cos 0sin 0sin cos θ
θθθθθ
从键盘输入
m
1

m
2
和θ的值,求
N a a 121、、和
N
2
的值。

其中g 取9.8,输入θ时以角度为单位。

程序设计: 函数文件in.m:
function [a1,a2,N1,N2]=in(m1,m2,t) g=9.8;
A=[m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1]; C=[0;m1*g;0;m2*g]; B=inv(A)*C;
a1=B(1);
a2=B(2); N1=B(3); N2=B(4); end
调用in.m 的命令文件: >> m1=1;m2=2;t=30*pi/180; >> [a1,a2,N1,N2]=in(m1,m2,t) 运行结果: a1 =
6.5333 a2 =
1.8860 N1 =
7.5440 N2 =
26.1333 4.设 f(x)=
01
.01
1
.01
)
3()
2(4
2
+++--x x ,
编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。

程序设计: 函数文件fx.m:
function A=fx(x)
A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01) end
调用fx.m 的命令文件:
>> A=fx([1 2;2 3;4 3]) 运行结果: A =
0.9716 10.9901 10.9901 100.9091 1.2340 100.9091 5.已知y=
)
20()30()
40(f f f +
(1)当f(n)=n+10ln(n 2+5)时,求y 的值。

程序设计:
函数文件fn.m:
function x=fn(n)
x=n+10*log(n^2+5)
end
调用fn.m的命令文件:
y=fn(40)/(fn(30)+fn(20)) 运行结果:
y =
0.6390
(2)当f(n)=1⨯2+2⨯3+3⨯4+…+n⨯(n+1)时,求y的值。

程序设计:
函数文件fn.m:
function x=fn(n)
if n<=0
x=0;
else
x=n*(n+1)+fn(n-1);
end
end
调用fn.m的命令文件:
y=fn(40)/(fn(30)+fn(20)) 运行结果:
y =
1.7662。

相关文档
最新文档