MATLAB程序设计实验6报告
- 格式:doc
- 大小:66.50 KB
- 文档页数:7
实验6. 图形用户界面设计一、 实验目的1. 掌握图形对象属性的基本操作;2. 掌握菜单及对话框设计、建立控件对象的方法。
二、 实验环境1. 计算机2. matlab7.x三、 实验说明1. 正确操作,认真观察;2. 实验学时:2学时;3. 学会使用help ;4. 保存整理实验结果,提交实验报告。
四、 实验内容1.设计如教材P374 图1所示的菜单,并在此基础上增加选项:可以改变曲线的颜色,可以改变窗口背景颜色。
2.(选做)采用图形用户界面,从键盘输入参数a 、b 、n 的值,考察参数对极坐标曲线)cos(θρn b a +=的影响。
五、 实验程序及结果1.figure('Color',[1 1 1],'Position',[400 300 500 250],'Name','201100000','NumberTitle','off','MenuBar','none');hplot=uimenu(gcf,'Label','&plot');%设置Plot 菜单项uimenu(hplot,'Label','Sin Wave','Call',['t=-pi:pi/20:pi;','y=sin(t);','plot(t,y);','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hlinecolor,''Enable'',''on'');'],'Accelerator','s');uimenu(hplot,'Label','Cos Wave','Call',['t=-pi:pi/20:pi;','y=cos(t);','plot(t,y);','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hlinecolor,''Enable'',''on'');'],'Accelerator','c');%设置Option 菜单项 hoption=uimenu(gcf,'Label','&option');hgon=uimenu(hoption,'Label','&grid on','Call','grid on','Enable', 'off');hgoff=uimenu(hoption,'Label','&grid off','Call','grid off','Enable', 'off');hlinecolor=uimenu(hoption,'Label','&Line Color','Separator','on','Enable', 'off');uimenu(hlinecolor,'Label','&red','Accelerator','r','Call','set(plot(t,y),''Color'',''r'');');uimenu(hlinecolor,'Label','&blue','Accelerator','b','Call','set(plot(t,y),''Color '',''b'');');uimenu(hlinecolor,'Label','&green','Accelerator','g','Call','set(plot(t,y),''Colo r'',''g'');');%设置Exit菜单项uimenu(gcf,'Label','Exit','Call','close(gcf)');%设置快捷菜单hc=uicontextmenu;hlc=uimenu(hc,'Label','背景颜色');uimenu(hlc,'Label','red','Call','set(gcf,''Color'',''r'');');uimenu(hlc,'Label','blue','Call','set(gcf,''Color'',''b'');');uimenu(hlc,'Label','green','Call','set(gcf,''Color'',''g'');');set(gcf,'UIContextMenu',hc);2.%设置对话框的颜色(灰色),位置,大小等属性值hf=figure('Color',[0.5 0.5 0.5],'Position',[200 200 400 250],'Name','201100000','NumberTitle','off','MenuBar','none');%设置图形演示界面的位置,大小,不设的话默认在中心位置axes('Position',[0.35 0.23 0.6 0.7]);%设置提示部分uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.7 0.10.1],'Horizontal','center','String','a=','Back',[1 1 0]);uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.5 0.10.1],'Horizontal','center','String','b=','Back',[1 1 0]);uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.3 0.10.1],'Horizontal','center','String','n=','Back',[1 1 0]);%设置文本输入框的属性值he1=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.7 0.1 0.1],'Back',[1 1 1]);he2=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.5 0.1 0.1],'Back',[1 1 1]);he3=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.3 0.1 0.1],'Back',[1 1 1]);%这里因为函数比较短,直接写了进去,如果函数比较长时可以选择函数调用COMM=['a=str2num(get(he1,''string''));','b=str2num(get(he2,''string''));','n=str2num(get(he3,''string''));','theta=0:0.01:2*pi;','tho=a.*cos(b+n.*theta);', 'polar(theta,tho);'];%设置按钮属性值uicontrol(hf,'Style','Push','Units','normalized','Position',[0.05 0.05 0.10.12],'String','绘图','Call',COMM);uicontrol(hf,'Style','Push','Units','normalized','Position',[0.85 0.05 0.10.12],'String','退出','Call','close(hf)');六、实验总结通过对图形用户界面实验的练习,自己对这方面有了一个初步的认识。
(最新版)MATLAB实验报告实验一典型环节的MATLAB仿真一、实验目的1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、SIMULINK的使用MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。
利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。
1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。
2.选择File菜单下New下的Model命令,新建一个simulink 仿真环境常规模板。
3.在simulink仿真环境下,创建所需要的系统。
以图1-2所示的系统为例,说明基本设计步骤如下:1)进入线性系统模块库,构建传递函数。
点击simulink下的“Continuous”,再将右边窗口中“Transfer Fen”的图标用左键拖至新建的“untitled”窗口。
2)改变模块参数。
在simulink仿真环境“untitled”窗口中双击该图标,即可改变传递函数。
其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK,即完成该模块的设置。
3)建立其它传递函数模块。
按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。
例:比例环节用“Math”右边窗口“Gain”的图标。
4)选取阶跃信号输入函数。
用鼠标点击simulink下的“Source”,将右边窗口中“Step”图标用左键拖至新建的“untitled”窗口,形成一个阶跃函数输入模块。
5)选择输出方式。
用鼠标点击simulink下的“Sinks”,就进入输出方式模块库,通常选用“Scope”的示波器图标,将其用左键拖至新建的“untitled”窗口。
MATLAB实验指导书编著:李新平二零零八年三月十四日实验六、数据插值和数据拟合6.1 实验目的1)掌握用 MA TLAB 计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点 的数目,对三种插值结果进行初步分析。
2)掌握用 MA TLAB 进行多项式最小二乘拟合,会选择合适的函数及转化为线性函数。
3)通过实例学习用数据插值和数据拟合解决实际问题。
6.2 分段线性插值设给定一元未知函数 ) (x f y = 的 1 + n 个结点的数据 b x x a n = < < = L 0 对应的函数 值 n y y , , 0 L ,根据这些结点数据求其余 ) ( i j x j ¹ 点的函数值 j y ,可将相邻两个节点之间用 直线连接起来,如此形成的一条折线(见右图)构成的分段线性函数 ) (x I n 来近似表示未知函 数 ) (x f ,从而解决该插值问题的方法就称为分段线性插值。
可用如下公式表示:)( ) ( ) ( 0x f x l y x I nj j j n » = å = 其余, 0 , , ) ( 1111 1 1+ + + - - - £ £ - - £ £ - - ï ï îï ï íì= j j j j j jj j j j j x x x x x x x x x x x x x x x l 可用 MA TLAB 命令 y=interp1(x0,y0,x)来实现, 其中参数 x0 为给定结点数据的横坐标向 量,参数 y0 为 x0 对应的函数值,参数 x 为要未知结点的横坐标向量,函数返回值 y 为参数 x 根据分段线性插值得到的函数值。
【例】插值求在[0,15]区间内步长为 0.1 的机床加工数据:>>x0=[0 3 5 7 9 11 12 13 14 15]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];>>x=0:0.1:15; % 插值点>>y=inpert1(x0, y0, x) % 插值求得函数值6.3 拉格朗日插值设未知函数 ) (x g y = 是n 次多项式,给定该n 次多项式 1 + n 个结点的数据 ),, {( i i y x , } , , 0 n i L = 根据这些结点数据求其余 ) ( i j x j ¹ 点的函数值 j y ,可考虑如下构造:) ( ) () ( 0 x g x l y x L ni i i n » = å = )( ) )( ( ) ( )( ) )( ( ) ( ) (1 1 0 1 1 0 n i i i i i i n i i i x x x x x x x x x x x x x x x x x l - - - - - - - - = + - + - L L L L 来近似表示n 次多项式 ) (x g ,从而解决该插值问题的方法就称为拉格朗日插值。
综合实验报告Matlab综合实验报告:Matlab引言:Matlab是一种强大的数学计算软件,广泛应用于科学计算、数据分析和工程设计等领域。
本文将通过综合实验报告的形式,探讨Matlab在数据处理、图像处理和模拟仿真等方面的应用。
一、数据处理1.1 数据读取与处理在Matlab中,可以通过readtable函数读取各种格式的数据文件,如Excel表格、CSV文件等。
读取数据后,可以使用各种函数对数据进行处理,如排序、筛选、统计等。
此外,Matlab还提供了强大的绘图功能,可以直观地展示数据的分布和趋势。
1.2 数据拟合与回归分析Matlab提供了多种拟合和回归分析的函数,如polyfit、lsqcurvefit等。
通过这些函数,可以根据给定的数据点,拟合出最佳的曲线或曲面,从而预测未知数据的值。
这对于数据预测和趋势分析非常有用。
二、图像处理2.1 图像读取与显示Matlab支持多种图像格式的读取和显示,如JPEG、PNG、BMP等。
可以使用imread函数读取图像文件,并使用imshow函数显示图像。
同时,Matlab还提供了丰富的图像处理函数,如灰度化、二值化、平滑滤波等,可以对图像进行各种处理操作。
2.2 图像增强与特征提取通过Matlab的图像增强函数,如对比度调整、直方图均衡化等,可以改善图像的质量和清晰度。
此外,Matlab还提供了多种特征提取函数,如边缘检测、角点检测等,可以提取图像中的重要特征,用于目标识别和分析。
三、模拟仿真3.1 数学建模与仿真Matlab是一种优秀的数学建模工具,可以通过编写脚本文件,实现各种数学模型的建立和仿真。
例如,可以利用Matlab解决微分方程、优化问题等。
此外,Matlab还支持符号计算,可以进行符号运算和代数求解,方便进行复杂数学推导。
3.2 电路仿真与系统建模对于电子工程师来说,Matlab是一种不可或缺的工具。
Matlab提供了Simulink 工具箱,可以进行电路仿真和系统建模。
matlab实验报告总结1.求一份matlab的试验报告计算方法试验报告3【实验目的】检查各种数值计算方法的长期行为【内容】给定方程组x'(t)=ay(t),y'(t)=bx(t), x(0)=0, y(0)=b的解是x-y 平面上的一个椭圆,利用你已经知道的算法,取足够小的步长,计算上述方程的轨道,看看那种算法能够保持椭圆轨道不变。
(计算的时间步长要足够多)【实验设计】用一下四种方法来计算:1. Euler法2. 梯形法3. 4阶RK法4. 多步法Adams公式【实验过程】1. Euler法具体的代码如下:clear;a=2;b=1;A=[0 a; -b0];U=[];u(:,1)=[0;b];n=1000000;h=6*pi/n;fori=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5; u(:,i+1)=u(:,i)+h*A*u(:,i);endt=1:n+1;subplot(1, 2,1);plot(1:n,delta);gridon;subplot(1,2,2);plot(u(1,:),u(2,:));gridon;max(abs(delta-ones(1,length(delta))));结果如下:2. 梯形法具体的代码如下:clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=300;h=6*pi/n;for i=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;v1=u(:,i)+h*A*u(:,i);v2=u(:,i)+h*A*(u(:,i)+v1)/2;1u(:,i+1)=u(:,i)+h*A*(u(:,i)+v2)/2;endt=1:n+1;sub plot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下 3. 4阶RK法clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=70;h=6*pi/n;for i=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;k1=A*u(:,i); k2=A*(u(:,i)+h/2*k2); k3=A*(u(:,i)+h*k3); k4=A*(u(:,i)+h*k3); u(:,i+1)=u(:,i)+h/6*(k1+2*k2+2*k3+k4);endt=1:n+1 ;subplot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下:4. 多步法Adams公式clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=200;h=6*pi/n;u(:;2)=u(u,1)+h*A*u(:,1);u(:;3)=u(u,2)+h/2*A*(3*u(:,2)-u(:,1));u(:;4)=u(u,3)+h/12*A*(23*u(:,3)-16*u(:,2)+5*u(:, 1)); delta(1)=((u(1,1)/a)^2+(u(2,1)/b^2)^0.5 delta(2)=((u(1,2)/a)^2+(u(2,2)/b^2)^0.5delta(3)=((u(1,3)/a)^2+(u(2,3)/b^2)^0.5for i=4:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;u(:,i+1)=u(:,i)+h/24*A*(55*u(:,i)-59*u(:,i-1)+37 *u(:,i-1)+37*u(:,i-2)-9*u(:,i-3));endt=1:n+1;sub plot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下:【实验分析】通过这几种方法对比,发现最为稳定的是多步法Adams公式和4阶RK法,其次是梯形法,而欧拉法最为不稳定。
实验二 MATLAB 语言的程序设计一、实验目的及要求1.掌握一些矩阵运算的基本函数应用方法2.熟悉MA TLAB 程序编辑与设计环境3.掌握各种编程语句语法规则及程序设计方法4.会编写程序M 文件和函数M 文件5.初步掌握程序的调式方法二、实验内容1.掌握以下矩阵操作函数实际给定一些数据后,使用各种函数计算,观察运算结果: zeros(n) 生成nxn 的零阵 zeros(n,m) 生成n 行m 列的零阵 ones(n,m) 生成n 行m 列的全1阵 eye(n) 生成nxn 的单位阵 randn(n,m) 生成元素为正态分布随机阵 x=[] 生成空矩阵 1、⎥⎦⎤⎢⎣⎡=654321a ⎥⎦⎤⎢⎣⎡-=531142b ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=201c ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=063258741d下列运算是否合法,为什么?如合法,结果是多少? (1) result1 = a' 答>> result1=a'result1 =1 42 53 6(2) result2 = a * b 错误(3) result3 = a + b 答> result3=a+bresult3 =3 6 2 5 8 11(4) result4 = b * d答>> result4=b*dresult4 =31 22 2240 49 13(5) result5 = [b ; c' ] * d答>> result5=[b;c']*dresult5 =31 22 2240 49 13-5 -8 7(6) result6 = a . * b答>> result6 = a.*bresult6 =2 8 -34 15 30(7) result7 = a . / b答>> result7=a./bresult7 =0.5000 0.5000 -3.00004.0000 1.6667 1.2000 (8) result8 = a . * c错误(9) result9 = a . \ b答>> result9=a.\bresult9 =2.0000 2.0000 -0.33330.2500 0.6000 0.8333 (10) result10 = a . ^2答>> result10=a.^2result10 =1 4 916 25 36(11) result11 = a ^2错误(12) result11 = 2 . ^ a答>> result12=2.^aresult12 =2 4 816 32 642、关系运算与逻辑运算已知a=20,b=-2,c=0,d=1(1) r1 = a > b答>> r1=a>br1 =1(2) r2 = a > b & c > d答>> r2=a>b &c>dr2 =(3) r3 = a == b* (-10)答>> r3 = a == b* (-10)r3 =1(4) r4 = ~b | c答>> r4=~b|cr4 =2.熟悉MATLAB程序编辑与设计环境要求:1)简单程序的编写与运行。
实验六Matlab程序设计一、实验目的:1、熟练掌握M文件的结构。
2、熟练掌握MATLAB的程序流程控制结构。
3、学会编写基本程序。
二、实验内容与步骤:◆用户如想灵活应用matlab去解决实际问题,充分调用matlab的科学技术资源,就需要编辑m文件◆包含matlab语言代码的文件称为m文件,其扩展名为m。
◆编辑m文件可使用各种文本编辑器。
1.M文件的创建方法:在matlab命令窗口点击file 菜单new m-file,可以打开空白的文件编辑器,也可以通过打开已有的M文件来打开文件编辑器。
如图所示,为打开已建的M文件。
2. M文件的编写2.1 M脚本文件(1)在MATLAB桌面打开M文件编辑器;(2)将以下命令全部写入编辑器,为了能标志该文件名称,在第一行写入包含文件名的注释。
%exam01二阶系统时域响应曲线x=0:0.1:20;y1=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3))plot(x,y1,'r')hold ony2=1-1/sqrt(1-0.707^2)*exp(-0.707*x).*sin(sqrt(1-0.707^2)*x+acos(0.707)) plot(x,y2,'g')y3=1-exp(-x).*(1+x)plot(x,y3,'b')编写好之后,将文件存在当前路径下,文件名exam01.m,在MATLAB命令窗口执行命令:>>exam012.2 M函数文件MATLAB函数文件(function file)的格式:function 返回变量=函数名(输入变量)注释说明语句段程序语句段特定规则:(1)函数m文件第一行必须以单词function作为引导词,必须遵循如下形式:function <因变量>=<函数名>(<自变量>)(2)m文件的文件名必须是<函数名> .m。
实验名称MATLAB编程实验目的和要求:1、熟悉MATLAB的编程。
2、掌握定义和调用MA TLAB函数的方法。
3、掌握利用if语句、switch语句实现选择结构的方法。
4、掌握for语句、while语句实现循环结构的方法。
实验内容和步骤:1、输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。
c=input('请输入一个字符','s');if c>='A'&c<='Z'disp(setstr(abs(c)+1));else if c>='a'&c<='z'disp(setstr(abs(c)-1));else if c>='0'&c<='9'disp(abs(c)-abs('0'));elsedisp(c);endendend运行结果:请输入一个字符aeyhjgfhgdfgsdfgdxgifegfcefrcef请输入一个字符WEWERETRYTRUYTXFXFSFUSZUSVZU请输入一个字符45445454794 5 4 4 5 4 5 4 7 92、已知5个学生4门功课的成绩,求每名学生的总成绩。
s=0;a=[65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87]for k=as=s+k;enddisp(s);运行结果:a =65 76 56 7898 83 74 8576 67 78 7998 58 42 7367 89 76 872753403002713193、已知多项式h=x^6-10x^5+31x^4-10x^3-116x^2+200x-96,求其根程序:h=roots([1 -10 31 -10 -116 200 -96])运行结果:h =-2.00004.00003.00002.00002.00001.00004、从键盘输入一个三位整数,将它反向输出。
实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境.2.学习使用图形函数计算器命令funtool及其环境。
二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format 命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。
求下列函数的符号导数(1)y=sin(x);(2) y=(1+x)^3*(2-x);求下列函数的符号积分(1)y=cos(x);(2)y=1/(1+x^2);(3)y=1/sqrt(1—x^2);(4)y=(x1)/(x+1)/(x+2)求反函数(1)y=(x-1)/(2*x+3); (2) y=exp(x);(3) y=log(x+sqrt(1+x^2));代数式的化简(1)(x+1)*(x-1)*(x-2)/(x-3)/(x—4);(2)sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x—3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。
从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2)y2=(x+2)^2(3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作求和(1)sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5乘积(1)exp(—x)*sin(x) (2) sin(x)*x商(1)sin(x)/cos(x); (2) x/(1+x^2); (3) 1/(x—1)/(x—2); 求复合函数(1)y=exp(u) u=sin(x) (2) y=sqrt(u) u=1+exp(x^2)(3) y=sin(u) u=asin(x) (4) y=sinh(u) u=-x实验二:MATLAB基本操作与用法一、实验目的1.掌握用MATLAB命令窗口进行简单数学运算。
MATLAB程序设计实验6 解方程和最优化问题求解 一.实验目的 1. 掌握线性方程组的数值求解方法。 2. 掌握常微分方程的数值求解方法。 3. 掌握非线性方程以及最优化问题的求解方法。
二.实验内容 1. 对下列线性病态方程组:
123
1/21/31/40.951/31/41/50.671/41/51/60.52xxx
a) 求方程组的解。 >> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; >> b=[0.95,0.67,0.52]'; >> x=A\b
x = 1.2000 0.6000 0.6000 b) 将方程组右边的向量元素b3(0.52)修改为0.53,再次求方程组的解。比较b3的变化和解的相对变化。 >> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; b=[0.95,0.67,0.53]'; x=A\b
x = 3.0000 -6.6000 6.6000 c) 求系数矩阵的条件数,并分析条件数对线性方程组求解的影响。
2. 求方程的解。 a) 413010,1xxx 函数文件:funx.m function fx=funx(x) fx=x^41+x^3+1; 调用: >> z=fzero(@funx,-1)
z = -0.9525 b) 0sin0,0.5xxxx 函数文件funx.m function fx=funx(x) fx=x-sin(x)./x; >> z=fzero(@funx,0.5)
z = 0.8767
c)23sinln70321050yxyzxzxyz,000111xyz 函数文件:funx.m >> z=fzero(@funx,0.5)
z = 0.8767 调用函数: >> options=optimset('Display','off'); >> x=fsolve(@funx,[1,1,1]',options) x =
0.5991 2.3959 2.0050 3. 求常微分方程的数值解。
a) '1.2sin100yty,000,5,1fttyt 函数文件: function yp=funx(t,y) yp=-(1.2+sin(10*t)).*y; 函数调用: >> t0=0; >> tf=5; >> y0=1; >> [t,y]=ode23(@funx,[t0,tf],y0); >> t'
ans = Columns 1 through 9 0 0.0667 0.1375 0.2003 0.2695 0.3528 0.4362 0.5033 0.5663
Columns 10 through 18 0.6369 0.6913 0.7457 0.8081 0.8738 0.9591 1.0277 1.0963 1.1600
Columns 19 through 27 1.2246 1.3082 1.3714 1.4347 1.5001 1.5842 1.6530 1.7219 1.7858
Columns 28 through 36 1.8501 1.9319 1.9953 2.0587 2.1236 2.2053 2.2745 2.3438 2.4080
Columns 37 through 45 2.4719 2.5501 2.6140 2.6779 2.7419 2.8193 2.9046 2.9685 3.0323
Columns 46 through 54 3.0959 3.1721 3.2364 3.3007 3.3642 3.4395 3.5328 3.5965 3.6602
Columns 55 through 63 3.7238 3.7998 3.8642 3.9286 3.9920 4.0671 4.1408 4.2144 4.2800 Columns 64 through 72 4.3432 4.4159 4.4812 4.5465 4.6094 4.6812 4.7567 4.8322 4.8990
Columns 73 through 74 4.9620 5.0000 >> y' ans = Columns 1 through 9 1.0000 0.9035 0.7822 0.6823 0.5984 0.5402 0.5182 0.5106 0.4976
Columns 10 through 18 0.4656 0.4280 0.3844 0.3355 0.2936 0.2595 0.2469 0.2421 0.2382
Columns 19 through 27 0.2290 0.2054 0.1819 0.1585 0.1387 0.1225 0.1164 0.1140 0.1122
Columns 28 through 36 0.1080 0.0974 0.0864 0.0753 0.0658 0.0581 0.0549 0.0537 0.0529
Columns 37 through 45 0.0511 0.0466 0.0415 0.0361 0.0316 0.0278 0.0258 0.0253 0.0249
Columns 46 through 54 0.0241 0.0221 0.0197 0.0172 0.0150 0.0132 0.0122 0.0119 0.0117
Columns 55 through 63 0.0114 0.0104 0.0093 0.0081 0.0071 0.0062 0.0058 0.0056 0.0055
Columns 64 through 72 0.0054 0.0050 0.0045 0.0039 0.0034 0.0030 0.0027 0.0026 0.0026
Columns 73 through 74 0.0025 0.0025 b) '2/1cosyytt,000,5,1fttyt 函数文件: function yp=funx(t,y) yp=-y./(1+t^2)+cos(t); 函数调用: >> t0=0; >> tf=5; >> y0=1; >> [t,y]=ode23(@funx,[t0,tf],y0); >> t'
ans = Columns 1 through 9 0 0.5000 0.8016 1.1033 1.4077 1.7537 2.2301 2.5215 2.8129
Columns 10 through 18 2.9727 3.1326 3.3001 3.5091 3.7549 4.0375 4.3637 4.7584 5.0000
>> y' ans = Columns 1 through 9 1.0000 1.0146 1.0363 1.0450 1.0162 0.9157 0.6451 0.4122 0.1437 Columns 10 through 18 -0.0122 -0.1699 -0.3330 -0.5273 -0.7327 -0.9233 -1.0649 -1.1040 -1.0534 4. 求函数在指定区间的最大值。
2411xfxx
,0,2x
函数文件: function fx=funx(x) fx=-(1+x^2)/(1+x^4); 函数调用: >> x=fminbnd(@funx,0,2)
x = 0.6436 5. 有400万资金,要求在4年内使用完,若在一年内使用资金x万元,则可得效益x万元(效益不能再次使用),当年不用的资金可以存入银行,年利率为10%。制订资金的使用方案,使4年效益之和最大。 函数文件funx.m: function fx=funx(x) fx=sqrt(x(1))+sqrt(x(2))+sqrt(x(3))+sqrt(x(4)); 函数文件fx.m: x0=[400,400,400,400]; A=[1,0,0,0;1.1,1,0,0;1.1^2,1.1,1,0;1.1^3,1.1^2,1.1,1]; b=400*[1,1.1,1.1^2,1.1^3]; [x,f]=fmincon(@funx,x0,A,b,[],[],[],[],[]) >> fx Maximum number of function evaluations exceeded; increase OPTIONS.MaxFunEvals.
x = 45.0754 79.5756 88.9185 77.6690
f = 33.8770