MATLAB里面求两相交三维曲面交线的画法

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:14:33
原题是这样的,将z1=x.^2+2*y.^2与z2=a的曲面图形和交线图形分别画在两张图上(用subplot)
我的程序是这样的:
[x,y]=meshgrid(-3:0.125:3);
z1=x.^2+2*y.^2;
subplot(2,1,1);
mesh[x,y,z1];
hold
z2=0*x+0*y+15;(取a=15)
mesh[x,y,z2];
subplot(2,1,2);
接下来的交线图 我不知道怎么画了
用plot3?或者其他什么函数直接就能用?

还有一个问题:要求自己编一个函数 用input输入一个函数,然后求其一阶导跟2阶导,然后分别作图。
我的程序是:
function answer=Myinput()
y=input('please input a f(x)','s'); (这里奇怪的是,我的7.0有时能直接用input读入函数 不需加‘s’,而有时必须加 ‘s ’)
x=sym('x');
df=diff(y,x);
df2=diff(df,x);
x=-5:0.1:5;
plot(x,df,'-r'x,df2,'-g');
但是报错 说 x不能从sym转到double 怎样处理
感激不尽

[x,y]=meshgrid(-3:0.01:3);
z=x.^2+2*y.^2;
i=find(z>=15.1);
z(i)=NaN;
j=find(z<=14.9);
z(j)=NaN;
mesh(x,y,z);
zlim([0 30]);
这个就是近似得到交线的程序
另一个问题:
user_entry = input('prompt', 's')将输入的user_entry当作一个文本变量,而不是作为一个数值或变量名称,或者他是当作一个符号变量处理。
user_entry = input('prompt')是将输入的user_entry当作一个数值,参与运算。
二者是有区别的。
这个问题的代码如下:
function answer=Myinput()
y=input('please input a f(x)','s');
x=sym('x');
df=diff(y,x);
df2=diff(df,x);
subplot(2,1,1);ezplot(df,[-5 5]);
subplot(2,1,2);ezplot(df2,[-5 5]);