zoukankan      html  css  js  c++  java
  • [matlab] 4.M函数

    函数文件的编写

    新建一个函数文件

    函数的第一行的格式 :function [输出的参数] =函数名 (输入的参数)

    输入和输出的参数可以有多个

    保存函数文件的时候,注意文件名要和函数名一样

    函数头和函数体之间可以有多行%开始的注释,说明函数的使用方法,当执行 help 函数名 的时候会显示这些注释 ,直到遇到第一个非注释行为止

    %% 注意输入的参数。函数fun以及给定的区间[a,b],求出精确度为ep的零点x_star,k为迭代次数 ;
    function [x_star,k] = bisect1(fun,a,b,ep)
    %二分法求方程的近似值
    if nargin<4 % nargin,nargout 是函数文件里的固有变量,意思是输入(输出)参数的个数
        ep=1e-5; % 如果bisect1只输入前三个参数,那么精确度默认为1e-5
    end
    fa=feval(fun,a);fb=feval(fun,b); %函数fun 在点a,b 处的函数值
    if(fa*fb>0)  %如果a,b之间不存在零解
        disp('error');
        x_star=NaN;
        k=NaN;
    else
        k=1; % 迭代次数初始化
        while abs((b-a)/2)>ep %区间大于精确度的话就迭代
            x=(a+b)/2;
            fx=feval(fun,x);
            if fa*fx<0 %[a,x]区间存在零解
                b=x;fb=fx; %缩小b的上限
            else
                a=x;fa=fx; %如果无解,加大a的下限
            end
            k=k+1; %每循环一次 迭代加一
        end
        x_star=(a+b)/2; %把最后的结果赋值给输出的x_star
    end
    bisect1.m
    fun=inline('x^3-x-1','x'); %定义函数
    [x_star,k]=bisect1(fun,1,15,0.0000005)
    main.m

  • 相关阅读:
    OC 消息机制本质
    Lua中的闭包
    Lua中的函数
    Lua中的语句
    Lua中的表达式
    Lua中的类型与值
    Unity3D之通过C#使用Advanced CSharp Messenger
    C#中sealed关键字
    C#委托delegate、Action、Func、predicate 对比用法
    Unity3D之IOS&Android收集Log文件
  • 原文地址:https://www.cnblogs.com/clemente/p/9539129.html
Copyright © 2011-2022 走看看