24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2837  |  回复: 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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 086502化学工程342求调剂 +4 阿姨复古不过 2026-03-27 4/200 2026-03-28 04:41 by wxiongid
[考研] 083000学硕274求调剂 +5 Li李鱼 2026-03-26 5/250 2026-03-27 23:17 by mmm just
[考研] 275求调剂 +10 Micky11223 2026-03-25 13/650 2026-03-27 22:42 by Micky11223
[考研] 085701环境工程,267求调剂 +12 minht 2026-03-26 12/600 2026-03-27 22:22 by 无际的草原
[考研] 一志愿南师大0703化学 275求调剂 +4 Ripcord上岸 2026-03-27 4/200 2026-03-27 17:00 by zhyzzh
[考研] 材料与化工085600,总分304,本科有两篇sci参与,求调剂 +10 幸运的酱酱 2026-03-22 12/600 2026-03-27 16:08 by muchong357
[考研] 283求调剂(080500) +4 A child 2026-03-27 4/200 2026-03-27 15:34 by XPU李庆
[考研] 一志愿北化085600材料专硕275|有文章专利|求调剂 +3 Micky11223 2026-03-25 3/150 2026-03-27 14:52 by 醉在风里
[考研] 一志愿郑大085600,310分求调剂 +5 李潇可 2026-03-26 5/250 2026-03-27 11:14 by 不吃魚的貓
[硕博家园] 北京林业大学硕导招生广告 +6 kongweilin 2026-03-26 8/400 2026-03-27 10:18 by FF_16
[考研] 329求调剂 +5 1() 2026-03-22 5/250 2026-03-26 20:40 by fmesaito
[考研] 材料考研求调剂 +3 Dendel 2026-03-23 6/300 2026-03-26 17:51 by fmesaito
[考研] 081700 调剂 267分 +11 迷人的哈哈 2026-03-23 11/550 2026-03-26 15:41 by zzll406
[考研] 一志愿 南京邮电大学 288分 材料考研 求调剂 +3 jl0720 2026-03-26 3/150 2026-03-26 13:39 by zzll406
[考研] 277分求调剂,跨调材料 +3 考研调剂lxh 2026-03-24 3/150 2026-03-24 13:52 by JourneyLucky
[考研] 305分求调剂(食品工程) +5 Sxy112 2026-03-21 7/350 2026-03-24 12:27 by 544594351
[考研] 一志愿国科过程所081700,274求调剂 +3 三水研0水立方 2026-03-23 3/150 2026-03-23 23:11 by MajorWen
[考研] 333求调剂 +3 ALULU4408 2026-03-23 3/150 2026-03-23 19:04 by macy2011
[考研] 280分求调剂 一志愿085802 +4 PUMPT 2026-03-22 7/350 2026-03-22 22:13 by 星空星月
[考研] 求调剂院校信息 +6 CX 330 2026-03-21 6/300 2026-03-22 15:25 by 无懈可击111
信息提示
请填处理意见