matlab里solve函数解不出来这个函数是为什么?

Lambda = 1500; %单位:nmh=300; %单位:nmk0=2*pi/Lambda; %真空中的波矢n1=3.5; %guidelayern2=1.45; %substratelayern3=1; %caplayerV=k0*h*(n1^2-n2^2)^0.5;%normalized frequencya=(n2^2-n3^2)/(n1^2-n2^2);%asymmetry parametersyms x;eqn=((1-x)^0.5)*(x^0.5+(x+a)^0.5)/(1-x-(x*(x+a))^0.5)-tan(V*(1-x)^0.5)==0;[x]=solve(eqn,x)一直显示出Cannot solve symbolically. Returning a numeric approximation instead.V的数值是合理的,a的数值也是合理的,x的解应该是一个或多个介于0~1之间的数字,但solve函数解出来是x=1.0???

第1个回答  2023-02-26
根据您提供的代码,我看到了一个类似于MATLAB的程序,用于计算光波导的相关参数。在这段代码中,使用了一个名为“solve”的函数来解方程。根据您提供的错误信息,“solve”函数无法对符号求解进行求解,而是返回数值近似值。

这通常是因为方程无法用简单的符号表达式解决,需要使用数值方法来计算。如果您希望获得符号解,可以尝试使用不同的解析库或数学软件来解决方程。或者,您可以使用数值方法来近似求解方程,例如牛顿迭代法或二分法本回答被提问者采纳

matlab里solve函数解不出来这个函数是为什么?
这通常是因为方程无法用简单的符号表达式解决,需要使用数值方法来计算。如果您希望获得符号解,可以尝试使用不同的解析库或数学软件来解决方程。或者,您可以使用数值方法来近似求解方程,例如牛顿迭代法或二分法

matlab solve解不出来
原因一:用这样的表达式 v1(z1) = (C1*z1^3\/6 + C2*z1^2\/2 + C3*z1 + C4)\/(E*I);来描述v1关于z1的函数是不正确的。应该直接写就可以了 v1 = (C1*z1^3\/6 + C2*z1^2\/2 + C3*z1 + C4)\/(E*I);原因二:这样的表达式'E*I*D2v1(0) = 0'也有问题,这里不存在...

matlab,solv函数解方程解不出来,求教
solv函数解方程解不出来的主要问题是多了一个分号。第一种求解方法是正确的;jd=solve('12.5+(3.7947-4*(120-jd))\/60-12 = 0','jd')第二种求解方法是错误的;第三种求解方法是基本正确,但少了变量声明;syms jd jd=solve(12.5+(3.7947-4*(120-jd))\/60-12 == 0,jd)【扩展知识...

我想通过matlab得一个q=()p的函数,但是用solve怎么也弄不出来,要怎么才...
由于给出的方程比较复杂,用solve函数求解,得到是无解,所以应改用vpasolve函数求解。具体实现方法如下:1、由于vpasolve函数不适应求解数组形式的数据,所以只能逐个求解。2、应使用for循环语句来完成求解。即 for i=1:8 S=vpasolve(eval(eq(i))) %eq为具体的表达式 end 3、实现代码:syms q assum...

matlab,solve函数解方程组,无法求出结果。
复制粘贴你的代码是没有问题的。该代码在matlab2018中通过。出现这个情况,可能你的版本不支持,下列solve的格式 [x1,x2,y1,y2]=solve(nA==((1+rn)*(a*NA-。。。你可以这样改,把“==”改成“-”[x1,x2,y1,y2]=solve(nA-((1+rn)*(a*NA-。。。

matlab中调用solve函数出错?怎么解决
1、solve函数的这种调用方式:solve('lambda-(-2*log10(2.51\/Re\/sqrt(lambda)+0.27\/l(i)))^(-2) = 0','lambda')是把整个字符串作为参数传递给符号计算内核的,给参数l和Re赋值不起作用,所以在符号计算内核求解时会把l、Re也看成变量,从而导致求解失败。解决的办法是,定义符号变量lambda...

菜鸟请教,matlab求解方程,变量已赋值,为啥解不出来
因为 solve( )的表达式是带引号,所以dt、T、V、Q等已知值不能代入其表达式中。因此,程序应作如下改动 clc;syms dT %声明变量dt=0.01;T=273.15;V=150;Q=1.3611;eq=1.5*220*dT*dt+1.206*(V-Q*dt)*dT*1005-(Q*dt*(310.15-T-dT)*1.206*1005)dT=solve(eq,'dT');dT=vpa...

matlab解指数方程,我用solve去解好像解不了不知道哪里错了
可以求解,可能你没有完全理解如何使用solve()函数。对于你的方程,应该这样来求。syms x a=-0.0008366;b=0.008461;c=10.46;d=-9.462e-005;x=solve(10.450-( a*exp(b*x) + c*exp(d*x)))求解结果 x=9.1941461897150424695683645683291 将x值代入fx = a*exp(b*x) + c*exp(d*x...

一个MATLAB中求解方程solve函数,一直错误,求帮助
首先,你有语法错误。solve里的表达是默认为右端为零的方程,所以不能出现“=”,你看我下面做得就可以,把右边的那项移到左边这边来。其次,可能是solve不支持向量操作。我把方程改成 [h]=solve('(h*(sqrt(z2^2+(r11-h)^2)))\/((r11-h)*(sqrt(z1^2+h^2)))-c1\/c2');就解出h...

Matlab用solve函数,提示错误
solve函数出错时,可以检查代码是否有如下问题:1、是否有调用格式的错误,传入的表达式参数需要统一为字符串,或者统一为符号变量。(matlab在帮助程序中已经删去了对字符串传参的说明,字符串传参很有可能在未来版本被删除,因此推荐使用符号表达式传参数)2、表达式中有错误。①等式中的等号,对于字符串来...

相似回答
大家正在搜