matlab三个变量图形显示出来,各位matlab高手,如何从2个3元方程中消去一个变量,然后做3维图形~...

导航:网站首页 >

各位matlab高手,如何从2个3元方程中消去一个变量,然后做3维图形~

时间:2019-3-3

各位matlab高手,如何从2个3元方程中消去一个变量,然后做3维图形~

有两个方程关于xyz的方程

方程1为R=f(x,y,z)形式的方程,方程2为 f(x,y,z)=0形式的方程

我想联合2个方程,消去方程1中的y,使方程1变成R=f(x,z)的形式,然后做关于R,x,z的3维图形

具体的方程我发到百度空间里面了,方程贴不上来

地址在这里

相关问题:

匿名网友:

近段时间不知道怎么原因,校园网不能访问百度空间,所以你的问题我没法看.

后来用手机打开看的,虽然费了一些波折,但总还是看到了.

对这个问题,其实用我之前在下面这个提问中说到的方法解决并不困难:

当时我说到“无解时会报错(可通过try...catch结构处理)”,但没进一步做,现在正好通过这个例子给你演示一下.

顺便问一下,现在的f(x,y,z)=0方程与之前在这个提问中的不一样?

我开始的时候用上面说的方法去做,求出来的结果画出图来看上去和以前的差别很大,还以为是方法有问题呢,后来仔细看,原来方程变了.

仍然用这个帖子里的方法:

取不同的z值画x-y曲线,现在的方程f(x,y,z)=0得到的一组x-y曲线如下:

03a61a3b1d3ba4b37840573ca1e36398.jpg

从图中可见,x和y之间有很好的线性程度(甚至斜率都差别不大).这个特点也可以作为你进一步研究的参考.

下面是程序和绘图结果(全部代码保存一个文件中运行).

function zd

N= 10;

x = linspace(eps, 0.000001-eps, N);

z = linspace(1,50000, N);

[x, z] = meshgrid(x, z);

y = arrayfun(@f_xz, x, z);

% 方程1:R=f(x,y,z)

R=(-2.*pi.*0.05415./(2.*x)).*(1./2.*(((1820-1000).*z.*9.8./...

0.05415)).*(y.^2.*(x-y./3)-4./3.*((2000-1000)./(1820-...

1000)).*x.^3-(((2.*x-y).*y).^0.5).^2.*((-2.* ((((2.*x-...

y).*y).^0.5)./x).*(((((2.*x-y).*y).^0.5)./x.*cos(5.*pi...

/6)+((x.^2-(((2.*x-y).*y).^0.5).^2).^0.5./x).*sin(5.*pi...

/6))).*0.05415./(1820.*x.^2.*z.*9.8)-(4./3).*2000./1820+...

(2./3-((x.^2-(((2.*x-y).*y).^0.5).^2).^0.5./x)+(1./3).*...

(((x.^2-(((2.*x-y).*y).^0.5).^2).^0.5./x)).^3)+1000./...

1820.*(2./3+((x.^2-(((2.*x-y).*y).^0.5).^2).^0.5./x)-...

(1./3).*(((x.^2-(((2.*x-y).*y).^0.5).^2).^0.5./x)).^3))...

.*x./((1000/1820-1).* ((((2*x-y).*y).^0.5)./x).^2)))).^2;

clf

mesh(x, z, R);

view(-150,35)

xlabel('x')

ylabel('z')

zlabel('R')

% 由方程2:f(x,y,z)=0,计算y=g(x,z)

function y0 = f_xz(x0, z0)

syms x y z

f=1/2*((1820-1000)*z*9.8/0.05415)*(y^2*(x-y/3)-4/3*((2000-...

1000)/(1820-1000))*x^3-(((2*x-y)*y)^0.5)^2*((-2*((((2*...

x-y)*y)^0.5)/x)*((((2*x-y)*y)^0.5)/x*cos(5*pi/6)+((x^2-...

(((2*x-y)*y)^0.5)^2)^0.5/x)*sin(5*pi/6))*0.05415/(1820*...

x^2*z*9.8)-(4/3)*2000/1820+(2/3-((x^2-(((2*x-y)*y)^0.5)...

^2)^0.5/x)+(1/3)*(((x^2-(((2*x-y)*y)^0.5)^2)^0.5/x))^3)...

+1000/1820*(2/3+((x^2-(((2*x-y)*y)^0.5)^2)^0.5/x)-(1/3)...

*(((x^2-(((2*x-y)*y)^0.5)^2)^0.5/x))^3))*x/((1000/1820-...

1)* (((((2*x-y)*y)^0.5)/x))^2)))-(((2*x-y)*y)^0.5*...

sin(acos(y/x-1)-(5*pi/6)));

% 对给定x、z,求解y

% 使用try...catch结构避免方程无解时出错,如果无解,则返回NaN

try

y_xz = @(x0,z0) fzero( @(y0) double(subs(f,{x,y,z}, ...

{x0,y0,z0})), [0 x0], optimset('TolFun', eps));

y0 = y_xz(x0, z0);

catch

disp(lasterr);

y0 = NaN;

end

f82b73485946bdecb5380adccaffd549.jpg

大家还关注:

1551776068436请问高手,谁会matlab解二元或三元二次方程

2个答案  提问时间: 2006-06-01  15个赞

问题说明:请具体一点 谢谢

回答:[x,y]=solve('x^2+2*y^2=17','x^2-x*y+y^2=7','x,y') 运行结果:x = [ -3] [ 3] [ 1/3*3^(1/2)] [ -1/3*3^(1/2)] y = [ -2] [ 2] [ 5/3*3^(1/2)] [ -5/3*3^(1/2)]2006-6-1

问题推荐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值