24小时热门版块排行榜    

查看: 1263  |  回复: 14

燕尾蝶12

新虫 (小有名气)

[求助] 急求各位大神,看下我这个编程有什么问题,万分感谢 已有1人参与

这段程序作出了两个三维图形,是k和alpha关于beta和delta的。。。
clc;clear
c=1;q=10;p=5.5;
delta=0.10:0.01:1;
beta=0.55:0.005:1;
for i=1:length(delta)
for j=1:length(beta)
t=(1-delta(i)+beta(j)*delta(i))/beta(j)/delta(i)/q;
m=beta(j)*delta(i)*q;
u=m*c*t-(1-delta(i))*(p-c);
K(i,j)=1/3/m*3^(1/3)*(u^2*(9*m+3^(1/2)*(u^2+27*m^2)^(1/2)))^(1/3)-1/3*u^2/m*3^(2/3)/(u^2*(9*m+3^(1/2)*(u^2+27*m^2)^(1/2)))^(1/3)
alpha(i,j)=((K(i,j)*m+u)/2/K(i,j)/t/m;
test(i,j)=alpha(i,j)-beta(j)*delta(i);
end
end
mesh(delta,beta,K)
xlabel('\delta')
ylabel('\beta')
zlabel('K')
figure
mesh(delta,beta,alpha)
xlabel('\delta')
ylabel('\beta')
zlabel('\alpha')
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

charmantang

禁虫 (正式写手)

★ ★ ★ ★ ★
感谢参与,应助指数 +1
燕尾蝶12: 金币+5, ★★★★★最佳答案, 谢谢,很热心的回答 2014-09-04 15:54:32
本帖内容被屏蔽

3楼2014-09-02 20:02:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

charmantang

禁虫 (正式写手)

本帖内容被屏蔽

5楼2014-09-02 21:21:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

燕尾蝶12

新虫 (小有名气)

貌似,没有问题。。。。多写了一半括号,但是如何使k和alpha图像只显示它们在[0,1]区间的部分呢?希望大神能解答。。。
2楼2014-09-02 16:25:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

燕尾蝶12

新虫 (小有名气)

引用回帖:
3楼: Originally posted by charmantang at 2014-09-02 20:02:51
在figure前和最后加上set(gca,'zlim',)...

确实在图中可以体现了,但是在"array editor"窗口中为什么k和alpha还会取小于0或大于1的数呢?能不能使他们在"array editor"窗口中也是在[0,1]范围内?  谢谢啦。。。。。
4楼2014-09-02 21:13:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

燕尾蝶12

新虫 (小有名气)

引用回帖:
5楼: Originally posted by charmantang at 2014-09-02 21:21:59
那要改变K和alpha 的值,"array editor"保存的是变量...

这个。。。。我不太明白是什么意思,我是matlab新手,不好意思,那意思是不能在程序中实现上述要求吗?
6楼2014-09-02 21:39:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

燕尾蝶12

新虫 (小有名气)

引用回帖:
5楼: Originally posted by charmantang at 2014-09-02 21:21:59
那要改变K和alpha 的值,"array editor"保存的是变量...

不知道我表达的是否清楚,其实我最终的目的是除了做出三维图,还有就是判断test(i,j)的正负,您能再帮我看下下面的程序吗? 在这个程序中test(i,j)正负不定,所以才想着要使k和alpha在[0,1]范围内,这样可以筛掉不满足条件的delta(i)和beta(j)。不知道这种思路对不对?不知道您有更好的办法吗?万分感谢。。。。
clc;clear
c=1;q=10;p=5.5;
delta=0.10:0.01:1;
beta=0.55:0.005:1;
for i=1:length(delta)
for j=1:length(beta)
t=(1-delta(i)+beta(j)*delta(i))/beta(j)/delta(i)/q;
m=beta(j)*delta(i)*q;
u=m*c*t-(1-delta(i))*(p-c);
K(i,j)=1/3/m*3^(1/3)*(u^2*(9*m+3^(1/2)*(u^2+27*m^2)^(1/2)))^(1/3)-1/3*u^2/m*3^(2/3)/(u^2*(9*m+3^(1/2)*(u^2+27*m^2)^(1/2)))^(1/3);
alpha(i,j)=(K(i,j)*m+u)/2/K(i,j)/t/m;
test(i,j)=alpha(i,j)-delta(i);
end
end
mesh(delta,beta,K)
xlabel('\delta')
ylabel('\beta')
zlabel('K')
set(gca,'zlim',[0,1])
figure
mesh(delta,beta,alpha)
xlabel('\delta')
ylabel('\beta')
zlabel('\alpha')
set(gca,'zlim',[0,1])
再次感谢。。。。
7楼2014-09-02 22:31:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hytao2012

铁杆木虫 (正式写手)

木头虫子

你要给人一个规则啊,比如大于1怎么处理,小于零怎么处理。要不没办法给你回答啊
8楼2014-09-03 11:33:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

燕尾蝶12

新虫 (小有名气)

引用回帖:
8楼: Originally posted by hytao2012 at 2014-09-03 11:33:26
你要给人一个规则啊,比如大于1怎么处理,小于零怎么处理。要不没办法给你回答啊

如果是大于0呢?但是我主要是想判断啊。。。

[ 发自小木虫客户端 ]
9楼2014-09-03 12:40:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

charmantang

禁虫 (正式写手)

本帖内容被屏蔽

10楼2014-09-03 14:30:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 燕尾蝶12 的主题更新
信息提示
请填处理意见