实验五 MATLAB数值计算和符号运算
一、实验目的
1.掌握并理解Maltab在数值计算的基本用法。 2.理解matlab在工程领域解题的一般过程。 3. 掌握Matlab符合运算的基本方法。
二、实验的设备及条件
计算机一台(带有MATLAB7.0以上的软件环境)。
三、实验内容
1.线性系统方程:分别使用左除(\\)和LU分解求解下面系统方程的解:
?3a?6b?4c?1??a?5b?2 ?7b?7c?3?2. 使用quad和trapz求解
?50xe?x/3dx的数值积分,并与其解析解相比较(解析解利
用符号运算进行求解,参考函数int);(要求:使用quad求积分时,请分别用函数文件和匿名函数的方式求解)
提示:这里trapz是离散积分,需先分别对x和y数据进行采样,即需要产生相应的数据点模拟采样数据);
3.求下面函数在[0.5,4]区间内的过零点。(用fzero函数)
提示:首先用函数ezplot绘制曲线f(x)在[0.5,4]上的图像,命令如下 ezplot('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x',[0.5,4]);其次,根据图像得到函数上接近零点的坐标,利用fzero函数求其零点。
4.求常微分方程的数值解
?d2ydy(x?1)?2?y?0?dx2dx??y(0)?1?y?(0)??1??提示:需先撰写函数,再用ode45或ode23求解。
5.对边长为3m的正方形铁板,在4个角剪去相等的正方形以制成方形无盖水槽,问何种剪法可使水槽的容积最大?(提示:设剪去的正方形边长为x,则水槽的体积应为(3-x)x,利用fminbnd求解,考虑实际情况,注意fminbnd的求解区间的设置)
2
6. 设有400万元资金,要求4年内使用完,若在一年内使用资金x万元,则可得效益 ,当年不用的资金可存入银行,年利率为10%。试制定出资金x万元(效益不能再使用)
的使用计划,以使4年效益之和为最大。
(提示1:这是一个有约束条件的最优化问题的求解,需利用线性规划建立函数方程,假设第一年至第四年使用的资金分别为x1,x2,x3,x4,则可建立以下方程:)
(提示2:该方程需要根据fmincon函数的要求进行一下转换,比如fmincon只能求解最小值的最优化问题,线性不等式需转换为小于等于的形式等)。
max:f(x1,x2,x3,x4)?x1?x2?x3?x4?x1?400?x?(400?x)?1.1?21??x3?((400?x1)?1.1?x2)?1.1??x4?(((400?x1)?1.1?x2)?1.1)?x3)?1.1
四、程序设计
题1.1
>> A=[3 6 4;1 5 0;0 7 7;]; >> B=[1 2 3]'; >> x=A\\B x =
-0.5824 0.5165 -0.0879
题1.2
>> A=[3 6 4;1 5 0;0 7 7;]; >> [L,U]=lu(A); >> b=[1 2 3]'; >> x=U\\(L\\b) x =
-0.5824 0.5165 -0.0879
题2.1
function z=quda(x1, y1)
y=inline('x.*exp(-x./3)','x'); quad(y,x1,y1) >> quda(5,0)
ans = -4.4670
题2.2
>> quad(@(x)(x.*exp(-x./3)),5,0) ans = -4.4670
题2.3
>> x=0:0.1:5;
>> y=x.*exp(-x./3); >> trapz(x,y) ans = 4.4660
题2.4
>> syms x
>> int(x.*exp(-x./3),0,1) ans =
9 - 12/exp(1/3) 题3
>> ezplot('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x',[0.5,4]) >> [xx,yy]=ginput(2) xx =
1.4234 2.6250 yy = 0.0225 -0.2379
>> y=inline('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x','x') y =
Inline function:
y(x) = x^3-2*x^2*sin(x)+5*x*cos(x)+1/x
>> [x1,y1]=fzero(y,xx(1)) x1 = 1.5117 y1 = 0
>> [x2,y2]=fzero(y,xx(2)) x2 = 2.6095 y2 =
0
题4
function dy=result(x,y); dy=zeros(2,1); dy(1)=y(2);
dy(2)=(2*y(2)+y(1))./(1-x) >>tspan=[0:0.01:1]; >>y0=[1 -1];
>>[x,y]=ode45('result',tspan,y0) >>plot(x,y)
>>plot(x,y(:,1),'-',x,y(:,2),'--') >>title('常微分方程解'); >>legend('y1','y2'); >>xlabel('x'); >>ylabel('y');
题5
>>a=fminbnd('1/((3-2*x).^2.*x)',0,1.5); >>b=1/a b = 2.0000
>>x=[0:0.001:1.5]; >>y=(3-2*x).^2.*x-2; >>plot(x,y);
>>[xx,yy]=ginput(1);
>> [x1,y1]=fzero(y,xx(1)) x =
0.5 y = 0
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库MATLAB数值计算和符号运算在线全文阅读。
相关推荐: