24小时热门版块排行榜    

查看: 1592  |  回复: 4

cgl_012

银虫 (小有名气)

[求助] 根据公式能直接画图吗 已有2人参与

请教:
得到了pH与温度、压力之间关系的公式,想画pH与温度、压力之间的三维图,除了根据公式计算出一些离散的点用origin画图,有没有什么方法能直接根据公式画出三维图呀?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dabing1999

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
有公式origin可以直接三维画图的,用matrix输入方式。

发自小木虫Android客户端
2楼2015-09-28 01:00:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wake_up

木虫 (著名写手)

计算机画图,无论你用任何软件其实都是先计算出点来画的。matab可以直接给定两个量的范围,然后画。也就三五行语句。也许mathmatica更符合你喜欢的方式。都是以数学公式符号方式呈现的

发自小木虫Android客户端
扫地扫地扫心地,心地不扫空扫地,人人都把心地扫,世上无处不净地.
3楼2015-09-28 07:59:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

子慕匀

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
cgl_012: 金币+15, ★★★★★最佳答案 2015-09-28 16:13:55
可以的。把pH、温度、压力分别设为z、x、y,并假设公式为z=x^2+y^2,用MATLAB程序这样写:

clear;clc
xspan=linspace(0,50,100);  %0和50分别表示温度x取值的左右端点,100表示在取100个点来画图
yspan=linspace(1,2,100);  %类似地1和2分别表示压力y取值的左右端点,100表示在取100个点来画图
[x y]=meshgrid(xspan,yspan);  %画三维图首先得构建矩阵,这里用meshgrid命令
z=x.^2+y.^2;  %这里要注意,因为x和y都是数组,所以数组的乘除次方等用点乘除次方的形式,比如数学上 x×y,在MATLAB中得写成x.*y
surf(x,y,z);
shading interp;  %这一句可根据需要选择保留或者删除

仿照上面的程序,把你的公式写进去就可以了。
4楼2015-09-28 10:02:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

子慕匀

新虫 (初入文坛)

【答案】应助回帖

用origin也可以画出这样的三维图。需要注意的是不管用什么软件画三维图,基本前提是得获得矩阵,在知道公式的情况下只需要把x和y代入公式计算出z就可以了,用EXCEL、MATLAB都可以实现。MATLAB做起来更方便,举个例子吧,还是以4楼的公式为例。
1。把4楼的程序在MATLAB主程序窗口运行,就会在MATLAB的workspace中找到矩阵z,可以看到矩阵z是100×100维的,如图1那样。
2。双击矩阵z打开,点击左上角全选数据,如图2那样,然后右键--copy复制数据。
3。打开origin,在project explorer中空白中,右键--new window--matrix,新建一个矩阵,如图3那样。
4。origin新建的矩阵默认维度是32×32,现在需要改成100×100维。把步骤3新建的矩阵置于当前,在Origin界面顶部第5个Matrix,点击--set dimensions,此时出现如图4那样的界面。改矩阵设置,首先维度改成100×100,x范围设置为0到50,y范围设置为1到2,然后点击OK,此时如图5那样。
5。打开设置好的矩阵,在第1行第列的单位格中,右键--paste,如图6那样操作,可得到图7那样的结果。可以发现矩阵的行列都是以1,2,3……这样的数字顺序编号,x和y的具体数值没有显示来,此时可在Origin界面顶部第3个View中选择show x/y,如图8那样,操作后的结果如图9那样。
6。如图10那样全选矩阵中数据,在Origin界面顶部第4个plot--3D surface--color map surface,得到图11那样的三维图。此时speed mode开着,在Origin界面顶部第4个graph--speed mode设置把speed mode关掉,点击如图12中的按钮,把三维图形旋转到好看的角度。如果想要得到这种带网格的图形,此时就可以输出结果了。
7。如果不要这种网格图,此外由于此时网格很密集(100×100)origin生成的图形也不太美观,可作进步修饰:
7-1 双击得到的图形,打开plot details,选择color map,如图13-1,然后点击level,把其中 num. of level调大一些,默认是8,比如改成128(8的16倍),选择OK,如图13-2那样。
7-2 然后继续在plot details窗口中,选择grids,在enable grids下拉选择none。继续在plot details窗口中,选择surface/projections,把contour line对应的surface的勾去掉,如图13-4。
8。步骤7完成后,得到的图形应该是图14那样。
9。在Origin界面顶部第4个graph中选择new legend,此时出来的legend由于颜色间隔太密了很难看,如图15。此时可在该legend上点击右键--properites,把其中的label increment从默认的1调大,比如调大为10,同时把字体大小调大,比如18。
10。上述设置完成后,最终结果如图17那样。图17跟3楼MATLAB产生的三维图很像。
根据公式能直接画图吗
图1.png


根据公式能直接画图吗-1
图2.png


根据公式能直接画图吗-2
图3.png


根据公式能直接画图吗-3
图4.png


根据公式能直接画图吗-4
图5.png


根据公式能直接画图吗-5
图6.png


根据公式能直接画图吗-6
图7.png


根据公式能直接画图吗-7
图8.png


根据公式能直接画图吗-8
图9.png


根据公式能直接画图吗-9
图10.png


根据公式能直接画图吗-10
图11.png


根据公式能直接画图吗-11
图12.png


根据公式能直接画图吗-12
图13-1.png


根据公式能直接画图吗-13
图13-2.png


根据公式能直接画图吗-14
图13-3.png


根据公式能直接画图吗-15
图13-4.png


根据公式能直接画图吗-16
图14.png


根据公式能直接画图吗-17
图15.png


根据公式能直接画图吗-18
图16.png


根据公式能直接画图吗-19
图17.png

5楼2015-09-28 11:42:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cgl_012 的主题更新
信息提示
请填处理意见