24小时热门版块排行榜    

查看: 2825  |  回复: 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的回帖

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的回帖

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的回帖

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的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

感谢参与,应助指数 +1
求一个B用solve就行了
B=-13048834.721882891877855850939664
showmethemoney
6楼2012-05-29 11:44:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
Illusionist: 金币+15, ★★★★★最佳答案, 可是··我的matlab一直··busy····怎么办啊·· 2012-05-29 20:21:52
clear
clc
syms B
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).^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);
yaa=ya-K.*h;
yab=simplify(yaa);
f=solve(yab,B)
showmethemoney
7楼2012-05-29 11:46:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

引用回帖:
5楼: Originally posted by Illusionist at 2012-05-29 11:34:49
还是有提示错误,初值改为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 ==> U ...

看了一下,你给的源代码,func(B,K,k0,n0,n1,n2,m,h),中的第二参数给成K0,我给弄成小写的了,两个地方都得改
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

8楼2012-05-29 13:06:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

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,K0,n0,n1,n2,m,h),30);
新建一个func.m的文件,写上如下代码,然后条用上面的代码
function fb=func(B,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

这个应该是对的
9楼2012-05-29 13:08:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小刘8885

木虫 (正式写手)

六楼的同志,给的答案比较好,建议采用。
10楼2012-05-29 14:29:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Illusionist 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿重庆大学085700资源与环境,总分308求调剂 +6 墨墨漠 2026-03-23 7/350 2026-03-23 16:09 by 墨墨漠
[考研] 081700 调剂 267分 +5 迷人的哈哈 2026-03-23 5/250 2026-03-23 14:59 by lbsjt
[考研] 336求调剂 +3 收到VS 2026-03-20 3/150 2026-03-23 13:23 by Iveryant
[考研] 306求0703调剂一志愿华中师范 +6 纸鱼ly 2026-03-21 6/300 2026-03-23 12:08 by Iveryant
[考研] 336化工调剂 +3 王大坦1 2026-03-23 4/200 2026-03-23 11:07 by laoshidan
[考研] 291求调剂 +5 孅華 2026-03-22 5/250 2026-03-23 09:20 by haoshis
[考研] 308求调剂 +3 墨墨漠 2026-03-21 3/150 2026-03-22 16:54 by i_cooler
[考研] 324求调剂 +6 lucky呀呀呀鸭 2026-03-20 6/300 2026-03-22 16:01 by ColorlessPI
[考研] 285求调剂 +6 ytter 2026-03-22 6/300 2026-03-22 12:09 by 星空星月
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 4/200 2026-03-22 10:25 by QGZDSYS
[考研] 280求调剂 +11 咕噜晓晓 2026-03-18 12/600 2026-03-21 22:40 by ACS Nano——
[考研] 307求调剂 +3 余意卿 2026-03-18 3/150 2026-03-21 17:31 by ColorlessPI
[考研] 299求调剂 +4 某某某某位 2026-03-21 4/200 2026-03-21 16:30 by barlinike
[考研] 材料 336 求调剂 +3 An@. 2026-03-18 4/200 2026-03-21 01:39 by JourneyLucky
[考研] 华东师范大学-071000生物学-293分-求调剂 +3 研究生何瑶明 2026-03-18 3/150 2026-03-21 01:30 by JourneyLucky
[考研] 南京大学化学376求调剂 +3 hisfailed 2026-03-19 6/300 2026-03-20 23:43 by hisfailed
[考研] 295复试调剂 +8 简木ChuFront 2026-03-19 8/400 2026-03-20 20:44 by zhukairuo
[考研] 085600材料与化工调剂 324分 +10 llllkkkhh 2026-03-18 12/600 2026-03-19 14:33 by llllkkkhh
[考研] 有没有道铁/土木的想调剂南林,给自己招师弟中~ +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[考研] [导师推荐]西南科技大学国防/材料导师推荐 +3 尖角小荷 2026-03-16 6/300 2026-03-16 23:21 by 尖角小荷
信息提示
请填处理意见