24小时热门版块排行榜    

查看: 2556  |  回复: 6

小刘8885

木虫 (正式写手)

[求助] Matalab 程序调试

下述程序运行出错,求高手指点。这是一个M文件。

function f4=func_main(name,a,q1,q2,x2,flag)
% flag=0 represent complex permittivity
% flag=1 represent complex permeability
data=load(name);
xf=data(:,1);
if (flag==0)
    y1=data(:,2)+data(:,3)*i;
elseif (flag==1)
    y1=data(:,4)+data(:,5)*i;
else
    disp('0 is complex perimittivity, 1 is complex permeability');
    return;
end

x11=func1(a,q1,y1,x2);  
%调用函数func1,求解x1
%Hanai formula 的求解结果 %求解的是x1,为绝对介电常数
x1=x11;
a=real(x1);
b=imag(x1);
c=[a,b];

x0=zeros(length(data),1);
F=fsolve(@(y2)func2(a,q2,x1,x2,y2),x0);
%调用前述func1所求得的x1,代入函数func2
%求解超越方程的y2值。
f4=F;
r = [real(f4), imag(f4)];

plotyy(xf,a,xf,b);
save('data1.txt', 'c', '-ascii');
save('data2.txt', 'r', '-ascii');

function x1=func1(a,q1,y1,x2)
x1=(q1.*x2-x2+y1.*(x2./y1).^a)./(q1+(x2./y1).^a-1);
%求解x1

function F=func2(a,q2,x1,x2,y2)
F=(((1-q2)*(x2-x1))./(x2^a)).*(y2.^a)-y2+x1;
%求解y2



另外的调用代码如下:

% Exop4
clear up;
clc;

a=1/3;
q1=0.06;
q2=0.107;
x2=3.7+0.703*i;
flag=0;
func_main('3.txt',a,q1,q2,x2,flag);
复制到command窗口就可以运行。
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : func_main.m
  • 2012-05-27 11:38:14, 945 bytes
  • 附件 2 : 3.txt
  • 2012-05-27 11:38:25, 3.1 K
  • 附件 3 : Exop4.m
  • 2012-05-27 11:39:11, 119 bytes

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

感谢参与,应助指数 +1
F里的x2^a应该点乘吧?有什么问题出什么错也不说,有几个能帮你
showmethemoney
2楼2012-05-28 09:10:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
小刘8885: 金币+1, 有帮助 2012-05-29 10:09:49
plotyy(xf,a,xf,b);这句不对吧!!!
3楼2012-05-28 13:11:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小刘8885

木虫 (正式写手)

引用回帖:
2楼: Originally posted by csgt0 at 2012-05-28 09:10:18
F里的x2^a应该点乘吧?有什么问题出什么错也不说,有几个能帮你

您可以帮我看看,改正点乘之后,运行之后显示下面的错误:
Error using trustnleqn (line 28)
Objective function is returning undefined values at initial point. FSOLVE cannot continue.

Error in fsolve (line 399)
    [x,FVAL,JACOB,EXITFLAG,OUTPUT,msgData]=...

Error in func_main (line 27)
F=fsolve(@(y2)func2(a,q2,x1,x2,y2),x0);
4楼2012-05-28 18:43:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小刘8885

木虫 (正式写手)

引用回帖:
3楼: Originally posted by lijie169 at 2012-05-28 13:11:52
plotyy(xf,a,xf,b);这句不对吧!!!

这句语句就是画一个双y轴的的图,好像没有错啊。
function f4=func_main(name,a,q1,q2,X,flag)
% flag=0 represent complex permittivity
% flag=1 represent complex permeability
data=load(name);
xf=data(:,1);
x2=X*ones(length(data),1);
if (flag==0)
    y1=data(:,2)+data(:,3)*i;
   
elseif (flag==1)
    y1=data(:,4)+data(:,5)*i;
else
    disp('0 is complex perimittivity, 1 is complex permeability');
    return;
end

x11=func1(a,q1,y1,x2);  
%调用函数func1,求解x1
%Hanai formula 的求解结果 %求解的是x1,为绝对介电常数
x1=x11;
a=real(x1);
b=imag(x1);
c=[a,b];
plotyy(xf,a,xf,b);

x0=zeros(length(data),1);
F=fsolve(@(y2)func2(a,q2,x1,x2,y2),x0);
%调用前述func1所求得的x1,代入函数func2
%求解超越方程的y2值。
f4=F;
r = [real(f4), imag(f4)];


save('data1.txt', 'c', '-ascii');
save('data2.txt', 'r', '-ascii');

function x1=func1(a,q1,y1,x2)
x1=(q1.*x2-x2+y1.*(x2./y1).^a)./(q1+(x2./y1).^a-1);
%求解x1

function F=func2(a,q2,x1,x2,y2)
F=(((1-q2)*(x2-x1))./(x2.^a)).*(y2.^a)-y2+x1;
%求解y2

我把 plotyy(xf,a,xf,b); 这一语句提到前面去是可以执行的,还画出了图。运行之后提示我问题出在 fsolve 那个语句。
5楼2012-05-28 18:46:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小刘8885: 金币+29, ★★★★★最佳答案, 果然是牛人,大才。 2012-05-29 10:09:20
x0=zeros(length(data),1);
改成x0=ones(length(data),1);
如果x0=0,y2=0,F2就无穷大了所以报错

» 本帖已获得的红花(最新10朵)

showmethemoney
6楼2012-05-29 09:21:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小刘8885

木虫 (正式写手)

送鲜花一朵
引用回帖:
6楼: Originally posted by csgt0 at 2012-05-29 09:21:27
x0=zeros(length(data),1);
改成x0=ones(length(data),1);
如果x0=0,y2=0,F2就无穷大了所以报错

果然犀利,被你点中了。问题解决了,谢谢!
7楼2012-05-29 10:05:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小刘8885 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +16 Ldrop2023 2026-08-13 20/1000 2026-08-20 11:07 by xskun
[基金申请] 时间戳变了,能看出什么问题? +13 基诺咪客 2026-08-17 17/850 2026-08-20 10:43 by wangyue2015
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +55 医学老男孩 2026-08-13 125/6250 2026-08-20 09:02 by 医学老男孩
[基金申请] 今天基金会出结果吗?20260819 +14 kkkl_v 2026-08-19 15/750 2026-08-20 08:21 by sunzitan
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜没戏了吧 +4 yuleib84 2026-08-19 5/250 2026-08-19 19:52 by hhs666
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] filecode=后面第一个是大写字母 +10 wangze12014 2026-08-14 12/600 2026-08-19 16:56 by 苦难博士
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
信息提示
请填处理意见