查看: 94|回复: 2|关注: 0

[已解决] 三个自变量非线性函数绘图

[复制链接]

新手

34 麦片

财富积分


050


0

主题

1

帖子

0

最佳答案
请问各位大佬,一个含三个自变量的非线性函数应该怎么绘图来描述。
我现在的想法是,三个自变量假设各自有100组取值,x,y,z则分别是100维向量,对应三个坐标轴。则函数f(x,y,z)就应该有100^3组结果,各自对应于一个坐标。所以我将x,y,z和f的值分别列成了1*100维向量和100*100*100维的矩阵,请问有什么方法或者函数可以描述在坐标轴下,f的一个变化情况吗。


                               
登录/注册后可看大图

假设我的函数是f = 10*ln(x) + 0.423*ln(y) + 9*ln(z) - 13/x - 21/y - 5/z;

f = zeros( 100, 100, 100 );

for x = 0.01 : 0.01 : 1
    for y = 0.01 : 0.01 : 1
        for z = 2.02 : 0.02 : 4
            f(round(x*100), round(y*100), round((z-2)*50)) = (10*log(x)+0.423*log(y)+9*log(z)) -( 13/x + 21/y + 5/z );                                       
        end
    end
end

MATLAB 基础讨论
版块优秀回答者

入门

124 麦片

财富积分


50500


0

主题

299

帖子

26

最佳答案
  • 关注者: 6
发表于 7 天前 | 显示全部楼层 |此回复为最佳答案
解答如下
clear all;
clc;
[x,y,z] = meshgrid(0.01:0.01:1,0.01:0.01:1,2.02:0.02:4);
c = 10*log(x)+0.423*log(y)+9*log(z)-13./x-21./y-5./z;
xs = 0.01:0.01:1;
ys = xs;
zs = 2.02:0.02:4;

h = slice(x,y,z,c,xs,ys,zs);
set(h,'FaceColor','interp',...
    'EdgeColor','none')
camproj perspective
box on
view(-70,70)
colormap hsv
colorbar

新手

34 麦片

财富积分


050


0

主题

1

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
wjb986555360 发表于 2018-10-11 09:05
解答如下
clear all;
clc;

感谢解答!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表