精华内容
下载资源
问答
  • 2021-04-23 11:04:03

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    程序如下,求beta值

    function beta_3

    c=3*10^8;

    lambda=1.55;

    rho(1)=1;nc=1;n1=3;l1=0.13;n2=1.5;l2=0.265;

    omega=2*pi*c/lambda;

    x=fsolve(@(x) myfun(x,omega,l1,l2,n1,n2,nc,c),[0.5,4.0227,12.1507,6.0599,-1.2508-i*0.0461,0.7453-0.1052*i,3.1416-0.6942*i]')

    function F=myfun(x,omega,l1,l2,n1,n2,nc,c)

    beta=x(1);

    kc=x(2);

    k1=x(3);

    k2=x(4);

    kte=x(5);

    Ate=x(6);

    Bte=x(7);

    F(1)=-besselj(kc*1,1)/(besselj(kc*1,0))+i*kc/k1*(exp(i*kte)-Ate-Bte)/(exp(i*kte)-Ate+Bte);

    F(2)=kc-sqrt(nc^2*(omega/c)^2-beta^2);

    F(3)=k1-sqrt(n1^2*(omega/c)^2-beta^2);

    F(4)=k2-sqrt(n2^2*(omega/c)^2-beta^2);

    F(5)=Ate-exp(i*k1*l1)*(i*(k1^2+k2^2)/(2*k1*k2)*sin(k2*l2)+cos(k2*l2));

    F(6)=Bte-i*exp(-i*k1*11)*(k1^2-k2^2)/(2*k1*k2)*sin(k2*l2);

    F(7)=kte+i*log(real(Ate)-sqrt(real(Ate)^2-1));

    我用的是多元函数,取初值得时候带beta=0.5得到其他的几个变量值。。。

    但结果好象得不到,不知道为什么。

    如果不用这个方法,已知

    kc=sqrt(nc^2*(omega/c)^2-beta^2);

    k1=sqrt(n1^2*(omega/c)^2-beta^2);

    k2=sqrt(n2^2*(omega/c)^2-beta^2);

    Ate=exp(i*k1*l1)*(i*(k1^2+k2^2)/(2*k1*k2)*sin(k2*l2)+cos(k2*l2));

    Bte=i*exp(-i*k1*11)*(k1^2-k2^2)/(2*k1*k2)*sin(k2*l2);

    kte=-i*log(real(Ate)-sqrt(real(Ate)^2-1));

    -besselj(kc*1,1)/(besselj(kc*1,0))+i*kc/k1*(exp(i*kte)-Ate-Bte)/(exp(i*kte)-Ate+Bte)=0;

    应该怎么求beta喃?

    更多相关内容
  • 贝塞尔函数零点求取的函数。可以算到1001阶,网络上那些互相复制来复制去的内容只能算到135阶没法满足我的需要后自己编写的。有高阶计算需求的自取。
  • Matlab函数零点 | 学步园

    千次阅读 2021-04-18 05:31:04
    Matlab函数零点Matlab求函数零点的函数是fzero(一元函数),fsolve(二元函数),roots(一元多项式)等:fzero:fzero可以任何一元函数的零点:函数的零点:x=-3:0.1:4;y=x.^2.*sin(x)-x+1;plot(x, y, 'r'); %绘...

    Matlab之函数零点

    Matlab中求函数零点的函数是fzero(一元函数),fsolve(二元函数),roots(一元多项式)等:

    fzero:

    fzero可以求任何一元函数的零点:

    求函数

    0_1329008102Pv70.gif的零点:

    x=-3:0.1:4;

    y=x.^2.*sin(x)-x+1;

    plot(x, y, 'r'); %绘出图形

    grid on %显示网格

    line([-3, 4], [0, 0]); %绘制x轴((-3,0)到(4,0)的一条直线)

    title('fzero example');

    xlabel('x');

    ylabel('f(x)');

    f=@(x)(x.^2.*sin(x)-x+1);

    [m, n]=fzero(f,-2); %在x=-2附近求函数零点,m是零点的x坐标,n是零点的y坐标(注意:Matlab默认求出的是弧度值!)

    0_13290076600zYH.gif

    注意:[m, n] = fzero(funHandle, x0)表示在x0附近求funHandle函数句柄的零点,返回的m是求出的零点的x坐标,n是求出的零点的y坐标。其中函数句柄可以用下面的两种方法表示:

    1.

    一元函数:

    f=@(x)(...)

    如:f=@(x)(2*x.^2+5*x-15)

    二元函数:

    f=@(x, y)(...)

    如:f=@(x, y)(sin(x.^2+y.^2))

    2.

    一元函数:

    f=inline('f(x)', 'x')           其中f(x)是函数表达式,x是该函数表达式中的自变量

    如:f=inline('2*x.^2+5*x-15', 'x')

    二元函数:

    f=inline('f(x)', 'x', 'y')     其中f(x)是函数表达式,x,y是该函数表达式中的自变量

    如:f=inline('sin(x.^2+y.^2)',

    'x', 'y')

    注意:定义好函数句柄后就可以按下面的方法使用:f(10)表示求x=10的函数值

    roots:

    roots可以求一元多项式函数(诸如

    0_1329008882MpyW.gif的形式)的所有零点:

    求函数

    0_1329008908hdsW.gif的零点:

    o=roots([1 0 -2 -5]);

    输出三个零点,包括两个复数

    注意:o=roots(m)中m表示该多项式的各阶系数(阶数从大到小排列),输出的o是一个一维列向量,表示求出的所有零点(包括复数)

    fsolve:

    fsolve可以求出二元函数的零点:

    求方程组

    0_1329018364196x.gif的零点(从[-5, -5]处开始搜寻)(fsolve采用迭代法求零点,因此需要设定一个初始值):

    首先我们要把上面的每个方程化为

    0_1329055162U3ck.gif的形式,然后输入:

    f=@(x)([2*x(1)-x(2)-exp(-x(1)); -x(1)+2*x(2)-exp(-x(2))]);

    y=fsolve(f,[-5 -5]);

    得到:

    y=[0.5671 0.5671]

    代入f:

    f(y)

    输出:

    1.0e-006 *

    -0.4059

    -0.4059

    可见y=[x1, x2]的确非常接近零点

    展开全文
  • MATLAB求函数零点与极值

    万次阅读 2016-12-04 17:46:13
    针对多项式求零点(详见MATLAB多项式及多项式拟合) 2. fzero函数 返回一元函数在某个区间内的的零点. x0 = fzero(@(x)x.^2-3*x-4,[1,5]); 只能区间里面的一个零点,并且要求在给定区间端点函数值异号,所以使用...

    1.      roots函数

    针对多项式求零点(详见MATLAB多项式及多项式拟合)


    2.      fzero函数

    返回一元函数在某个区间内的的零点.

    x0 = fzero(@(x)x.^2-3*x-4,[1,5]);

    只能求区间里面的一个零点,并且要求在给定区间端点函数值异号,所以使用之前应该先作图,得出单个零点分布的区间,然后使用该函数求零点.若有多个零点,则需多次使用该函数.

    如需求上例中的全部零点,先作图

    fplot(@(x)x.^2-3*x-4,[-10,10]);

    得知两个零点的分布区间,然后两次使用fzero函数求对应区间的零点.

    x1 = fzero(@(x)x.^2-3*x-4,[-2,0]);

    x2 = fzero(@(x)x.^2-3*x-4,[2,6]);


    3.      solve函数

    求一元函数(方程)的零点.

    x0 = solve('x^2-3*x-4=0','x');

    注意方程需包含’=0’部分,另外,不建议直接将方程写在函数solve的参数部分,可以用符号运算的方法.


    4.      fminbnd函数

    求一元函数在某个区间内的最小值和对应的最小值点.

    [x0,fmin]=fminbnd(@(x)x+1/(x+1),-0.5,2);

    求极值与极值点之前须估计极值点的区间,保证在该区间没有使得函数值趋于无穷的点.

    展开全文
  • MATLAB求函数零点—fzero函数

    万次阅读 2014-03-06 20:31:16
    MATLAB 函数的零点 作者:未知 信息来源:...2 任意一元函数零点的精确解【 * 例 5。2-1 】通过 的零点,综合叙述相关指令的用法。... 5.6 函数的零点 5.6.2 一元函数的零点 5.6.2.2 任意一元

    MATLAB 函数的零点

    作者:未知  信息来源:未知  2006-1-26

    字体大小:  网友评论条  进入论坛  

    6 函数的零点5。2 一元函数的零点5。2 任意一元函数零点的精确解【 * 例 5。2-1 】通过求 的零点,综合叙述相关指令的用法。...


    5.6 函数的零点


    5.6.2 一元函数的零点

    5.6.2.2 任意一元函数零点的精确解
    【 * 例 5.6.2 .2-1 】通过求 的零点,综合叙述相关指令的用法。

    (1)构造一个内联函数对象
    被解函数 以 为自变量, 和 参数。假如在 fzero 中直接采用字符串表示被解函数,容易出错。因此先构造内联函数如下:
    y=inline('sin(t)^2*exp(-a*t)-b*abs(t)','t','a','b'); %<1>

    (2)作图法观察函数零点分布
    a=0.1;b=0.5;t=-10:0.01:10; % 对自变量采样,采样步长不宜太大。
    y_char=vectorize(y); % 为避免循环,把 y 改写成适合数组运算形式。 <4>
    Y=feval(y_char,t,a,b); % 在采样点上计算函数值。
    clf,plot(t,Y,'r');hold on,plot(t,zeros(size(t)),'k'); % 画坐标横轴
    xlabel('t');ylabel('y(t)'),hold off

    点击查看完整图片

    图 5.6.2 .2-1 函数零点分布观察图

     

    (3)利用 zoom 和 ginput 指令获得零点的初始近似值(在 MATLAB 指令窗中进行)
    zoom on % 在 MATLAB 指令窗中运行,获局部放大图
    [tt,yy]=ginput(5);zoom off % 在 MATLAB 指令窗中运行,用鼠标获 5 个零点猜测值。

    点击查看完整图片

    图 5.6.2 .2-2 局部放大和利用鼠标取值图

    tt % 显示所得零点初始猜测值(该指令可在 Notebook 中运行)。
    tt =
    -2.0032
    -0.5415
    -0.0072
    0.5876
    1.6561

    (4)求靠近 tt(4) 的精确零点
    [t4,y4,exitflag]=fzero(y,tt(4),[],a,b) %<11>
    Zero found in the interval: [0.57094, 0.60418].
    t4 =
    0 。 5993
    y4 =
    0
    exitflag =
    1

    (5)求在 tt(3)附近的精确零点
    从理论分析可知, 是函数的一个零点。但即便是以十分靠近该零点的 为搜索的初始值,也找不到 ,而却找到了另一个零点。原因是曲线没有穿越横轴。请看下面指令的运行结果。
    [t3,y3,exitflag]=fzero(y,tt(3),[],a,b)
    Zero found in the interval: [0.58266, -0.59706].
    t3 =
    -0.5198
    y3 =
    0
    exitflag =
    1

    (6)观察 fzero 所采用的 options 缺省设置,并更改控制计算精度的相对误差设置。
    op=optimset('fzero') % 提取 fzero 所采用的 options 缺省设置
    op =
    ActiveConstrTol: []
    ......
    Display: 'final'
    ......
    TolX: 2.2204e-016
    TypicalX: []

    op=optimset('tolx',0.01); % 把终止计算的相对误差阈值设置得较大
    op.TolX % 观察新设置值。注意 TolX 字母的大小写。
    ans =
    0.0100

    (7)利用新设置的选项参数重新求 tt(4)附近的零点,以便比较。
    [t4n,y4n,exitflag]=fzero(y,tt(4),op,a,b) % 采用新的 op 设置参数。
    Zero found in the interval: [0.57094, 0.60418].
    t4n =
    0 。 6042
    y4n =
    0 。 0017
    exitflag =
    1


    〖说明〗
    1、本例是采用内联函数形式求取函数零点的。
    2、 若采用如下 M 函数文件(该文件必须放在搜索路径上)

    [y_M.m]
    function y=y_M(t,a,b)
    y=sin(t).^2.*exp(-a*t)-b*abs(t);

    则相应的求零点指令是 [t 4m ,y 4m ,exitflag]=fzero('y_M',tt(4),[],a,b)•  若直接用字符串表达函数,则应把被解函数自变量 t 改成 x ,参数 a 、 b 改成 P1 、 P2 。相应的具体指令如下

    P1=0.1;P2=0.5;
    y_C='sin(x).^2.*exp(-P1*x)-P2*abs(x)';
    [t 4c ,y 4c ,exitflag]=fzero(y_C,tt(4),[],P1,P2)


    5.6.3 多元函数的零点

    【例 5.6.3 -1 】求解二元函数方程组 点击查看完整图片的零点。

    (1)从三维坐标初步观察两函数图形相交情况
    x=-2:0.05:2;y=x;[X,Y]=meshgrid(x,y); % 产生 x-y 平面上网点坐标
    F1=sin(X-Y);F2=cos(X+Y);
    F0=zeros(size(X));
    surf(X,Y,F1),
    xlabel('x'),ylabel('y'),
    view([-31,62]),hold on,
    surf(X,Y,F2),surf(X,Y,F0),
    shading interp,
    hold off

    点击查看完整图片

    图 5.6.3 -0 两函数的三维相交图

     

     

    (2)在某区域观察两函数 0 等位线的交点情况
    clear;
    x=-2:0.5:2;y=x;[X,Y]=meshgrid(x,y); % 产生 x-y 平面上网点坐标
    F1=sin(X-Y);F2=cos(X+Y);
    v=[-0.2, 0, 0.2]; % 指定三个等位值,是为了更可靠地判断 0 等位线的存在。
    contour(X,Y,F1,v) % 画 F1 的三条等位线。
    hold on,contour(X,Y,F2,v),hold off % 画 F2 的三条等位线。

    点击查看完整图片

    图 5.6.3 -1 两个二元函数 0 等位线的交点图

     

    (3)从图形获取零点的初始近似值
    在图 5.6.3 -1 中,用 ginput 获取两个函数 0 等位线(即三线组中间那条线)交点的坐标。
    [x0,y0]=ginput(2); % 在图上取两个点的坐标
    disp([x0,y0])
    -0.7926 -0.7843
    0.7926 0.7843

    (4)利用 fsolve 求精确解。以求( 0.7926,7843 )附近的解为例。
    本例直接用字符串表达被解函数。注意:在此,自变量必须写成 x(1), x(2) 。假如写成 xy(1), xy(2) ,指令运行将出错。
    fun='[sin(x(1)-x(2)),cos(x(1)+x(2))]'; %<12>
    xy=fsolve(fun,[x0(2),y0(2)]) %<13>
    xy =
    0.7854 0.7854

    (5)检验
    fxy1=sin(xy(1)-xy(2));fxy2=cos(xy(1)+xy(2));disp([fxy1,fxy2])
    1.0e-006 *
    -0.0994 0.2019

    〖说明〗指令 <12><13> 可用以下任何一组指令取代。

    (A)内联函数形式指令
    fun=inline('[sin(x(1)-x(2)), cos(x(1)+x(2))]', 'x'); % 项 'x' 必须有。
    xy=fsolve(fun,[x0(2), y0(2)]);

    (B) M 函数文件形式及指令
    先用如下 fun.m 表示被解函数(并在搜索路径上)
    [fun.m]
    function ff=fun(x)
    ff(1)=sin(x(1)-x(2));
    ff(2)=cos(x(1)+x(2));
    然后运行指令 xy=fsolve('fun',[x0(2),y0(2)]) 。

    第四步检验中的结果表明:所找零点处的函数值小于 ,是一个十分接近零的小数。该精度由 options.TolFun 控制。 options.TolFun 的缺省值是 1.0000e-006 。它可以用下列指令看到
    options=optimset('fsolve');
    options.TolFun
    ans =
    1.0000e-006

    展开全文
  • matlab二分法求零点..pdf
  • 牛顿法用于连续寻找实值函数零点的更好近似值。
  • 函数 p_min=bisection(func,int,iter,tol_x,tol_f) % 它用一个变量计算常规实函数的零。 % p_min 是解,代表零的横坐标值。 % 输入变量是: % -func:它是一个字符串,表示变量“x”中的函数。 % -int:它是一个有两...
  • 此脚本使用哈雷方法计算第一类 J(n,x) 和第二类 Y(n,x) 的贝塞尔函数的 k 个正零点,其中 n 是正数。 该例程已经过测试,最高可达 k=100 和 n=100。
  • MATLAB求解函数零点+代码演示

    千次阅读 2017-09-06 08:11:10
    %%root 函数使用 p = [1,-2,3,0]; x0 = roots(p); x0 %% fzero 函数使用 fplot(@(x)x.^2-3*x-4,[-10,10]); x1 = fzero(@(x)x.^2-3*x-4,[-2,0]); x2 = fzero(@(x)x.^2-3*x-4,[2,6]); x1 , x2 %% solve 函数使用 [线性...
  • 一:用MATLAB求传递函数零点,极点以及增益K

    万次阅读 多人点赞 2020-06-10 22:09:38
    MATLAB求传递函数零点,极点以及增益K
  • 一节课精通matlab入门一元二元函数的最小值和零点,包括详细的代码资料和讲解注释
  • MATLAB求传递函数零点,极点以及增益K
  • matlab求极点和零点

    千次阅读 2021-04-29 04:01:47
    利用 MATLAB 的 fdatool 观察传递函数 H(z)的零极点分布、幅度响应、脉冲响 应及阶跃响应,并观察零极点分布与系统稳定性......假设为一个零点,多个极点系统且 b=[ 0.2 0.8 1/2 0.64],a=1,用 zplane(b,a)就可以画出...
  • Matlab 贝塞尔函数的根 clear clc R=1; maxv = 5; maxs = 5; j= zeros(maxv, maxs%用于存放第一类贝塞尔函数的根同一行阶数相同列数表示第几个根 incr = 4.0; for v=0:maxv-1 h = v+1.9*v(1/3)+1; if (v==0) j...
  • 用二分法求函数零点的步骤3.1.2 用二分法方程的近似解 克州二中 谭雪琴 知识回顾 1.函数f(x)=x2-2x-3的零点。 解法一:函数对应方程是x2-2x-3=0,求解该方程可得 x=-1或3 则原函数的零点是-1和3 解法二:作出函数...
  • 在论坛里找到了一个求解第一类贝塞尔函数零点的代码程序,但是有些语句看不懂,用fzero命令求解第一类贝塞尔函数高阶零点时,给出初值h的计算式为:h = v+1.9*v^(1/3)+1其中v是阶数,请教大神们,为什么给出这样的...
  • c = c = c = c = > clear > f=inline'x^2+exp(-2*x)-2; > fplot(f,[0,2];grid; > hold on; > a=1;b=2;dlt=1.0e-4;k=1; > while abs(b-a>dlt c=(a+b)/2; if(c)==0 break; elseif f(c*f(b;... end plot(c
  • 什么是二分法?定义:对于区间 【a , b】上连续的,且 f ( a ) - f ( b ) <...用二分法求函数零点的近似值步骤如下:第一步:确定区间 【a , b】,验证:f(a)·f(b),给定精确度;第二步:区...
  • 传递函数零点和极点.PPT

    千次阅读 2021-04-19 08:53:20
    3. 控制系统的方框图模型 若已知控制系统的方框图,使用MATLAB函数可实现方框图转换。 a).串联 如图所示G1(s)和G2(s)相串联,在MATLAB中可用串联函数series( )来G1(s)G2(s),其调用格式为 [num,den]=series(num1,den1...
  • 算个东西,需要用到bessel函数的根。找到了一个maple的算法,然后改成matlab的。如下:代码:> ZerosBesselJ := proc (maxv, maxs)> local j, incr, v, h, s;>> j := array(0..maxv, 1..maxs);> incr...
  • 1、 用二分法求函数零点及二分法的定义1二分法的定义对于函数$y=f(x)$,它在区间$[a,b]$和$f(a)·f(b)&lt;0$上是连续的,这种方法称为二分法,在函数$f(x)$的零点处连续划分区间,使区间的两个端点逐渐接近...
  • 答:matlab没有现成的函数二元函数零点,但你可以用solve函数求解啊,z=f(x,y)=0,得到得应该是一条曲线 syms x y y=solve('f(x,y)=0','x') 即可出解来答:1. 一元函数: f=@(x)(...) 如:f=@(x)(2*x.^2+5*...
  • 各位大侠:由于本人最近需要求bessel函数零点值,因此在网上找了下,发现有一下程序:function SolveBessel% 求解贝塞尔函数零点global rootBesselmaxv = 10; % 最大贝塞尔函数阶数-1,表示从0到9阶maxs = 10; %...
  • 该程序查找连续函数的实根(或零点)。 这对于找到多项式或超越方程的根很有用。 当在指定域中发现太多根时,该域可能会缩小,以便以零碎的方式找到根。 不应该有无关的根,但如果它们出现,它们可以从函数的图中...
  • matlab求零点

    千次阅读 2021-04-18 05:19:55
    数值计算方法第四章 计算函数零点和极值点的迭代法 本章讨论非线性方程(组)的求解问题 2/80 4.1 不动点迭代法及其收敛性 1.不动点设非线性方程组 f(x) =......matlab求解零状态零输入响应_数学_自然科学_专业资料。1...
  • matlab函数大全-matlab函数大全.doc 比较白痴的东西,不过对初学者也许有用,特分享一下。不要喷我哦!函数具体用法可以用help查一下。附件内容与下面一样的。 Aabs 绝对值、模、字符的ASCII码值 acos 反余弦 ...
  • 今天给大家介绍MATLAB命令fzero和fminbnd,fzero可以用于寻找一个函数零点,fminbnd可以用于寻找一个函数的最小值。以下面这个函数为例:先用户自定义函数把上面的函数叫为func,并存入func.m的M文件中。其文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,075
精华内容 1,630
关键字:

matlab求函数零点

matlab 订阅
友情链接: librarysystem.rar