24小时热门版块排行榜    

查看: 1302  |  回复: 7

lkcool7

新虫 (初入文坛)

[求助] 运行matlab程序中自定义函数时出问题了,还请大神帮忙!谢谢 已有1人参与

我自定义了三个函数Y1(),Y2(),Y3(),三个函数只是内部参数k发生变
在这里我给出Y1()代码

function h=Y1(x)

%参数
k=0.1884;l=25.5;pA=1070;
u=cosh(k*x)+cos(k*x)-((sinh(k*x)+sin(k*x))*(cosh(k*l)-cos(k*l)))/(sinh(k*l)-sin(k*l));

a=sqrt(pA*eval(int(u^2,x,0,l)));
h=u/a;

下面是主程序,目的在于绘出Y1,Y2,Y3曲线图。
clear
clc
x=0.1:0.1:25.5;

for m=1:1:255
y1(m)=Y1(x(m));
end
for m=1:1:255
y2(m)=Y2(x(m));
end
for m=1:1:255
y3(m)=Y3(x(m));
end
plot(x,y1);
hold on
plot(x,y2);
hold on
plot(x,y3);
hold on

运行是程序在调用Y1()时出错,提示为

??? Undefined function or method 'int' for input arguments of type 'double'.

Error in ==> Y1 at 4
a=sqrt(pA*eval(int(u^2,x,0,l)));

Error in ==> zhenxing at 6
y1(m)=Y1(x(m));

也就是在Y1()中调用int积分函数时出错,为什么会这样啊?????如果我将a=sqrt(pA*eval(int(u^2,x,0,l)));提前算出,直接将这行替换为a=169.2216;却可以运行,并最后绘制出我要的曲线。但是在我自己定义的函数中调用int()居然会出错?求大神帮助! 谢谢
回复此楼

» 猜你喜欢

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

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

转基因奔奔

金虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
你的u是一个数,不是一个表达式,对一个数怎么积分嘞?
2楼2015-11-13 09:31:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lkcool7

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 转基因奔奔 at 2015-11-13 09:31:55
你的u是一个数,不是一个表达式,对一个数怎么积分嘞?

u=cosh(k*x)+cos(k*x)-((sinh(k*x)+sin(k*x))*(cosh(k*l)-cos(k*l)))/(sinh(k*l)-sin(k*l));
这个是u的定义,是以x为自变量的函数啊
3楼2015-11-13 12:15:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

转基因奔奔

金虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★
lkcool7: 金币+5, ★★★很有帮助 2015-11-16 09:57:06
你的x是以输入变量的形式带入的,每次循环都是以一个数作为x输入的。MATLAB会自动解算出u的数值,而不是把u当做一个表达式
4楼2015-11-13 16:52:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫zb

木虫 (正式写手)

楼主最好把公式和你想解决的问题完整的放上来
5楼2015-11-13 20:59:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lkcool7

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by 转基因奔奔 at 2015-11-13 16:52:07
你的x是以输入变量的形式带入的,每次循环都是以一个数作为x输入的。MATLAB会自动解算出u的数值,而不是把u当做一个表达式

谢谢回答,我已解决了问题,确实发觉函数Y1(x)中的u为数值而非符号表达式。然后我建立了符号变量 syms  x k l 将int(u,x,0,l) 计算出来
下面是我解决问题后的代码
function h=Y1(x)
k=0.1884;l=25.5;pA=1070;

u=cosh(k*x)+cos(k*x)-((sinh(k*x)+sin(k*x))*(cosh(k*l)-cos(k*l)))/(sinh(k*l)-sin(k*l));

%p为符号积分int(u^2,x,0,l)结果,为符号表达式
p=1/4*-4*cosh(k*l)*cos(k*l)^2*exp(3*k*l)-4*sin(k*l)^2*cosh(k*l)*exp(3*k*l)+4*sinh(k*l)*cos(k*l)^3*exp(2*k*l)-sin(k*l)*sinh(k*l)-cosh(k*l)*cos(k*l)+cosh(k*l)^2-4*cos(k*l)^3*exp(k*l)+8*sin(k*l)*sinh(k*l)*k*exp(2*k*l)*l+4*exp(2*k*l)*sinh(k*l)*sin(k*l)^2*cos(k*l)+4*sin(k*l)^2*cos(k*l)*exp(3*k*l)-4*sin(k*l)^2*cos(k*l)*exp(k*l)+4*cos(k*l)^3*exp(3*k*l)-exp(4*k*l)*cosh(k*l)^2+4*sinh(k*l)*cosh(k*l)*exp(3*k*l)*sin(k*l)+4*cosh(k*l)*cos(k*l)*exp(3*k*l)*sin(k*l)-4*sinh(k*l)*cosh(k*l)*sin(k*l)*exp(k*l)-4*exp(2*k*l)*cosh(k*l)^2*k*l-4*sinh(k*l)*cosh(k*l)*cos(k*l)^2*exp(2*k*l)+4*cosh(k*l)*cos(k*l)*sin(k*l)*exp(k*l)+4*exp(2*k*l)*cos(k*l)^2*k*l+exp(4*k*l)*sinh(k*l)*cosh(k*l)+exp(4*k*l)*sinh(k*l)*sin(k*l)+exp(4*k*l)*sin(k*l)*cos(k*l)-exp(4*k*l)*sin(k*l)*cosh(k*l)+4*sin(k*l)^2*cosh(k*l)*exp(k*l)-4*cosh(k*l)^2*sin(k*l)*exp(k*l)+exp(4*k*l)*cosh(k*l)*cos(k*l)-exp(4*k*l)*sinh(k*l)*cos(k*l)-4*cosh(k*l)^2*exp(3*k*l)*sin(k*l)+4*cosh(k*l)*cos(k*l)^2*exp(k*l)+4*sin(k*l)^2*sinh(k*l)*exp(k*l)+4*sin(k*l)^2*sinh(k*l)*exp(3*k*l)+sinh(k*l)*cosh(k*l)-sinh(k*l)*cos(k*l)-sin(k*l)*cosh(k*l)+sin(k*l)*cos(k*l)+2*exp(2*k*l)*sin(k*l)*cos(k*l)-2*exp(2*k*l)*sin(k*l)*cosh(k*l)+2*exp(2*k*l)*sinh(k*l)*cosh(k*l)-2*exp(2*k*l)*sinh(k*l)*cos(k*l))/k/(-cosh(k*l)^2+cos(k*l)^2+2*sin(k*l)*sinh(k*l))*exp(-2*k*l);

a=sqrt(pA*p);
h=u/a;
6楼2015-11-16 10:05:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanshuiting

新虫 (正式写手)

引用回帖:
3楼: Originally posted by lkcool7 at 2015-11-13 12:15:17
u=cosh(k*x)+cos(k*x)-((sinh(k*x)+sin(k*x))*(cosh(k*l)-cos(k*l)))/(sinh(k*l)-sin(k*l));
这个是u的定义,是以x为自变量的函数啊...

楼上说的是对的,x和u是符号变量,才能使用 int()函数,你的代码里面一是没有进行定义,二是你把它理解成常数了。所以会报错,找不到该函数(你把int函数用错了)

发自小木虫Android客户端
7楼2015-11-16 10:17:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

getengqing

木虫 (正式写手)

函数调用有问题
一起交流学习/分享优秀资源
8楼2015-11-16 11:41:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lkcool7 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 gy1nBQXYQJqL 2026-08-29 5/250 2026-08-29 21:44 by 4qO8zhfjr2AX
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-29 21:22 by 4qO8zhfjr2AX
[基金申请] 投票:  有多少人是今天查系统知道结果的? +16 爱看书的可乐 2026-08-26 18/900 2026-08-29 20:07 by winsaint
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 gy1nBQXYQJqL 2026-08-29 3/150 2026-08-29 18:26 by 4FFAWE8HcgUD
[基金申请] 有没有仍没收到信息的 +5 德尚中行 2026-08-27 6/300 2026-08-29 18:10 by manplx
[基金申请] 为什么到现在没收到通知? +4 tannykie 2026-08-29 4/200 2026-08-29 17:14 by lmz0216
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ASdOkHsho7FD 2026-08-28 4/200 2026-08-29 14:13 by jCd0dEvKHShX
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:51 by jCd0dEvKHShX
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:40 by jCd0dEvKHShX
[教师之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 ASdOkHsho7FD 2026-08-28 7/350 2026-08-29 09:26 by G6APbkg8SA6w
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 基金不中,共勉 +11 eulota 2026-08-26 11/550 2026-08-28 14:22 by 火星超人xi
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 基金未中,这种答复是模板吗? +5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
信息提示
请填处理意见