zoukankan      html  css  js  c++  java
  • 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)
    






  • 相关阅读:
    Anaconda(4.8.3)(Anaconda3-2020.02-Windows-x86_64)安装日志和启动问题排查日志
    abp学习日志九(总结)
    abp学习日志八(多租户)
    abp学习日志六(模块化开发)
    abp学习日志七(动态API)
    abp学习日志五(领域服务)
    abp学习日志四(仓储)
    ug主菜单men文件按书写格式,这样写有利单个dll调用
    NX开发,blockUI窗口调用blockUI窗口
    VS2013快捷键大全
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6940212.html
Copyright © 2011-2022 走看看