精华内容
下载资源
问答
  • matlab 怎么进行带参数的公式运算

    千次阅读 2021-04-18 05:00:50
    >> syms E1 phi1 x k l R phiR L;syms E2 phi2;R1=E1*exp(i*(phi1+k*x))*exp(-(x/l)); %这些可以无视,就是一些公式。R2=E1*R*exp(i*(phi1+phiR+k*(2*L-x)))*exp(-(2*L...%主要是我想要这些公式叠加,然后求模...

    >> syms E1 phi1 x k l R phiR L;

    syms E2 phi2;

    R1=E1*exp(i*(phi1+k*x))*exp(-(x/l));                          %这些可以无视,就是一些公式。

    R2=E1*R*exp(i*(phi1+phiR+k*(2*L-x)))*exp(-(2*L-x)/l);  %主要是我想要这些公式叠加,然后求模。算出求模后的表达式

    abs(R1+R2)

    ans =

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    >> simple(ans)

    simplify:

    abs(E1*(exp((- x + l*phi1*i + k*l*x*i)/l) + R*exp((x - 2*L + l*phi1*i + l*phiR*i + L*k*l*2*i - k*l*x*i)/l)))

    radsimp:

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    simplify(100):

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    combine(sincos):

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    combine(sinhcosh):

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    combine(ln):

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    factor:

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    expand:

    abs(E1*exp(-x/l)*exp(phi1*i)*exp(k*x*i) + E1*R*exp(x/l)*exp(phi1*i)*exp(phiR*i)*exp(L*k*2*i)*exp(-k*x*i)*exp(-(2*L)/l))

    combine:

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    rewrite(exp):

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    rewrite(sincos):

    abs(E1*(cos(phi1 + k*x) + sin(phi1 + k*x)*i)*(cos((x*i)/l) + sin((x*i)/l)*i) + E1*R*(cos(phi1 + phiR + k*(2*L - x)) + sin(phi1 + phiR + k*(2*L - x))*i)*(cos(((2*L - x)*i)/l) + sin(((2*L - x)*i)/l)*i))

    rewrite(sinhcosh):

    abs(E1*(cosh(phi1*i + k*x*i) + sinh(phi1*i + k*x*i))*(cosh(x/l) - sinh(x/l)) + E1*R*(cosh(phi1*i + phiR*i + k*(2*L - x)*i) + sinh(phi1*i + phiR*i + k*(2*L - x)*i))*(cosh((2*L - x)/l) - sinh((2*L - x)/l)))

    rewrite(tan):

    abs((E1*(tan(phi1/2 + (k*x)/2) - i)*(tan((x*i)/(2*l)) - i))/((tan(phi1/2 + (k*x)/2) + i)*(tan((x*i)/(2*l)) + i)) + (E1*R*(tan(phi1/2 + phiR/2 + (k*(2*L - x))/2) - i)*(tan(((2*L - x)*i)/(2*l)) - i))/((tan(phi1/2 + phiR/2 + (k*(2*L - x))/2) + i)*(tan(((2*L - x)*i)/(2*l)) + i)))

    mwcos2sin:

    abs(E1*(sin((x*i)/l)*i - 2*sin((x*i)/(2*l))^2 + 1)*(sin(phi1 + k*x)*i - 2*sin(phi1/2 + (k*x)/2)^2 + 1) + E1*R*(sin(((2*L - x)*i)/l)*i - 2*sin(((2*L - x)*i)/(2*l))^2 + 1)*(sin(phi1 + phiR + k*(2*L - x))*i - 2*sin(phi1/2 + phiR/2 + (k*(2*L - x))/2)^2 + 1))

    collect(x):

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    ans =

    abs(E1*exp(-x/l)*exp(phi1*i + k*x*i) + E1*R*exp(phi1*i + phiR*i + k*(2*L - x)*i)*exp(-(2*L - x)/l))

    展开全文
  • MATLAB数学公式计算

    万次阅读 2017-12-28 18:53:54
    1、矩阵kron计算 克罗内克积 C=kron(A,B) https://baike.baidu.com/item/%E5%85%8B%E7%BD%97%E5%86%85%E5%85%8B%E7%A7%AF/6282573?fr=aladdin 2、矩阵的常用算法 ...

    1、矩阵kron计算

    克罗内克积   C=kron(A,B)

    https://baike.baidu.com/item/%E5%85%8B%E7%BD%97%E5%86%85%E5%85%8B%E7%A7%AF/6282573?fr=aladdin


    2、矩阵的常用算法

    https://www.cnblogs.com/zhouqing/p/3304945.html

    1. 矩阵的加减乘除和(共轭)转置

    (1) 矩阵的加法和减法

      如果矩阵AB有相同的维度(行数和列数都相等),则可以定义它们的和A+B以及它们的差A-B,得到一个与AB同维度的矩阵C,其中Cij=Aij+BijAij-Bij.

          另外Matlab还支持任意一个矩阵A与一个标量s相加,结果为矩阵的每一个元素加减标量,得到一个与A同维度的新的矩阵,即A+s的各个元素为Aij+s.

    (2) 矩阵的乘法

      如果矩阵A的列数等于矩阵B的行数,则可以将AB相乘,命令为A*B,得到一个新的矩阵CC的行数等于A的行数,列数等于B的列数. 由于矩阵的乘法不满足交换律,所以一般A*B不等于B*A.

    (3) 矩阵的张量积(tensor product)

      矩阵AB的张量积AB可以方便地用kron函数计算,即使用命令kron(A,B), 例如

    (4) 矩阵的除法

      在MatLab中,有两个矩阵除法符号,左除\和右除/. 如果A是一个非奇异方阵(nonsingular square, 即满秩方阵),B的行数与A的行数相等,那么A\B=A-1B. 如果C的列数与A的列数相等,那么C/A=CA-1.

      从另一个角度来看,X=A\B是矩阵方程AX=B的解,X=C/A是矩阵方程XA=C的解. 如果b是一个行数与A的行数相等的列向量,则向量x=A\b是线性方程组 Ax=b的解. 且在矩阵方程AX=B中,A可以是一个m×n的矩阵,如果m=n则有唯一解;如果m<n则有多个解,Matlab会返回一个基础解;如果m>n则会返回一个最小方阵解.

    (5) 矩阵的转置和共轭转置

      在Matlab中,矩阵的共轭转置用撇号表示,如果不需要对元素进行共轭运算,仅仅只对矩阵进行转置,则在撇号之前输入一个点号,即 .’ . 对于实数矩阵AA’A.’是相同的.

    2. 矩阵元素操作运算

      矩阵的运算既可以是如前所述的正常的整体运算,也可以是矩阵对应的元素依次进行标量运算,也叫数组运算,即把矩阵看做是二维数组. 对矩阵进行数组运算后得到的结果是一个与参与运算的矩阵维度相同的新矩阵,.这种元素间的算术运算的前提是参与运算的两个矩阵的维数要相同.

          对于加法和减法,元素操作运算和矩阵运算没有差别,而对于乘、除和幂运算符,相应的数组运算符是在一般的算术运算符前面加上一个点号,如

    +       -       .*       ./       .\       .^

    其中,A./B 是指A中的元素除以B中相应的元素,即A./B 的第i行第j列的元素(A./B)ij=Aij/Bij,而(A.\B)ij=Bij\Aij. 这些元素运算符的使用例子如下所示:

      

      

      在Matlab中预定义的数学标准函数,如sin(x), abs(x)等都是基于对矩阵元素的运算. 如果函数f(x)是这样的一个函数,A是一个m×n的矩阵,其元素是aij ,那么 f(A)也是一个m×n的矩阵,其第i行第j列的元素为f(aij),例如

      

    其中pi是Matlab的预定义变量,值为π,i也是预定义变量,表示复数的单位.

    3. 常用的矩阵函数

      矩阵函数是指参数为矩阵的函数,函数结果可能是一个标量值也可能是一个函数或者向量. Matlab中常用的矩阵函数包括:

      (1) rank(A): 求矩阵A的秩,即A中线性无关的行数或者线性无关的列数.

      

      (2) det(A): 求矩阵A的行列式值.

      

      (3) inv(A): 如果A是一个非奇异(nonsingular)矩阵,则inv(A)返回A的逆矩阵. 另外还可以用左除A\eye(n)或右除eye(n)/A来计算A的逆,且在Matlab中用左除或右除来计算逆所花的计算时间比用inv函数要少,也比inv具有更好的容错性(error-detection properties).

      (4) dot(x,y): 求同维度的向量x和y的内积/点积. 若AB是两个具有相同维度的矩阵,则dot(A,B)是计算AB对应列的内积,结果是一个行向量,这个行向量的列数等于AB的列数. 例如

      

      (5) cross(x,y): 计算同维度的向量xy的叉积,结果是一个向量,其方向由右手定则决定,长度等于|x|*|y|sin<x,y>. 若AB是两个具有相同维度的矩阵,则cross(A,B)是计算AB对应列的叉积,结果是一个维度与AB相等的矩阵.

      (6) kron(A,B): 得到矩阵AB的张量积.

      (7) isequal(A,B): 如果矩阵AB是相同的,即具有相同的维数和相同的内容,则返回1.

      (8) isreal(A): 判断A是否是一个实矩阵,如果是则返回1,否则返回0.

      (9) trace(A): 计算方阵A的迹,即对角线元素之和.

      (10) eig(A): 计算方阵A的特征值,结果是一个列向量,向量中元素的个数等于特征值的个数,即A的维度(A的行数或列数).

      (11) [U,D]=eig(A): 计算方阵A的特征值和特征向量,得到两个方阵UD,其中D的对角线元素为A的特征值,U的列向量为A的归一化的(normalized)特征向量,例如

      


    3、求矩阵的范数

    https://jingyan.baidu.com/article/a378c960c07500b3282830a0.html

    http://blog.csdn.net/yihaizhiyan/article/details/6904599

    nm1=norm(a,1) ,其中norm就是求矩阵范数的函数,1表示的是1范数

    nm2=norm(a,2) ,其中norm就是求矩阵范数的函数,2表示的是2范数

    nm3=norm(a,inf) ,其中norm就是求矩阵范数的函数,inf表示的是无穷范数

    nm4=norm(a,'for') ,其中norm就是求矩阵范数的函数,for表示的是Frobenius范数

    X为向量,求欧几里德范数,即 。

    n = norm(X,inf) %求 -范数,即 。

    n = norm(X,1) %求1-范数,即 。

    n = norm(X,-inf) %求向量X的元素的绝对值的最小值,即 。

    n = norm(X, p) %求p-范数,即 ,所以norm(X,2) = norm(X)。

    命令 矩阵的范数函数 norm格式 n = norm(A) %A为矩阵,求欧几里德范数 ,等于A的最大奇异值。

    n = norm(A,1) %求A的列范数 ,等于A的列向量的1-范数的最大值。

    n = norm(A,2) %求A的欧几里德范数 ,和norm(A)相同。

    n = norm(A,inf) %求行范数 ,等于A的行向量的1-范数的最大值即:max(sum(abs(A')))。

    n = norm(A, 'fro' ) %求矩阵A的Frobenius范数 ,矩阵元p阶范数估计需要自己编程求,

    计算公式如下

     举个例子吧a=magic(3)sum(sum(abs(a)^4))^(1/4)a = 8 1 6 3 5 7 4 9 2

    ans = 19.7411

    转自:http://zhidao.baidu.com/question/245196523.html


    4、Matlab如何得出矩阵的前k个最大特征值所对应的特征向量?

    http://www.ilovematlab.cn/thread-50763-1-1.html

    A=[1 3 7;3 8 9;5 4 6];
    [V,D]=eig(A);
    D=diag(D);
    [ D,I]=sort(D,'descend');
    [D(1:2) V(:,I(1:2))']

    用sort排序,decend是降序,取前面是特征值比较大的;默认是升序,前面是特征值比较小的


    5、matlab迭代求解

    最基本的循环

    1. a=;
    2. b=;
    3. d=;
    4. c=1;
    5. n=0;
    6. errf=1;
    7. while errf>1e-8&n<100%计算结果精度要求1e-8,如果迭代超过100次还不收敛,退出循环。
    8. y=a*b*c;
    9. c1=y*d;
    10. errf=(c1-c)/c1;
    11. c=c1;
    12. n=n+1;
    13. end


    展开全文
  • 该程序使用Haversine 公式计算两个位置(纬度和经度)之间的距离。 Haversine 公式给出了地球表面上两点之间的最短距离,忽略海拔、山丘等...... 该程序接受两个输入,它们可以是指定为度、分和秒或十进制度的位置。...
  • matlab海伦公式计算三角形面积
  • 公式计算器.matlab

    2020-10-03 09:50:26
    公式计算器设计说明;公式计算器设计说明;公式计算器设计说明;公式计算器设计说明;公式计算器设计说明;公式计算器设计说明
  • 本代码用matlab实现用贝塞尔公式计算母体标准误差的估计值S。可配合阿贝尔准则代码一起使用,用于热工测量的样本误差处理。
  • 应用matlab编写的计算日尺度参考作物蒸散发ET0(彭曼法PM equation),只需要输入基本的气象数据就可以直接运行,包含一组输入数据,运行时可直接调用,或者稍微改改输入输入就可以用到自己的模型中。包含注释。哈哈...
  • 使用matlab进行普朗克公式计算

    热门讨论 2011-07-11 22:03:28
    进行红外仿真必经环节,通过它可以算出黑体相应温度的辐射出射度
  • 应用matlab编写的计算潜在蒸散量的彭曼公式,只需要输入基本的气象数据就可以直接运行,程序提供时了示例数据
  • MACHIN(M) 给出一个 pi 被截断为 M 个小数的字符串使用 Machin 公式:pi = 16*acot(5) - 4*acot(239)
  • 在这一篇,我们介绍使用MATLAB Function的方式。其实,如果想在 Simulink 里嵌套使用 m 脚本来实现某些复杂的数学运算,用 MATLAB Function 也是一种很方便的途径。点击末尾的 “阅读原文” 下载本文的案例模型循环...

    描述

    其实也就是使用 Simulink 库里相应的模块,以及使用 Stateflow 流程图向导。在这一篇,我们介绍使用MATLAB Function的方式。

    其实,如果想在 Simulink 里嵌套使用 m 脚本来实现某些复杂的数学运算,用 MATLAB Function 也是一种很方便的途径。

    点击末尾的 “阅读原文” 下载本文的案例模型

    循环逻辑

    要得到:

    y1 = 0;

    for(inx = 0; inx <10; inx++)

    {

    y1 = u1[inx] + y1;

    }

    或者

    while(flag && (num_iter <= 100)

    {

    flag = func ();

    num_iter ++;

    }

    怎么做:

    MATLAB Function 模块可以直接写相应的 m 脚本。

    For循环

    1. 简单模型

    直接把循环的脚本写进去就行了:

    7d7357d1de5e7d6135f0b9402593dfdd.png

    得到代码:

    86dc89ec897e0c06fac48f8272712b8d.png

    2. 调用外部函数

    当 m 脚本里,如果有些运算需要调用到外部已有的 Simulink 函数时,跟 Stateflow 一样,也可以使用 function call 的形式。如下图,在 MATLAB Function 的数据管理界面上,将 func 设置为 function call 类型:

    73784f2f5a11016f30674356671e3ee1.png

    MATLAB Function 内部运行到 func; 这一句时,触发调用外部的 Trigger 子系统 func 计算输出,从而更新 func_flag 的值:

    1a6d7ddd3c5a9ecc5fe8b2cc1786f26f.png

    生成的代码如图,这里做了模型配置把所有代码注释都去掉了:

    f7ac8c0e0daa7bcfebebb970a3d8d25a.png

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • 基于MATLAB软件,使用者在交互界面GUI上输入入射介质、反射介质的折射系数n1、n2,可算得不同入射角条件下线偏光/自然光的菲涅尔透反射系数及透反射比
  • 欧拉公式求长期率的matlab代码计算π 挑战的目的是练习将列表理解与输入和输出一起使用。 编写并提交一个Python程序,该程序通过计算以下总和来计算π的近似值: 当n接近∞时,该和接近π的真实值。 该方程式中的大...
  • 欧拉公式求职率的matlab代码计算数学 在开始之前 .​​.. 安装git 如果您使用的是Debian式的GNU/Linux Debian : sudo apt-get install git 。 如果您使用的是MacOS,请按照说明进行操作,并按照说明进行操作。 在...
  • 欧拉公式求长期率的matlab代码MATH 210数学计算入门 的MATH 210是Python数学计算的简介。 我们从基本的Python编程开始,包括数据类型,逻辑,循环和函数,然后探索科学的计算软件包,和。 我们使用这些软件包来解决...
  • matlab复化simpson公式计算积分程序,用函数调用的方法实现的。
  • % freq - 频率,Hz % Pr - 接收器灵敏度,dBm % Pt - 发射机功率,dBm % Gt - tx 天线增益,dBi % Gr - rx 天线增益,dBi % L - 其他损耗(电缆、连接器等),dB % F - 衰减余量,dB % % 以米为单位返回距离
  • Matlab用不同公式计算Π值

    千次阅读 2019-11-12 21:21:43
    变化图:此部分将展示出各公式计算Π时,随着迭代次数的变化,Π值的变化趋势图。 公式:此部分将展示出各个计算公式,便于使用者理解。 参数设置:使用者可在此部分设置所需要展示的公式以及迭代次数(默认为100次...

    GUI界面介绍

    • 变化图:此部分将展示出各公式计算Π时,随着迭代次数的变化,Π值的变化趋势图。
    • 公式:此部分将展示出各个计算公式,便于使用者理解。
    • 参数设置:使用者可在此部分设置所需要展示的公式以及迭代次数(默认为100次)。
    • Π值显示:此部分将展示各公式计算出的Π值,默认保留小数点后9位,便于通过数值比较各公式间的精度。

    四个计算公式

    在这里插入图片描述

    GUI效果图

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    部分代码

    % 四种方法计算Π的公式
    % Formula1
    function PI = Formula1(n)
    PI=1;a=1;item=1;f=1;
    for i=1:n
        a=a+2;
        f=-f;
        item=f*(1/a);
        PI=PI+item;
    end
    digits(10);  % 设置精度
    PI=vpa(PI*4);
    % Formula2
    function PI = Formula2(n)
    PI=1;a=1;item=1;
    for i=1:n
        item=(a+1)*(a+1)/(a*(a+2));
        PI=PI*item;
        a=a+2;
    end
    digits(10);
    PI=vpa(PI*2);
    % Formula3
    function PI = Formula3(n)
    PI=1;a=0;b=1;item=1;
    for i=1:n
        a=a+1;
        b=b+2;
        item=item*(a/b);
        PI=PI+item;
    end
    digits(10);
    PI=vpa(PI*2);
    % Formula4
    function PI = Formula4(n)
    PI=1;a=1;item=1;
    for i=1:n
        item=1+1/(a*(a+2));
        PI=PI*item;
        a=a+2;
    end
    digits(10);
    PI=vpa(PI*2);
    
    function pbtShow_Callback(hObject, eventdata, handles)
    choice=round(get(handles.FormulaChoice,'Value'));
    %disp(choice)
    N=round(str2num(get(handles.epoch,'String')));
    switch choice
        case 1
            for i=1:N
                PI(i)=Formula1(i);
            end
            sLegend='Formula1';
        case 2
            for i=1:N
                PI(i)=Formula2(i);
            end
            sLegend='Formula2';
        case 3
            for i=1:N
                PI(i)=Formula3(i);
            end
            sLegend='Formula3';
        case 4
            for i=1:N
                PI(i)=Formula4(i);
            end
            sLegend='Formula4';
        case 5
            for i=1:N
                PI(1,i)=Formula1(i);
                PI(2,i)=Formula2(i);
                PI(3,i)=Formula3(i);
                PI(4,i)=Formula4(i);
            end
            sLegend={'Formula1','Formula2','Formula3','Formula4'};
        otherwise
            disp('Please choice correct parameter !');
            return;
    end
    % 显示Π变化趋势图
    axes(handles.axes1);
    plot(1:N,PI);% 绘图
    line([1,N],[pi,pi],'color','r','linestyle',':');% 显示参考线
    ylim([2.6,3.6]);% 对Y轴设定显示范围 
    legend(sLegend);
    xlabel('epoch');
    ylabel('value');
    
    % 显示某一公式计算出的Π值
    if choice < 5
        set(handles.showpi,'String',char(PI(N))); 
    else
        set(handles.showpi,'String',''); 
    end
    
    展开全文
  • 利用龙贝格算法计算数学中的定积分公式,其中利用到了梯形、辛普生、科斯特过程
  • 本代码用于求解多方非合作博弈的纳什均衡解
  • 该函数使用标准形式的 Sellmeier 公式(如 OSA 的光学手册中使用的公式计算折射率。 它接受直接输入参数或更复杂的使用数据结构的方式。 zip 文件中是函数的代码和一个 .MAT 文件,其中包含硅 (Si) 的示例数据...
  • 包含代码和文档 采用复化梯形公式和复化辛普森公式求积分,并与精确值进行比较得下表。 采用复化梯形公式和复化辛普森公式求积分,并与精确值进行比较得下表。
  • 用递推公式计算定积分(matlab版)

    千次阅读 2021-05-04 03:15:46
    《用递推公式计算定积分(matlab版)》由会员分享,可在线阅读,更多相关《用递推公式计算定积分(matlab版)(7页珍藏版)》请在人人文库网上搜索。1、用递推公式计算定积分实验目的:1.充分理解不稳定的计算方法将导致...
  • 复化simpson公式计算定积分,matlab程序实现,需要输入积分函数、上下限和所分步数,希望能对大家的学习有帮助。
  • 以二次曲线逼近实际曲线根据辛普森公式可得各积分小区间内的积分值如下式所示:其中于是,全积分区间[a, b]的积分值为为便于计算机计算,上式可写成其中C语言程序实现辛普森公式计算积分计算积分代码//simpson.c#...
  • 欧拉公式求长期率的matlab代码MATH 210数学计算入门 的MATH 210是使用和进行数学计算的简介。 我们从基本的Python编程开始,包括数据类型,逻辑,循环和函数,然后探索科学的计算包和。 我们使用这些软件包来解决微...
  • 可以使用在表面采点获得一系列的二维点,根据一维粗糙度计算的原理,使用matlab编程实现。计算原理可以在https://github.com/sky-horsefly/One-Dimensional-Roughness中找到
  • 本程序用于计算风速仪测得的三个方向的湍流积分尺度
  • 该代码使用friis公式通过16qam对可变长度的数据执行功率计算,并在ber和snr之间获得仿真结果。
  • MATLAB梯形复合公式

    2015-06-15 09:16:05
    该代码是一段MATLAB复合梯形计算定积分的代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,728
精华内容 16,691
关键字:

matlab进行公式计算

matlab 订阅