经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
MATLAB等数学软件专版
求高手帮忙解决为什么这两个程序无法运行呢
楼主
ntf198602
4153
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等数学软件专版
经管高考
计量经济学与统计软件
真实世界经济学(含财经时事)
企业文化
金融学(理论版)
热门文章
【同程商旅】中国企业出海差旅研究报告
“十四五”能源发展成就报告
智算无界AIDC的超越和重构2025
当社科基础理论重大理论发现的时候
【10+指标】2007-2024年上市公司污染物排放 ...
【24重磅,自用整理!】2000-2024上市公司投资 ...
2025年我国医药航空冷链发展现状与趋势展望 ...
是相信人工智能?还是否定人工智能?相信就 ...
ibm-AI时代的银行业-以AI驭险,更须为AI设防 ...
CNNIC-生成式人工智能应用发展报告(2025)
推荐文章
AI狂潮席卷学术圈,不会编程也能打造专属智 ...
10月重磅来袭|《打造Coze/Dify专属学术智能 ...
最快1年拿证,学费不足5W!热门美国人工智能 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群