24小时热门版块排行榜    

查看: 1124  |  回复: 11

rainman0724

银虫 (小有名气)

[求助] matlab 绘图问题 已有2人参与

求哪位大神帮忙绘下下面式子的图,不胜感激!!
hc=(2.34e-2/f^2)*ln(hc/4)
f=(5.658*x+5.431*(1-x)-5.431)/5.431
要求绘出hc~f和hc~x的图

文献给出的该式子参考图如下:

matlab 绘图问题
1.JPG
回复此楼

» 猜你喜欢

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

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

herowolf

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
rainman0724: 金币+4, 有帮助 2014-08-22 21:56:33
先求 x~f  
for x=1:n
f = ...
end

然后 定义
function hcf = myfun(hc, f)

hcf - (2.34e-2/f^2)*ln(hc/4) -hc;


再循环
for i = 1:n
hc(i) = fsolve(myfun,hc0)
end

最后
figure
plot(x,hc)
figure % same figure using hold on
plot (f,hc)

先试试看吧。
2楼2014-08-22 16:58:17
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
rainman0724: 金币+2, 有帮助 2014-08-22 21:29:53
>> ezplot('hc-(2.34e-2/f^2)*log(hc/4)')
>> ezplot('hc-(2.34e-2/((5.658*x+5.431*(1-x)-5.431)/5.431)^2)*log(hc/4)')
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
3楼2014-08-22 17:12:30
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

rainman0724

银虫 (小有名气)

引用回帖:
3楼: Originally posted by dbb627 at 2014-08-22 17:12:30
>> ezplot('hc-(2.34e-2/f^2)*log(hc/4)')
>> ezplot('hc-(2.34e-2/((5.658*x+5.431*(1-x)-5.431)/5.431)^2)*log(hc/4)')

谢谢你的回复,ezplot这种方法我试过了,但是行不通啊,得到的结果跟参考文献给出的不同。
按照您的两种方法,分别作出的图为1和2.而第二种方法作的图什么也没有。
我当初的程序如下,但作出来的图就是跟参考文献不同,不知道到底为什么,求指点?
%syms h f;
%k=solve('h=2.34/100/f^2*log(h/4)')
%ezplot(k)
%axis([0,0.04,0,40])
matlab 绘图问题-1
1.jpg

4楼2014-08-22 20:57:30
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★
rainman0724: 金币+2, 有帮助 2014-08-22 22:05:50
ezplot('hc-(2.34e-2/f^2)*log(hc/4)',[0 1 -6 6])


matlab 绘图问题-2
syms h f;
k=solve('h=2.34/100/f^2*log(h/4)','h')
ezplot(k(1))

k =

4.0/exp(1.0*lambertw(0, -(20000*f^2)/117))

matlab 绘图问题-3
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
5楼2014-08-22 21:12:40
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

rainman0724

银虫 (小有名气)

引用回帖:
2楼: Originally posted by herowolf at 2014-08-22 16:58:17
先求 x~f  
for x=1:n
f = ...
end

然后 定义
function hcf = myfun(hc, f)

hcf - (2.34e-2/f^2)*ln(hc/4) -hc;


再循环
for i = 1:n
hc(i) = fsolve(myfun,hc0)
end

最后
figure
plot(x, ...

谢谢您的回复!!
运行上述程序出错了。Undefined function or variable "hcf"

另外自变量x的范围是(0,1),一句f~x的关系算出的f的范围是(0,0.04).求高手您指点。若能将完整的程序给出,将图贴出来那就最完美了。小弟我初学,编程还不怎么在行。
6楼2014-08-22 21:49:34
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

rainman0724

银虫 (小有名气)

引用回帖:
5楼: Originally posted by dbb627 at 2014-08-22 21:12:40
ezplot('hc-(2.34e-2/f^2)*log(hc/4)',)



syms h f;
k=solve('h=2.34/100/f^2*log(h/4)','h')
ezplot(k(1))

k =

4.0/exp(1.0*lambertw(0, -(20000*f^2)/117))

...

再次感谢您的指点!!
小弟我那个问题当中,x的范围是(0,1),计算得到f范围是(0,0.04),hc是临界厚度是一个正数。
您的第二幅图跟小弟我作的一样,但都跟参考文献中的那条黑线的趋势不一样,这问题纠缠我很久了,一直找不出原因,请求指点迷津啊。
7楼2014-08-22 22:05:34
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

你看看公式x和hc含义,如果还是上面式子,那么画出的图就是上面的图
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
8楼2014-08-22 22:35:55
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

herowolf

木虫 (正式写手)

引用回帖:
6楼: Originally posted by rainman0724 at 2014-08-22 21:49:34
谢谢您的回复!!
运行上述程序出错了。Undefined function or variable "hcf"

另外自变量x的范围是(0,1),一句f~x的关系算出的f的范围是(0,0.04).求高手您指点。若能将完整的程序给出,将图贴出 ...

你函数得在相同folder里建立,

然后我觉得我这个方法可以对普通方程可以。。
但我试了你的方程,error说 fsolve 解不了。

我觉得
dbb627 方法挺好的。
9楼2014-08-23 02:57:04
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

rainman0724

银虫 (小有名气)

引用回帖:
9楼: Originally posted by herowolf at 2014-08-23 02:57:04
你函数得在相同folder里建立,

然后我觉得我这个方法可以对普通方程可以。。
但我试了你的方程,error说 fsolve 解不了。

我觉得
dbb627 方法挺好的。...

感谢您的回复,dbb627的方法在hc<=10的时候拟合的很好,但是超过10就与文献上的对不上了。还请继续指点,在下感激不尽。
10楼2014-08-23 10:34:01
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 rainman0724 的主题更新
信息提示
请填处理意见