数学建模课程实验报告
专题实验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,先思考如何用推理的方法(1Fibonacc数列中第2007个数除以6 的余数(2)若将Fibonacc数列按如下方式分组:(1)、(12)、(358)、(13213455)、……2007组数的和除以6的余数是几?然后再用matlab编程验证你的结果。
答案: (填写你的思考过程和你的结果以及matlab程序语句提示:(1)可以发现Fibonacc数列中的数除以的余数呈周期性的变化 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)); 
 
计算: >>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小时内删除。