精华内容
下载资源
问答
  • matlab函数速查-matlab函数之数值计算函数.doc matlab函数分类速查,希望对你们有用
  • 计算均方误差MSE信噪比SNR峰值信噪比PSNR绝对平均误差的matlab函数 计算均方误差MSE信噪比SNR峰值信噪比PSNR绝对平均误差的matlab函数
  • matlab贷款计算函数.zip

    2020-05-24 21:59:03
    matlab贷款计算函数
  • MATLAB函数随笔之计算

    千次阅读 多人点赞 2020-07-18 10:00:51
    这些都是我在学习MATLAB与数学建模时遇到的一些常用函数,就在这里写了下。当然MATLAB十分强大,函数众多,这些只是凤毛麟角,这篇博客我也会一直更新有新的函数就接着写上。有不足之处还望指出。

    前言:这些都是我在学习MATLAB与数学建模时遇到的一些常用函数,就在这里写了下。当然MATLAB十分强大,函数众多,这些只是凤毛麟角,这篇博客我也会一直更新有新的函数就接着写上,希望对大家有所帮助。有不足之处还望指出。
    这里是MATLAB画图篇。

    数值计算篇

    1. 微分方程

    在这里插入图片描述
    解上式x(t)=?

    x=dsolve('Dx=r*x*(1-x/m)','x(0)=x0','t')
    
    x =
    -m/(exp(log(1 - m/x0) - r*t) - 1)
    

    上面化简一下就是下面这个
    在这里插入图片描述
    解这个微分方程
    在这里插入图片描述
    求出sym来不要慌,s.x就能给结果了,注意这里是s=,要是ans就是ans.x
    在这里插入图片描述
    本题来源B站大仙一品堂

    无约束问题的MATLAB解法

    2. 无约束极值问题的符号解

    求多元函数f(x,y)=x3y3+3x2+3y39xf(x,y)=x^3-y^3+3*x^2+3*y^3-9*x的极值
    具体为啥这样算,都是高数上的知识

    clear
    syms x y
    % x=-100:100;
    % y=-100:100;
    f=x.^3-y.^3+3*x.^2+3*y.^2-9*x;
    % plot3(x,y,z)
    df = jacobian(f);%各求一阶偏导数
    d2f = jacobian(df);%号求Hessian阵
    [xx,yy] =solve(df) %求驻点
    xx = double( xx) ;yy = double(yy);%名转化成双精度浮点型数据,下面判断特征值的正负须是数值型数据
    for i =1: length( xx)
        a=subs(d2f,{x,y},{xx(i),yy(i)});
        b=eig(a);%名求矩阵的特征值
        f =subs( f,{x,y},{xx(i),yy(i)});
        f = double( f);
        if all(b>0)
            fprintf('(% f,%f)是极小值点,对应的极小值为 %f\n' ,xx(i),yy(i),f);
        elseif all(b<0 )
            fprintf('(% f,% f)是极大值点,对应的极大值为%f\n' ,xx(i),yy(i),f);
        elseif any(b>0)  &&  any(b<0)
            fprintf('(% f,%f)不是极值点\n' ,xx(i),yy(i));
        else
            fprintf('无法判断(% f,% f)是否是极值点\n',xx(i),yy(i));
        end
        i=i+1;
    end
    

    3.无约束极值问题的数值解

    fminunc 找到指定问题的最小值,minxf(x) ,其中f(x)是一个返回一个标量的函数,x是一个向量或者矩阵。
    fminsearch 从x0开始,找到函数fun中的局部最小值x,x0可以是标量,向量,矩阵。

    sin(x)+3sin(x)+3在4附近的极小值。

    clear
    f=@(x) sin(x)+3;
    [x,y]=fminsearch(f,4)
    
    clc, clear
    f=@ (x) x(1)^3 -x(2)^3 +3 *x(1)^2 +3 *x(2)^2 -9 *x(1) ;
    g=@ (x) - f(x);
    [xy1,z1] = fminunc( f, rand(2,1))%求极小值点
    [xy2 ,z2] = fminsearch(g,rand(2,1));%求极大值点
    xy2,z2=-z2
    
    xy1 =
        1.0000
       -0.0000
    z1 =
       -5.0000
    xy2 =
       -3.0000
        2.0000
    ans =
       31.0000
    

    可以看到,在(1,0)取得极小值 -5,在(-3,2)取得极大值 31。

    4.求函数的零点和方程组的解

    f(x)=x3x2+5x3f(x)=x^3-x^2+5*x-3的零点.

    xishu=[1 -1 2 -3];
    roots(xishu)
    
    ans =
      -0.1378 + 1.5273i
      -0.1378 - 1.5273i
       1.2757 + 0.0000i
    
    

    求方程组的解

    在这里插入图片描述

    syms x y
    [x,y]=solve(x^2+y-6,y^2+x-6)
    
    x =
                    2
                   -3
     21^(1/2)/2 + 1/2
     1/2 - 21^(1/2)/2
     
     
    y = 
                    2
                   -3
     1/2 - 21^(1/2)/2
     21^(1/2)/2 + 1/2
    

    函数化简

    (1/x3+6/x2+12/x+8)(1/3)(1/x^3+6/x^2+12/x+8)^{(1/3)}

    syms x
    f=(1/x^3+6/x^2+12/x+8)^(1/3)
    r1=simplify(f)			%((2*x + 1)^3/x^3)^(1/3)
    % 'Steps',默认是1,设置值可以去任意整数,表示化简的轮次
    %'IgnoreAnalyticConstraints',默认是false,如果为true,只考虑纯粹的化简,而不顾及“非完全等价”的可能
    r2=simplify(f,'Steps',10,'IgnoreAnalyticConstraints',true)			%1/x + 2
    

    求极限

    sin(tk)/(tk),(11/x)(kx)sin(t*k)/(t*k),(1-1/x)^{(k*x)}

    syms t x k
    g=sin(t*k)/(t*k);
    f=(1-1/x)^(k*x);
    symvar(g,1)		%这个是看一下我们的自由变量是啥  是t
    lig=limit(g,0)	% t趋近于0时的值
    lig1=subs(lig,k,1)  %  subs是把t替换成1
    lif=limit(f,x,inf) 			
    lif1=subs(lif,k,-1)
    lif2=vpa(subs(lif,k,-1),48)		%vpa是精度,精确到小数点后48位
    

    求导

    普通求导:sin(x)sin(|x|)
    abs()是求绝对值,

    Y = sign(x) 返回与 x 大小相同的数组 Y,其中 Y 的每个元素是:
    1,前提是 x 的对应元素大于 0。
    0,前提是 x 的对应元素等于 0。
    -1,前提是 x 的对应元素小于 0。
    x./abs(x),前提是 x 为复数。

    clear
    syms x
    x=[-4:0.1:4];
    f=sin(abs(x));
    d=diff(f)
    y=cos(abs(x)).*sign(x);%这里复制了下d
    plot(x,y)	%这里plot(x,y),y必须重新定义,不能用前面算出来的d
    
    
    d1 =
    cos(abs(x))*sign(x)
    

    在这里插入图片描述

    隐函数求导

    泰勒级数展开

    syms x
    r5=taylor(x*exp(x))	%默认是6级
    r8=taylor(x*exp(x),'Order',8)	%这是8级
    pretty(r8)		%pretty展开多项式的易读格式
    
    

    有限/无限级数之和.

    syms  n k
    f=1/(k*(k+1))
    d1=symsum(f,k,1,inf)
    d2=symsum(f,k,1,n)
    
    
    d1 = 
    1
    d2 = 
    n/(n + 1) 
    

    积分

    普通积分

    int(x^2)
    

    多重积分

    12xx2xyx2yx2+y2+z2dzdydx\int_{1}^{2}\int_{\sqrt{x}}^{x^2}\int_{\sqrt{x*y}}^{x^2y}x^2+y^2+z^2dzdydx

    clear
    syms x y z 
    f=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2)
    vpa(f)
    

    符号计算篇

    1. 隐函数化简求解

    (1)、
    在这里插入图片描述
    上式化简为下式

    syms t r i
    t=solve(1== ((1-i)/i)*exp(-r*t),t)
    
    t =
    -log(-i/(i - 1))/r
    

    在这里插入图片描述

    化简下面函数

    在这里插入图片描述

    syms b d v1 v2 v3 v4
    [v3,v4]=solve(b*v1+d*v2==b*v3+d*v4,b*v1^2+d*v2^2==b*v3^2+d*v4^2,v3,v4)
    
     
    v3 = 
     (b*v1 - d*v1 + 2*d*v2)/(b + d)  
    v4 = 
     (2*b*v1 - b*v2 + d*v2)/(b + d)
    
    
    

    用符号法求解

    uw2+zw2=vu*w^2+z*w^2=v
    代码很简单,自己运行看结果吧,建议用实时脚本来运行

    clear 
    syms u v w z
    E=u*w^2+z*w^2-v
    g(z)=u*w^2+z*w^2==v
    symvar(E,1)%后面不带数字1的话是给出所有的参数符号,1是最前面那个,也就是我们要求的参数
    symvar(g(z),1)
    r1=solve(E)
    r2=solve(g(z))
    s1=solve(E,z)
    s2=solve(g(z),z)
    ans=simplify(subs(E,z,s1))%subs就是把s1换成z
    ans1=simplify(g(s2))
    

    微分方程

    求通解和奇解

    图示微分方y=xy(y)2y=xy'-(y')^2的通解和奇解。
    (与原微分方程的每一个解都相切的曲线的方程叫奇解)

    clear all							
    y=dsolve('(Dy)^2-x*Dy+y=0','x')	%求解,得到一个通解,一个奇解
    %%
    hold on							
    hy1=ezplot(y(2),[-6,6,-4,8],1);%奇解的图像
    set(hy1,'Color','r','LineWidth',2)
    %%
    Sv=symvar(y(1));	%自动辨认基本符号变量	(不定常数符号)
    for k=-2:0.5:2					%画通解,给基本符号变量赋不同的值
    	y2=subs(y(1),Sv(1),k);	
    	ezplot(y2,[-6,6,-4,8],1)	
    end									
    hold off						
    box on								
    legend('奇解','通解','Location','Best')
    ylabel('y')
    title(['\fontsize{14}微分方程',' (y '')^2 – xy '' + y = 0 ','的解'])  
    

    在这里插入图片描述

    求反函数

    y=f(x)=121+exy=f(x)=1-\frac{2}{1+e^x}

    clc,clear
    %% 求原函数积分,并作图
    syms x y real
    f(x)=1-2/(1+exp(x));%原函数
    fint(x)=int(f,x,0,x)%原函数求积分
    xk=0:0.1:2;
    plot(xk,f(xk),'g',xk,fint(xk))%原函数以及积分函数图像
    title('原函数及其积分函数')
    legend('f(x)','\int^x_0 f(x)dx','Location','best')
    %%求反函数
    g(y)=subs(finverse(f),x,y)%求反函数
    gint(y)=int(g,y,0,y)%对反函数积分
    gf=g(f(x))%验证
    fg=f(g(y))
    

    其他函数篇

    3. unifrnd生成(连续)均匀分布的随机数

    x=unifrnd(0,12,[1,10]);
    y=1:10;
    plot(y,x,'*')
    

    x生成了[0,12]内的十个随机数
    在这里插入图片描述

    展开全文
  • 应用:在笛卡尔坐标系、柱坐标系和球坐标系下计算梯度、散度、旋度与拉普拉斯量 输入: u 被求导函数 v 函数自变量,笛卡尔坐标系下为[x y z],柱坐标系下为[s phi z],球坐标系下为[r theta phi] difftype 求导类型...
  • 私用数值计算基本函数,看官们看到50分就不要下了。当然乐意分享
  • 香农熵shannon计算matlab函数代码(PCNN程序中的终止指标作者-兰州理工大学)
  • 计算李雅普诺夫特性指数的matlab函数,输入离散时间序列,计算得到最大计算李雅普诺夫特性指数
  • Matlab 函数大全 信源函数 randerr 产生比特误差样本 randint 产生均匀分布的随机整数矩阵 randsrc 根据给定的数字表产生随机矩阵 wgn 产生高斯白噪声 信号分析函数 biterr 计算比特误差数和比特误差率 eyediagram ...
  • MATLAB IoU计算函数

    千次阅读 2020-01-15 14:57:38
    原理简单,这里不进行描述。 function [IoU, area] = compute_IoU(region_a, region_b) %COMPUTE_IOU Is compute the two region overlap area. % % ************************ % * * % * (...

    原理简单,这里不进行描述。

    function [IoU, area] = compute_IoU(region_a, region_b)
    %COMPUTE_IOU Is compute the two region overlap area.
    %    
    %   ************************
    %   *                      *
    %   *      (x_a,y_a)******************
    %   *          *           *         *
    %   *          *           *         *
    %   *          *           *         *
    %   *******************(x_b,y_b)     *
    %              *                     *
    %              *                     *
    %              ***********************
    
    x_a = max(region_a(1), region_b(1));
    y_a = max(region_a(2), region_b(2));
    x_b = min(region_a(3), region_b(3));
    y_b = min(region_a(4), region_b(4));
    
    area_a = (region_a(3) - region_a(1) + 1) * (region_a(4) - region_a(2) + 1);
    area_b = (region_b(3) - region_b(1) + 1) * (region_b(4) - region_b(2) + 1);
    
    area = max(0, x_b - x_a + 1) * max(0, y_b - y_a + 1);
    IoU = area / (area_a + area_b - area);
    
    end
    
    
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,876
精华内容 3,150
关键字:

matlab函数计算

matlab 订阅