资源描述:
《Matlab案例程序集锦.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、案例程序集锦1 例:绘制二维曲线2 例:求导数的符号计算处理3 例:参数方程求导及其function实现4 例:二次方程求根的Matlab函数编程实现5 例:一个微分方程模型及其符号计算6 例:优化模型求解示例(多种求解方法)7 例:修理厂的模拟8 例:梯子问题及其优化模型求解(带符号计算求解)例:绘制二维曲线设曲线和直线所围区域D,编程绘制这两条曲线(要在同一个figure中)。参考解答:参考实现1:functionfun1x1=linspace(-3,3,1000);%也可以用x1=-3:0.1:3;y1=
2、sqrt(9-x1.^2);x2=linspace(-5,10,100);%也可以用x2=-5:0.1:10;y2=x2-2;axisequalholdonplot(x1,y1,x1,-y1)%很容易忘了化另外的曲线plot(x2,y2)holdoff参考实现2:functionfun2t=linspace(0,2*pi,200);%注:也可以用t=0:0.1:2*pi;没有linspace好r=3;x1=r*cos(t);y1=r*sin(t);x2=linspace(-5,10,100);%也可以用x2=-5:0.1:10;y2=x2-2;axisequalholdon
3、plot(x1,y1)plot(x2,y2)holdoff参考实现3:functionfun3theta=linspace(0,2*pi,200);x2=linspace(-5,10,100);%也可以用x2=-5:0.1:10;y2=x2-2;axisequalholdonpolar(theta,3*ones(size(tehta)))plot(x2,y2)holdoff例:求导数的符号计算处理已知,1.创建符号函数y,编程计算2.用inline创建此函数y,然后用其计算。参考解答:symsx?%申明符号变量y=x^2+tan(x)/(x-1)^2;%创建符号表达式dif
4、f(y,1)?%求一阶导数diff(y,2)?%求二阶导数y=inline('x^2+tan(x)/(x-1)^2');%用inline创建函数yvalue=y(100)?%计算函数值例:参数方程求导及其function实现已知,a,b为参数,要求通过编程来计算y对x的导数,能够实现任意给定a,b都能求出,且实现形式必须用function,采取如下的申明形式:functionr=mydiff1(a,b,t);并给出调用mydiff1(1,3,1)(10分)参考解答:functiontemp2%主函数v=mydiff1(1,3,1)functionr=mydiff1(a,b,
5、t0)%子函数%输入参数不能换为t(下面sym语句中已经包含了t)x=sym('a*cos(t)');y=sym('b*sin(t)');r=subs(diff(y,'t',1)/diff(x,'t',1),'t',t0);r=subs(r,'a',a);r=subs(r,'b',b);(注:以上两个函数也可以各自保存为一个文件)例:二次方程求根的Matlab函数编程实现编写程序求解方程的根,要求将实现封装为一个函数(function)。首先要说明输入参数、输出参数。(10分)参考解答:输入:a,b,c输出:方程的根(实数根或虚根)计算:编程实现参考2:编程实现参考1:fu
6、nctionr=myroot(a,b,c)functionr=myroot(a,b,c)%返回2个根%返回2个根t=sqrt(b^2-4*a*c);t=sqrt(b^2-4*a*c);r=(-b+[-t,t])./(2*a);r(1)=(-b+t)/(2*a);r(2)=(-b-t)/(2*a);例:一个微分方程模型及其符号计算突然间下了20分钟雨,收集到1/2英寸的雨量。现要建立一个函数R(t),用来描述降雨量随时间变化的规律。假设已知降雨速度()保持恒定。请建立确定的微分方程模型,并编程求解此微分方程模型。参考解答:有假设可知降雨速度()保持恒定,因此不妨设为常数k,又
7、已知,则原问题可以用下面的带有条件的微分方程模型来描述:.模型求解程序:t=dsolve('DR=k','R(0)=0')%求出特解%带入第2个条件再解参数keq2=[char(t),'=0.5']%构造方程eq2=subs(eq2,'t',20)%另要带入条件t=20solve(eq2,'k')%解方程注:为便于理解程序,下面给出其运行显示结果:t=k*teq2=k*t=0.5eq2=20*k=.5ans=.25000000000000000000000000000000e-1实际上原问题的解为:.例:优化模型求