上机数值计算练习题及答案.docx

合集下载

c上机例题100(带答案)

c上机例题100(带答案)

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

数值计算方法试题及答案

数值计算方法试题及答案
(1) (1)试用余项估计其误差。
(2)用n8的复化梯形公式(或复化Simpson公式)计算出该积分的近似值。
e
2
x
数值试题
四、1、(15分)方程x3x10在x不同的等价形式(1)x3对应迭代格式
xn1
1xn
1.5附近有根,把方程写成三种
x1对应迭代格式xn1xn1;(2)
x1
1x
;(3)x
3
x1对应迭代格式xn1xn1。判
六、(下列2题任选一题,4分)1、1、数值积分公式形如
0xf(x)dxS(x)Af(0)Bf(1)Cf(0)Df(1)(1)(1)试确定参数A,B,C,D使公式代数精度尽量高;(2)
1
2、
设f(x)C[0,1],推导余项公式
误差。2、用二步法
4
R(x)
1
xf(x)dxS(x)
,并估计
yn10yn1yn1h[f(xn,yn)(1)f(xn1,yn1)]
4
数值试题
AX
1
__________,cond(A)
1
__________。
f(x0)f(x1)
具有最高的代
f(x)dx
5、为使两点的数值求积公式:1
x2__________。数精确度,则其求积基点应为x1__________,
6、设ARnn,ATA,则(A)(谱半径)__________
填小于、大于、等于)
1A2
147、设
012
A
2
。(此处
,则k__________。
三、简答题:(9分)1、1、方程x42x在区间1,2使用高斯消去法解线性代数方程组,一般为什么要用选主元的技术?
x

数值计算方法上机实习题考证

数值计算方法上机实习题考证

数值计算⽅法上机实习题考证--------------------------------------------------- 此⽂档包含我们计算⽅法的经典算法包含(数值计算⽅法上机实习题)1.设?+=105dx xx I nn ,(1)由递推公式n I I n n 151+-=-,从0I 的⼏个近似值出发,计算20I ;(2)粗糙估计20I ,⽤nI I n n 51511+-=-,计算0I ;(3)分析结果的可靠性及产⽣此现象的原因(重点分析原因)。

(1) 解答:n=0,0.1823)05ln()15ln()5(51515101010=+-+=++=+=+=x d xdx x dx x x I nn这⾥可以⽤for 循环,while 循环,根据个⼈喜好与习惯:for 循环程序: While 循环程序: I=0.1823; I=0.1823; for n=1:20 i=1;I=(-5)*I+1/n; while i<21 End I=(-5)*I+1/i; I i=i+1; fprintf('I20=%f',I) end I = -2.0558e+009 >> II20=-2055816073.851284>> I = -2.0558e+009 (2) 粗略估计I 20: Mathcad 计算结果: for 循环程序: While 循环程序: >> I=0.007998; I=0.007998; >> for n=1:20 n=1;I=(-0.2)*I+1/(5*n); while n<21End I=(-0.2)*I+1/(5*n); >> I n=n+1; I =0.0083 end >> II =0.0083(3) 算法误差分析:计算在递推过程中传递截断误差和舍⼊误差第⼀种算法:(从1——>20)1x x 205x +d 7.998103-?=*000e I I =-*115(5)5()555n n n n n n n n n n e I I I I I I e e e n n------=-=-+--+=-===误差放⼤了5n倍,算法稳定性很不好;第⼆种算法:(从20——>1)*n n ne I I =-***111111111()()555555n n n n n n nn e I I I I I I e n n ---=-=-+--+=-=0111...()55n ne e e ===误差在逐步缩⼩,算法趋近稳定,收敛。

上机2 参考答案

上机2 参考答案

上机2 参考答案三、1.(1)平均值为:0.000000原因是:x,y和z都是整数,则(x+y+z)/3时,即整数与整数除法得到的结果是取整。

(2)平均值为:0.666667(3)平均值为:0.6666672. 程序输出的结果是:3141.590089,3141.590001解释:float类型的有效位数是7位,double类型的有效位数是16位。

3. 程序输出的结果是:97,61,141,ak=%d第一个printf中格式控制个数与变量列表中的变量个数不一致。

k的值没有输出。

第二个printf中两个连续的%字符会输出一个%。

k的值没有输出。

4. 程序输出的结果是:213.83,213.83%7.2f表示小数点保留2位有效数字,宽度为7。

%-4.2f小数点保留2位有效数字,宽度为4,左对齐。

若设定的宽度比实际输出的宽度要小,将按原长输出。

5.第7行错,错误原因:掉了&。

修改后的语句如下:scanf("x=%d,y=%f,c=%c",&x,&y,&c);第8行错,错误原因:格式控制符错误。

修改后的语句如下:printf("x=%d,y=%f,c=%c",x,y,c);程序修改正确后,输出正确的结果是:x=25,y=36.700001,c=C6. (1)程序输出的结果为:x,y(2)将第4行改为“int c1,c2;”,输出结果为:x,y(3)将第5行改为“c1=x;”,编译结果如何?原因是什么?出错,赋值格式不对。

右边不能是变量。

(4)将第5行改为“c1=300”,输出结果为:,,y结合输出结果分析原因:c1=300,当以%c的格式输出c1时,进行如下计算:300-256=44,即输出ASCII 值为44对应的字符,即“,”。

(5)将第7行改为“printf(“%d,%d”,c1,c2);”,输出结果为:120,121(6)将第7行改为“printf(“%d,%d”,c1+255,c2+256);”,输出结果为:375,377(7)将第7行改为“printf(“%c,%c”,c1+255,c2+256);”,输出结果为:w,y7. 程序输出的结果是:a=2,b=1,c=1,d=0,e=6观察结果,并对结果做出合理的解释:对于表达式:++a||++b&&++c;当++a为真时,由于是做“或操作”,所以++b不执行。

数值分析上机试题及解答2008

数值分析上机试题及解答2008

东华大学数值分析试题(上机部分)A 卷2008年12月 时间:60分钟班级 学号 机号 姓名 得分 注意:要求写出M 函数(如果需要)、MATLAB 命令和计算结果。

1. 求下列方程组在0<α, β<1中的解⎩⎨⎧-=+=βαββααsin 2.0cos 7.0cos 2.0sin 7.0 命令fun=inline('[x(1)-0.7*sin(x(1))-0.2*cos(x(2)),x(2)-0.7*cos(x(1))+0.2*sin(x(2))]','x'); [x,f,h]=fsolve(fun,[0.5 0.5]) 结果α=0.5265,β=0.50792命令>> fun=inline('c(1)+c(2)*x.^2','c','x'); >> x=[1.1 1.3 1.4 1.6 1.8]; >> y=[26 22 23 24 25];>> c=lsqcurvefit(fun,[0 0],x,y) 结果 c =23.7256 0.12873.求解下列微分方程组2(0)2013(0)1x x yx t y x yy '=-=⎧<<⎨'=+=⎩(结果只要求写出t =1时的解) 命令>> fun=inline('[y(1)-2*y(2);3*y(1)+y(2)]','t','y'); >> [t,y]=ode45(fun,[0 1], [2 1]) 结果x(1)=-5.6020, y(1)=2.15634.用定步长Gauss 积分法(课本123页)计算积分31e ln(1)x x dx -+⎰的近似值(等分数取4,每段取2个Gauss 点)。

命令fun=inline('exp(-x).*log(1+x)','x'); nagsint(fun,1,3,4,2) 结果 0.30865.矩阵改进平方根分解(课本25页)的计算公式为: d 1=a 11, 对i =2, 3, ⋯, n ,iki k ik ii i j ij ij j k jk ik ij ij l s a d i j d s l l s a s ∑∑-=-=-=-==-=1111,1,,2,1 ,/ ,试编写矩阵改进平方根分解的程序,并求矩阵1111551514A -⎛⎫ ⎪=-- ⎪ ⎪-⎝⎭的改进平方根分解。

数值计算上机作业

数值计算上机作业

西南交通大学数值计算课程上机作业组号第1组组员学号班级任课教师2017年12月10日目录第1题........................................................................................................ 错误!未定义书签。

1.1 (a) ..................................................................................................... 错误!未定义书签。

1.2 (b) ..................................................................................................... 错误!未定义书签。

第2题. (1)2.1 (a)................................................................................................. 错误!未定义书签。

2.2 (b) ................................................................................................ 错误!未定义书签。

第3题. (1)第4题 (2)4.1 (a)................................................................................................. 错误!未定义书签。

4.2 (b) ................................................................................................ 错误!未定义书签。

数值计算方法上机实验考试答案

数值计算方法上机实验考试答案

数值计算方法上机实验考试答案1. 小型火箭初始质量为900千克,其中包括600千克燃料。

火箭竖直向上发射时燃料以15千克/秒的速率燃烧掉,由此产生30000牛顿的恒定推力。

当燃料用尽时引擎关闭。

设火箭上升的整个过程中,空气阻力与速度平方成正比,比例系数为0.4(千克/米)。

重力加速度取9.8米/秒2.A. 建立火箭升空过程的数学模型(微分方程);B. 求引擎关闭瞬间火箭的高度、速度、加速度,及火箭到达最高点的时间和高度。

解:A . 建立模型:)(t x ——t 时刻的火箭高度;T =30000(牛顿)——火箭推力,当时间t >40秒时,T=0; m t m 150-=——火箭飞行过程中的质量,t >40秒时,300=m 千克0m =900(千克)——火箭初始质量; 1m =600(千克)——燃料质量;c =15(千克/秒)——燃料的燃烧速率; k =0.4(千克/米)——空气阻力系数; g =9.8(米/秒2)——重力加速度由能量守恒定律,可得到火箭飞行过程的方程:mg T t x k t x m -+'-=''2)]([)(这是一个初值问题,初始条件为 0)0(,0)0(='=x x设)(),(21t x x t x x '==,则问题化为求下列微分方程组的初值问题:⎪⎩⎪⎨⎧--+--='='g t m T x t m k x x x 151******** 0)0(,0)0(21==x xB . 关闭引擎时4015/600==t (秒),所求的是此时火箭的高度)40(1x ;速度)40(2x ;加速度)40()40(21x x '''或,及火箭到最高点的时间m t 和高度)(1m t x 。

具体的Matlab 程序如下: 首先建立微分方程的的m 文件:function y=huojian(t,x)k=0.4;g=9.8;m0=900;T=30000;m=m0-15*t;if t>40T=0;m=300;endy=[x(2),-(k/m)*x(2)^2+T/m-g]';主程序:%feixing.mk=0.4;g=9.8;m0=900;T=30000;x0=[0,0];ts=0:1:55;[t,x]=ode23('huojian',ts,x0);[t,x(:,1)]%------a=[t,x];x40=a(41,2) %燃料用尽时的高度v40=a(41,3) %燃料用尽时的速度a40=-(k/300)*v40^2+T/300-g %燃料用尽时的加速度%-------xmax=max(x(:,1)) %火箭到达最高点的高度subplot(2,1,1),plot(t,x(:,1)),title('altitude') subplot(2,1,2),plot(t,x(:,2)),title('speed')运行结果为:1.0e+003 *0 00.0010 0.01180.0020 0.04750.0030 0.10670.0040 0.18890.0050 0.29270.0060 0.41680.0070 0.55920.0080 0.71800.0090 0.89140.0100 1.07700.0380 7.80510.0390 8.06310.0400 8.32240.0410 8.54000.0420 8.70040.0430 8.82420.0440 8.92180.0450 8.99940.0460 9.06070.0470 9.10830.0480 9.14370.0490 9.16810.0500 9.18220.0510 9.18640.0520 9.18070.0530 9.16510.0540 9.13900.0550 9.1018x40 =8322.4v40 = 254.1728a40 = 4.0616xmax =9186.4关闭引擎时4015/600==t (秒),此时火箭的高度h=)40(1x =8322.4米,速度v=)40(2x =254.1728米/秒,加速度为a=)40(1x ''= 4.0616米/秒2,火箭到最高点的时间m t =51秒,高度)(1m t x =9186.4米。

东南大学数值分析上机题答案

东南大学数值分析上机题答案

数值分析上机题第一章17.(上机题)舍入误差与有效数 设∑=-=Nj N j S 2211,其精确值为)111-23(21+-N N 。

(1)编制按从大到小的顺序1-1···1-311-21222N S N +++=,计算N S 的通用程序;(2)编制按从小到大的顺序121···1)1(111222-++--+-=N N S N ,计算NS 的通用程序;(3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数(编制程序时用单精度); (4)通过本上机题,你明白了什么?解: 程序:(1)从大到小的顺序计算1-1···1-311-21222N S N +++=:function sn1=fromlarge(n) %从大到小计算sn1format long ; sn1=single(0); for m=2:1:nsn1=sn1+1/(m^2-1); end end(2)从小到大计算121···1)1(111222-++--+-=N N S N function sn2=fromsmall(n) %从小到大计算sn2format long ; sn2=single(0); for m=n:-1:2sn2=sn2+1/(m^2-1); end end(3)总的编程程序为: function p203()clear allformat long;n=input('please enter a number as the n:') sn=1/2*(3/2-1/n-1/(n+1));%精确值为snfprintf('精确值为%f\n',sn);sn1=fromlarge(n);fprintf('从大到小计算的值为%f\n',sn1);sn2=fromsmall(n);fprintf('从小到大计算的值为%f\n',sn2);function sn1=fromlarge(n) %从大到小计算sn1 format long;sn1=single(0);for m=2:1:nsn1=sn1+1/(m^2-1);endendfunction sn2=fromsmall(n) %从小到大计算sn2 format long;sn2=single(0);for m=n:-1:2sn2=sn2+1/(m^2-1);endendend运行结果:从而可以得到N值真值顺序值有效位数2 100.740050 从大到小0.740049 5从小到大0.740050 64 100.749900 从大到小0.749852 3从小到大0.749900 66 100.749999 从大到小0.749852 3从小到大0.749999 6(4)感想:通过本上机题,我明白了,从小到大计算数值的精确位数比较高而且与真值较为接近,而从大到小计算数值的精确位数比较低。

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

习题31、在MATLAB 中,先运行指令A=magic(3), B=[l,2,l;3,4,3;5,6,7], C=reshape(l:6,3,2)生成阵列A 珂,B3X2,C3X2 ,然后根据运行结果回答以下问题:(1)计算A*B,B*A,这两个乘积相同吗?(2)计算A\B, B/A,左除、右除结果相同吗?(3)计算B(:,[1,2]).*C和C.*B(:, [1,2]),这两个乘积相同吗?(4)计算A\A和AAA,这两个计算结果相同吗?(5)计算A\eye(3)和inv(A),这两个计算结果相同吗?(提示:根据对计算结果的目测回答问题)解答如下:运行指令:A=magic(3), B=[l,2,l;3,4,3;5,6,7], C=reshape(l:6,3,2)得到结果:8 1 63 5 74 9 2B =1 2 13 4 35 6 7C =1 42 53 6(1)计算A*B,并得到结果如下:» A*Bans =41 56 5353 68 6741 56 45计算B*A, 并得到结果如下:»B*Aans =18 20 2248 50 5286 98 86从以上计算结果可以得出结论:A*BJ (2)计算A\B ,并得到结果如下:» A\Bans =0.0333 0.1000 0.16110.5333 0.6000 0.74440.0333 0.1000 -0.1722计算B/A, 并得到结果如下:B/Aans =0.0056 0.0889 0.17220.1389 0.2222 0.30560.2333 0.7333 0.2333 与B*A这两个乘积不同。

从以上计算结杲可以得出结论:左除、右除结杲不同。

(3)计算B(:,[1,2]).弋,并得到结果如下:A =» B(:,[1,2]).*C ans =1 8 6 20 15 36计算C.*B(:, [1,2]),并得到结果如下: » CFB(:, [1,2]) ans =1 6 20 15 36从以上计算结果可以得出结论:B(: J1,2]).*C 和C ・*B(:, [1,2])的两个乘积相同。

(4)计算A\A,并得到结果如下: » A\A 0 0 1 0 0 1 并得到结果如下:» AAAans =1 1 1 1 1 1 1 1 1从以上计算结果可以得出结论:A\A 和A.\A 这两个计算结果不同。

(5)计算A\eye(3),并得到结果如下: » A\eye(3) ans =0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 01028 计算 inv(A), 并得到结杲如下: »inv(A)ans =0.1472 ・ 0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028从以上计算结果可以得出结论:A\eye(3)和inv(A)这两个计算结果相同。

2、在MATLAB 中,先运行A 二[1, 2; 3,4],b=0.5,C=[4, 2; 1,0.5],然后根据计算结果回答以下 问题:(1) 计算AW 和A4b,这两个计算结果相同吗? (2) 计算b A A 和b4A,这两个计算结果相同吗? (3) 计算/0A 和A4C,这两个结果是什么? (提示:根据对计算结果的H 测冋答问题) 解答如下:运行指令:A=[l,2;3,4],b=0.5,C=[4,2; 1,0.5] 得到结果: A =1 2 3 4 b =0.5000 C =4.0000 2.0000 1.0000 0.5000(1)计算A5,并得到结果如下: » A A bans =1计算A.\A,ans =0.5537 + 0.4644i 0.8070 - 0.2124i1.2104・ 0.3186i 1.7641 +0.145& 计算A并得到结果如下:» A.A bans =1.00001.7321 1.41422.0000从以上计算结果可以得出结论:AW和A.A b这两个计算结果不同。

(2)计算ZA,并得到结果如下:» b A Aans =0.9910-0.6634 -0.4422 0.3276计算b4A,并得到结果如下: » b.A Aans =0.50000.1250 0.2500 0.0625从以上计算结果可以得出结论:ZA和b4A这两个计算结果不同。

(3)计算A2,并得到结果如下:» A A AError using AInputs must be a scalar and a square matrix.To compute elementwise POWER, use POWER (.A) instead.计算A.人。

并得到结果如下:» A.A Cans =1 43 2从以上计算结果可以得出结论:A^A没有结果,因为“八”的用法错误;A.有结果,结果参照上文。

5、要求在闭区间[0,2龙」上产生具有10个等距采样点的一维数组。

试用两种不同的指令实现。

(提示:冒号生成法,定点生成法)解答如下.第一种方法(冒号生成法):输入程序:a=0:2*pi/9:2*pi可得结果:a =0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851 6.2832第二种方法(定点生成法):输入程序:b=linspace(0,2*pi, 10)可得结果:b =0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851 6.2832110、下面有一段程序,企图用来解决如下计算任务:有矩阵A R = 2k当3衣次取10, 9, & 7, 6, 5, 4, 3, 2, 1时,计算矩阵A&•“各列元素的和”,并把此求和结果 「1 4 …28_存放为矩阵Sa 的第£行。

例如^ = 3时,A 阵为2 5…29 ,此时它各列元素的和 _3 6 …30 是一个(1X10)行数组[6 15…87],并把它保存为Sa 的第3行。

问题:该段程序的计 算结果对吗?假如计算结果不正确,请指出错误发生的根源,并改正之。

(提示:木题专为揭示sum 对行数组的作用而设计。

仔细观察以下程序运行后所得到的Sa 正确 吗? for k=10:-1:1; A=reshape(l:10*k z k z 10); Sa (k z :)=sum(A); end; Sa )解答如下:运行题目中的指令:for k=10 : -1:1; A=reshape (1:10*k, k, 10); Sa (k, :) =sum (A); end; Sa 结果如下: Sa =55 55 55 55 55 55 55 55 55 55 3 7 1115 19 23 27 31 35 39 6 15 24 33 42 51 6069 78 87 10 2642 58 74 90 106 122 138 154 15 40 65 90 115 140 165 190 215 2402157 93 129 165 201 237 273 309 345 2877 126 175 224 273 322 371 420 469 36 100 164 228 909 356 420 484 548 61245 126 207 288 369 450 531 612 693 774 55 155 255 355 455 555 655 755 855 955从以上结果中可以看出Sa 的第一行是错误的。

分析如下: 令k 二1,我们来求解A 阵:输入程序:k= 1 ;A=reshape(l: 1 O*k,k, 10) 可得结果: A =1 2 3 4 5 6 7 此吋,A 为一个行矩阵。

①若此时输入sum(A)指令,可得结果如下: » sum(A) ans =55可知,对于行矩阵,sum(A)的结果是一个数,这个数是行矩阵中所有元素的和。

② 若此时输入指令sum(A,l),可得结果如下: » sum(A,l) ans =123456789 10 可知,对于行矩阵,sum(A,l)的结果仍是这个行矩阵。

因此,应把题中程序中的sum(A)改为sum(A,l)o改完后的程序为:for k=10:-l:l; A=reshape( 1:10*k,k, 10); Sa(k,:)=sum(A,l); end; Sa 计算结果是: Sa =1 2 3 4 5 6 7 8 9 10 3 7 1115 19 23 27 31 35 39 6 15 24 33 42 51 6069 78 87 10 26 42 58 74 90 106 122 138 15415 40 65 90 115 140 165 190 215 2402157 93 129 165 201 237 273 309 345 2877 126 175 224 273 322 371 420 469 36 100 164 228 292 356 420 484 548 612k + \ •…9£ + 1 k + 2 …9k+ 2 • • • • • • •••2k …10 k1045 126 207 288 369 450 531 612 693 77455 155 255 355 455 555 655 755 855 955习题4.3i.求函数/(%) = e s,n v的数值积分s=Cf(x)dx f并请采用符号计算尝试复算。

(提J 0方法一:使用数值积分函数tnipz进行积分计算:cleard=pi/100; %分区间的区间间隔x=O:d:pi;y=exp(sin(x).A3); %各个采样点处的函数值数组s=trapz(x,y) %连接各函数采样值的折线下的面积s= 5.137方法二:采用符号计算进行复算:clearsyms xfx=exp(sin(x)A3)s=vpa(int(fx,x,O,pi))Warning: Explicit integral could not be found.5.13701355671761418934690897508762.求函数/a)= (sin502^006/2 - 1.5rcos2r + 1.8|r + 0.5|在区间[-5,5]屮的最小值点。

(提示:作图观察。

)(1)利用fminbnd函数求解xl=-5;x2=5; yx=mline('(sin(5*t)).A2.*exp(0.06*t.A2)-1.5.*t.*cos(2*t)+1.8.*abs(t+0.5)');[xnO,fval]=fminbnd(yx,x 1 ,x2)t=xl:O .l:x2;plot(t,yx(t)),hold on ,plot(xnO,fval,'r*')xnO =-1.2850fval =(2)作图法求解(这种方法求解不精确,可以作为参考)cleart=-5:10/1000:5;f=sin(5*t).A2.*exp(0.06*t.A2)-1.5*t.*cos(2*t)+ 1.8*abs(t+0.5); plot(t,f)grid on%把图像中最小值附近进行局部放大得到下图曲线[xx,yy]=ginput(l) %从局部放人图上取出最小值点和相应的函数值,把1 •字交点对准最%小值即可XX =-1.292yy =-0.184773.设心雲一 3空° + 2y(f) = l,y(0) = l,©^ = 0,用数值法和符号法求y(t) r _05 0 dr a t a t (提示:注意ode45和dsolve 的用法。

相关文档
最新文档