经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
MATLAB等数学软件专版
求高手帮忙解决为什么这两个程序无法运行呢
楼主
ntf198602
4292
12
收藏
2011-03-24
clear;clc;close all
[p,As] =deal(8,0.8);
[m,s] = deal(120,10);
lam =@(q)(2*p*(1-arrayfun(@(t)quad(@(x)normpdf(x,m,s),0,t),q))-(2+As)*p*q.*normpdf(q,m,s))./2;
q =linspace(1,10000);
qq=interp1(lam(q),q,0.8)
[c,As] =deal(2,0.8);
[m,s] = deal(120,10);
lam =@(q)2*c./(2*(1-arrayfun(@(t)quad(@(x)normpdf(x,m,s),0,t),q))-(2+As)*q.*normpdf(q,m,s));
q = 1:0.01:100;
qq=interp1(lam(q),q,7.8)
它老是出现说:??? Error using ==> interp1
The values of X should be distinct.
请问这是怎么回事啊
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
沙发
小可儿
2011-3-24 09:48:22
1#
ntf198602
第二个程序中将qq=interp1(lam(q),q,7.8) 改为 qq=interp1(q,lam(q),7.8), 再试试!
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
藤椅
小可儿
2011-3-24 09:52:10
1#
ntf198602
第一个程序 将qq=interp1(lam(q),q,0.8) 改为 qq=interp1(q,lam(q),1.8)。 这是因为YI = INTERP1(X,Y,XI) ,您将自变量和因变量弄混了,另外,0.8不在您的差值区间内,可以将0.8修改为1到10000之间的任何一个数,程序就可以顺利执行了。祝您成功!
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
板凳
ntf198602
2011-3-24 10:00:02
非常感谢小可儿,但是下面的程序为什么可以运行呢?我就是模仿他的,里面的qq = interp1(lam(q),q,0.8),跟我的一样啊
clear;clc;close all
[p,c] =deal(8,2);
[m,s] = deal(120,10);
lam = @(q) (2*p*(1-arrayfun(@(t)quad(@(x)normpdf(x,m,s),0,t),q))-2*c)./(p*q.*normpdf(q,m,s)) -2;
q = linspace(1,100);
semilogy(q,lam(q));
qq = interp1(lam(q),q,0.8)
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
报纸
ntf198602
2011-3-24 10:12:57
上面那个例子中,我搞不清楚qq = interp1(lam(q),q,0.8)的真正意思,是当lam(q)=0.8时,求q的值吗?而如果是qq=interp1(q,lam(q),0.8),此时是不是求当q=0.8时,lam(q)呢?我其实是想求前一种,即当lam(q)=0.8时,求q的值。不知我上面的两个程序是否可以达到这个目的。如果改该怎么改呢?谢谢了
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
地板
小可儿
2011-3-24 10:38:52
5#
ntf198602
呵呵!!你的理解:qq = interp1(lam(q),q,0.8)的真正意思,是当lam(q)=0.8时,求q的值,是正确的。我刚回答的匆忙了点,搞错了,两个地方都 不用改!
真正问题可能就出在lam的表达式上面,你看下lam和q的曲线图(plot(lam(q),q))就知道问题了。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
点击查看更多内容…
7楼
ntf198602
2011-3-24 10:47:26
您好,我的图画出来了。如下,这有什么问题啊。我看不出来啊。对了,您能告诉我您的QQ吗?这样我请教您就方便点了
附件列表
clip_image002.gif
原图尺寸 1.59 KB
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
8楼
小可儿
2011-3-24 10:58:02
7#
ntf198602
[p,As] =deal(8,0.8);
[m,s] = deal(120,10);
lam =@(q)(2*p*(1-arrayfun(@(t)quad(@(x)normpdf(x,m,s),0,t),q))-(2+As)*p*q.*normpdf(q,m,s))./2;
q =linspace(1,10000);
plot(lam(q),q)
图示是这个:
显然,当lam(q)=0.8时,q的值不止一个,所以才报错!上班时间,部方便QQ!
附件列表
002.jpg
原图尺寸 48.27 KB
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
9楼
ntf198602
2011-3-24 11:12:55
您好,非常感谢。是不是插值只能对单调函数进行,如果出现了非单调的就会出现上述错误提示呢?如果是这样的话,我可以将其限制在某个范围之内呀。那样该怎么办呢?反正我就是要求出一个值出来。不行吗?
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
10楼
qibbxxt
2011-3-24 14:51:48
插值只能是对单调函数了,如果非单调,就会出现2义性
也可以用求解方程的办法求解的
复制代码
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
11楼
ntf198602
2011-3-24 15:20:31
非常感谢楼上的解答
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
12楼
ntf198602
2011-3-24 18:40:39
好的,非常感谢
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
13楼
matlab-007
2016-7-25 19:44:06
[c,As] =deal(2,0.8);
[m,s] = deal(120,10);
lam =@(q,s0)2*c./(2*(1-arrayfun(@(t)quad(@(x)normpdf(x,m,s),0,t),q))-(2+As)*q.*normpdf(q,m,s))-s0;
qq = fsolve(@(q)lam(q,7.8),100)
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
选修课作业,寻求高手。。。。急啊!
求高手~~~~
求救,以下程序为什么出错
求高手解题,谢谢啦,急
求高手给求解个式子 含泪跪求
求高手帮我下载
求助,资料转置问题,求高手指教,感激不盡!!!!!!!!!
求高手帮助
累加问题,求高手指教,感激不尽!!!!
跪求高手指导赋值程序
栏目导航
MATLAB等数学软件专版
学术道德监督
爱问频道
休闲灌水
华北地区(京津冀晋内蒙古)
经管文库(原现金交易版)
热门文章
CDA数据分析脱产就业班于2026年3月7日开班! ...
Measure Theory for Analysis and Probabil ...
2025中国可持续消费报告
现代数学基础19 偏微分方程 孔德兴
科研时间70%耗在“下载-复制-粘贴”?零代码 ...
精准匹配,菁英相伴--经管之家单身俱乐部, ...
CDA数据分析师:商业数据分析实践的核心执行 ...
我该如何记住你?智能体记忆系统的演化之路
CDA 认证考试大纲 2025 重磅更新:一二级考 ...
Stata 19.0 Win 安装文件
推荐文章
2026JG学术冬训营:从Stata初高到Python机器 ...
【必看】【本版版规,欢迎发悬赏贴求助】
26年寒假天津站|Gemini论文写作&数据分析 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群