24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2835  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

Illusionist

银虫 (正式写手)

[求助] matlab求解色散方程,求助

m=1;
h=1.5E-6;
n0=1.504;
n1=2.2899;
n2=1;
K0=5.927E+6;
pi=3.141592653;
K=((K0×n1)^2-B^2)^(1/2)
P0=(B^2-(K0×n0)^2)^(1/2)
P2=(B^2-(K0×n2)^2)^(1/2)
hK=m×pi+artan(P0/K)+artan(P2/K)
精确求解B

我写的代码,但是出现一些问题

clear
clc
m=1;
h=1.5E-6;
n0=1.504;
n1=2.2899;
n2=1;
K0=5.927E+6;
pi=3.141592653;
syms B

K=((K0*n1)^2-B.^2).^0.5;
P0=(B.^2-(K0*n0)^2).^0.5;
P2=(B.^2-(K0*n2)^2).^0.5;
ya=m*pi+atan(P0./K)+atan(P2./K);
f=fsolve(@(B)ya-K.*h,30);


提示错误信息:
??? Undefined function or method
'full' for input arguments of
type 'sym'.

Error in ==> trustnleqn at 28
Fvec = full(Fvec);

Error in ==> fsolve at 378
    [x,FVAL,JACOB,EXITFLAG,OUTPUT,msgData]=...
   
Error in ==> Untitled at 16
f=fsolve(@(B)ya-K.*h,30);
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
Illusionist: 金币+20, ★★★很有帮助 2012-05-29 11:35:05
CODE:
clear
clc
m=1;
h=1.5E-6;
n0=1.504;
n1=2.2899;
n2=1;
K0=5.927E+6;
f=fsolve(@(B)func(B,K,k0,n0,n1,n2,m,h),30);
新建一个func.m的文件,写上如下代码,然后条用上面的代码
function fb=func(B,K,k0,n0,n1,n2,m,h)
K=((K0*n1)^2-B.^2).^0.5;
P0=(B.^2-(K0*n0)^2).^0.5;
P2=(B.^2-(K0*n2)^2).^0.5;
ya=m*pi+atan(P0./K)+atan(P2./K);
fb=ya-K.*h;
end

4楼2012-05-29 10:56:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

xcj3630385

木虫 (小有名气)

长江11号

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
Illusionist: 金币+10, ★★★很有帮助, 我试一下··· 2012-05-29 07:55:47
B是数组吗?我想B应该定义成符号变量。
sym(‘B’);且不能是数组乘的形式吧?
我觉得方程还是写成函数的形式比较好。
长江11号
2楼2012-05-28 23:30:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小刘8885

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
Illusionist: 金币+5 2012-05-29 11:33:05
fsolve这句里面的初值30,改一下,可能会有帮助。改成比较接近的值,会加快逼近速度。
3楼2012-05-29 10:23:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Illusionist

银虫 (正式写手)

引用回帖:
4楼: Originally posted by lijie169 at 2012-05-29 10:56:13
clear
clc
m=1;
h=1.5E-6;
n0=1.504;
n1=2.2899;
n2=1;
K0=5.927E+6;
f=fsolve(@(B)func(B,K,k0,n0,n1,n2,m,h),30);
新建一个func.m的文件,写上如下代码,然后条用上面的代码
function fb=func(B,K,k0, ...

还是有提示错误,初值改为1,5,30都不行···
Error in ==> @(B)func(B,K,k0,n0,n1,n2,m,h)


Error in ==> fsolve at 254
            fuser = feval(funfcn{3},x,varargin{:});

Error in ==> Untitled2 at 9
f=fsolve(@(B)func(B,K,k0,n0,n1,n2,m,h),1);
Caused by:
    Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue.
5楼2012-05-29 11:34:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 266求调剂 +4 阳阳哇塞 2026-03-27 4/200 2026-03-27 07:35 by wxiongid
[考研] 286求调剂 +3 lim0922 2026-03-26 3/150 2026-03-26 23:07 by 不吃魚的貓
[考研] 325求调剂 +3 Aoyijiang 2026-03-23 3/150 2026-03-26 20:46 by 不吃魚的貓
[考研] 求调剂 +8 Auroracx 2026-03-22 8/400 2026-03-26 19:55 by 不吃魚的貓
[考研] 0703化学/290求调剂/本科经历丰富/工科也可 +7 丹青奶盖 2026-03-26 7/350 2026-03-26 19:18 by macy2011
[考研] 材料调剂 +7 匹克i 2026-03-23 7/350 2026-03-26 19:00 by 不吃魚的貓
[考研] 材料考研求调剂 +3 Dendel 2026-03-23 6/300 2026-03-26 17:51 by fmesaito
[考研] 北科281学硕材料求调剂 +17 tcxiaoxx 2026-03-20 19/950 2026-03-26 16:04 by 不吃魚的貓
[考研] 315分求调剂 +5 26考研上岸版26 2026-03-26 5/250 2026-03-26 12:11 by laoshidan
[考研] 321求调剂 +3 璞玉~~ 2026-03-25 3/150 2026-03-25 19:07 by Zhanglab-TJU
[考研] 0854人工智能方向招收调剂 +4 章小鱼567 2026-03-24 4/200 2026-03-25 13:29 by 2177681040
[考研] 材料学硕,求调剂 6+4 糖葫芦888ll 2026-03-22 9/450 2026-03-25 11:19 by greychen00
[考研] 299求调剂 +7 shxchem 2026-03-20 9/450 2026-03-25 10:41 by lbsjt
[考研] 一志愿南航材料专317分求调剂 +5 炸呀炸呀炸薯条 2026-03-23 5/250 2026-03-24 16:52 by 星空星月
[考研] 080500求调剂 +3 zzzzfan 2026-03-24 3/150 2026-03-24 16:38 by barlinike
[考研] 291求调剂 +3 HanBeiNingZC 2026-03-24 3/150 2026-03-24 16:34 by barlinike
[考研] 307求调剂 +5 超级伊昂大王 2026-03-24 5/250 2026-03-24 15:46 by 星空星月
[考研] 070300,一志愿北航320求调剂 +3 Jerry0216 2026-03-22 5/250 2026-03-23 09:16 by 。。堂堂
[考研] 一志愿华中科技大学071000,求调剂 +4 沿岸有贝壳6 2026-03-21 4/200 2026-03-22 07:21 by ilovexiaobin
[考研] 求调剂 +3 13341 2026-03-20 3/150 2026-03-21 18:28 by 学员8dgXkO
信息提示
请填处理意见