数学建模课程实验报告
专题实验1
班级 | 学号 | 姓名 | |||
实验题目 | 专题一MatLab 练习题-绘图与matlab程序设计 | ||||
实验目的 | 初步了解数学建模基本概念、方法和步骤。 | ||||
实验内容 (包括分析过程、方法、和代码,结果) | MatLab 练习题-绘图 1, 在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红小圆圈画.并在函数图上标注 “y=sin(x)”, “y=cos(x)” ,x轴,y轴,标题为“正弦余弦函数图象”. 程序:space(0,4*pi,40); plot(x,cos(x),'or',x,sin(x)) xlabel('x'), ylabel('y'); title('正弦余弦函数') gtext('y=sinx'),gtext('y=cosx') 答案: 2, 画>> a = [0:pi/50:2*pi]'; X = cos(a)*4; Y = sin(a)*2; plot(X,Y); xlabel('x'), ylabel('y'); title('椭圆') >>出椭圆。 答案: 3,绘制螺旋线. >> u=0:0.5:10; plot3(1+2*cos(u),1+2*sin(u),u) xlabel('x'), ylabel('y'); title('螺旋线') 答案: 4,绘制四叶玫瑰线。 程序: t=0:0.01:2*pi polar(t,sin(2*t)) 答案: 5,用subplot分别在不同的坐标系下作出下列图形,并为每幅图形加上标题。 第一副:标题:“概率曲线” 第二副:标题“双扭线” 第三副:标题“叶形线” 第四副:标题:“曳物线” x=-2:0.01:2;subplot(2,2,1) ezplot(exp(-x^2),'-*') title('概率曲线'); subplot(2,2,2) t=0:0.01:2*pi; r=sqrt(4*cos(2*t));plot(r,'-o') title('双扭线') subplot(2,2,3) t=0:pi/100:2*pi; x=3*t./(1+t.^3); y=3*t.^2./(1+t.^3); plot(x,y,'-+') title('叶形线') subplot(2,2,4) x=0:0.1:100 m=2; x=log((1+sqrt(1-y.^2))/(m*sqrt(1-y.^2))) plot(x,y,'-<') title('曳物线') ??? Error using ==> mpower Inputs must be a scalar and a square matrix. 二,程序设计 MatLab-程序设计 1, 编辑函数文件hanshu.m,该函数是,并用它来计算、、、 答案:(填写程序语句和结果) function y=hanshu(x) y=x^3-3*x^2-x+3; >> hanshu(0.34) ans = 2.3525 >> hanshu(3) ans =0 >> hanshu(6.87) ans =178.7820 >> hanshu(3)-f(2)*f(-4)^2 >> hanshu(3)-hanshu(2)*hanshu(-4)^2 ans = 33075 2,编程求一个四位数,使。 答案:(填写程序语句和结果) 3利用二分法编程求方程 在[0,3]内的根. 答案: (填写程序语句和结果) 先存hanshu.m文件:function y=hanshu(x) y=x.^3-3*x.^2-x+3; 程序: a=0; b=3; while abs(a-b)>10^(-6) if hanshu2(a)*hanshu2(b)>0 b=(a+b)/2; else a=(a+b)/2; end end gen123=a 结果: 3.0000 *4, 利用二分法编程求方程 tan(x)-x-0.5=0 在[0,1.5]内的根. 答案:(填写程序语句和结果)先定义函数:fin.m function y=fin(x) y=tan(x)-x-0.5; 然后编辑m文件qiugen.m: fplot('fin',[0 1.5]) a=0;b=1.5; while abs(a-b)>10^(-6) if fin(a)*fin((a+b)/2)>0 a=(a+b)/2; else b=(a+b)/2; end end a 结果: 0.9750 5,列出所有的水仙花数, 水仙花数是一个三位数,其各位数字立方和等于该数本身. 例如: 答案:for a=1:9 for b=0:9 for c=0:9 abc=100*a+10*b+c; if abc==a.^3+b.^3+c.^3 disp(abc) end end end end 结果:153 用subplot函数 370 371 407 解2: k=1; for a=1:9 for b=0:9 for c=0:9 abc=100*a+10*b+c; if abc==a.^3+b.^3+c.^3 shuixianhua(k)=abc; k=k+1; end end end end shuixianhua 结果: shuixianhua = 153 370 371 407 *6, 利用 公式求的近似值,直到误差小于 答案: (填写程序语句和结果) k=1;s=0; while 4/(2*k-1)>10^(-6) s=s+(-1)^(k+1)/(2*k-1); k=k+1; end pai=4*s 结果: pai = 3.14159215358972 7,写出小于5000的、立方的末四位是8888的所有自然数的程序 答案: n=5000;ii=1; for kj=1:5000 if rem(kj^3,10000)==8888 shu(ii)=kj;ii=ii+1; end end shu 结果:shu = 1942 4442 8,先思考如何用推理的方法(1)求Fibonacc数列中第2007个数除以6 的余数(2)若将Fibonacc数列按如下方式分组:(1)、(1,2)、(3,5,8)、(13,21,34,55)、……问2007组数的和除以6的余数是几?然后再用matlab编程验证你的结果。 答案: (填写你的思考过程和你的结果以及matlab程序语句) 提示:(1)可以发现Fibonacc数列中的数除以6 的余数呈周期性的变化 (2)第2007组数开始是几?结尾是几?考虑一个周期内的和除以6的余数。。。。 9*,应用近似求之值,要求误差小于 答案: (填写程序语句和结果) 程序:k=1;s=1; while 1/prod(1:k)>10^(-6) s=s+1/prod(1:k); k=k+1; end e=s 结果:e = 2.71828152557319 10,定义一个函数shjiech计算双阶乘,要求对输入的一个整数N,该函数能立即计算出其双阶乘。并用它来计算200!! 答案: (填写你的思考过程和你的结果以及matlab程序语句) 11,定义多元函数,并用它来计算、、,并画出它的图形。 答案: (填写程序语句和结果) 答案: (填写程序语句和结果)函数文件hanshu4.m function fxy=hanshu4(a,b) fxy=(a^2+b^2)*exp(-(a^2+b^2)); 5 计算: >>hanshu4(-2,3) ans = 2.938428229075371e-005 >> hanshu4(3,4),hanshu4(0,0) ans = 3.471985966241005e-010 ans = 0 >>绘图程序: x=-2:0.01:2;y=x; [xx,yy]=meshgrid(x,y); zz=(xx.^2+yy.^2).*exp(-(xx.^2+yy.^2)); mesh(zz) 结果: *12,编写函数文件SQRT.m用迭代法求之值,迭代公式是,误差小于10-6。 答案: function genhaoa=SQRT1(a) an=1; while 1/2*abs((a/an-an))>10^(-6) an=(an+a/an)/2; end genhaoa=an; 比如:SQRT1(2) ans = 1.41421356237469 SQRT1(2456) ans = 49.55804687847163 | ||||
实验结果分析或者实验总结和体会 | |||||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论