• matlab初试牛刀__小练习



    % T1
    % 不妨设 h=2 D=1
    clear,clc;
    h=2;D=1;
    x=-2*D:0.01:2*D;
    y=h*(x>D)+h/D.*x.*(abs(x)<=D)-h*(x<-D);
    
    
    



    % T_2
    clear,clc;
    %用 cumsum函数
    % A = (0:63);
    % B = cumsum(2.^A);
    % S = B(64)
    
    %用for循环
    % clear,clc
    % s=0;
    % for i=0:63
    %     s = s+2.^i;
    % end
    % s
    
    %用sum函数
    clear,clc
    sum(2.^[0:63])
    
    



    % T_3
    clear,clc
    x1=1;
    xn = x1/2+3/2*x1;
    y = xn/2+3/2*xn;
    disp(abs(y-xn));
    while abs(y-xn)>10e-14
        xn = y;
        y = xn/2+3/2*xn;
    end
    y;
    
    



    % T_4
    clc,clear
    x=0; y=0;
    for i=1:30000
        x(i+1)=1+y(i)-1.4*x(i)^2;
        y(i+1)=0.3*x(i);
    end
    %plot(x,y);
    plot(x,y,'.');



    % T_5   两个脚本文件
    
    % bisect5.m
    <pre name="code" class="plain">function [c,err,yc]=bisect5(f,a,b,delta)
    %Input - f is the function 
    % - a and b are the left and right endpoints
    % - delta is the tolerance
    %Output - c is the zero
    % - yc= f(c)
    % - err is the error estimate for c
    %If f is defined as an M-file function use the @ notation
    % call [c,err,yc]=bisect(@f,a,b,delta).
    %If f is defined as an anonymous function use the
    % call [c,err,yc]=bisect(f,a,b,delta).
    ya=f(a);
    yb=f(b);
    if ya*yb > 0,return,end
    max1=1+round((log(b-a)-log(delta))/log(2));
    for k=1:max1
    c=(a+b)/2;
    yc=f(c);
    if yc==0
    a=c;
    b=c;
    elseif yb*yc>0
    b=c;
    yb=yc;
    else
    a=c;
    ya=yc;
    end
    if b-a < delta,break,end
    end
    c=(a+b)/2;
    err=abs(b-a);
    yc=f(c);
    
    % 1_5.m
    <pre name="code" class="plain">clc,clear
    format long 
    [answerr,error,value]=bisect5(@(x)x^2*sin(0.1*x+2)-3,0,1000,1e-8)

    
    

    
    

    % T_6
    clc,clear
    t=[0,120,240,0]*pi/180; % 变换成弧度
    x=[]; y=[];
    for i=0:5:360
    tt=i*pi/180;
    x=[x; cos(tt+t)]; y=[y; sin(tt+t)];
    end
    plot(x',y','r'), axis('square')



    % T_7
    clc,clear
    f=@(x,y,z)(x.^x+x.*y+x.*z).*exp(-z)+z.*z.*y.*x+sin(x+y+z.*z);%定义函数 f=x^2+y^2+z^2-10
    [x,y,z]=meshgrid(linspace(-4,4,25));%设定网格大小和范围
    val=f(x,y,z);
    [p,v]=isosurface(x,y,z,val,0);%用 isosurface 得到函数 f=0 图形的点和面
    patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');%
    % 用 patch 绘制三角网格图并设定色彩
    view(3);
    grid on;
    axis equal


    % T_8
    clc,clear
    %  xy的三维图与等高线
    % [x,y]=meshgrid(-1:.1:1);
    % surf(x,y,x.*y), figure; contour(x,y,x.*y,30)
    
    %sin xy 的三维图与等高线
    [x,y]=meshgrid(-pi:.1:pi);
    surf(x,y,sin(x.*y)), figure; contour(x,y,sin(x.*y),30)
    






  • 相关阅读:
    【mpeg2】MPEG-2官方参考代码MPEG2_reference_software
    【base】Copyright 与 Copyleft
    【base】Copyright 与 Copyleft
    【complier】如何查看ARM交叉编译的可执行程序依赖的动态库?
    【shell系列】之查看shell脚本的执行过程和makefile中调试手段
    【tools】一款强大的局部搜索工具:xsearch
    【tools】一款强大的局部搜索工具:xsearch
    【mpeg2】mpeg2编码器的开源实现:x262
    【mpeg2】mpeg2解码器开源实现:libmpeg2
    【codecs】视频显示分辨率格式分析
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/9079845.html
Copyright © 2020-2023  润新知