matlab中求解完方程组后怎样做三维图?(af作为X轴,a作为Y轴,p作为Z轴)文件trt.m,程序如下:function trtfsolve(@myfun,[100,10])function f=myfun(x)p=x(1);%作为Z轴t=x(2);%中间变量a=0.1;%作为Y轴,范围a=(0:0.05:2)af=8
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/24 07:01:45
![matlab中求解完方程组后怎样做三维图?(af作为X轴,a作为Y轴,p作为Z轴)文件trt.m,程序如下:function trtfsolve(@myfun,[100,10])function f=myfun(x)p=x(1);%作为Z轴t=x(2);%中间变量a=0.1;%作为Y轴,范围a=(0:0.05:2)af=8](/uploads/image/z/8550540-36-0.jpg?t=matlab%E4%B8%AD%E6%B1%82%E8%A7%A3%E5%AE%8C%E6%96%B9%E7%A8%8B%E7%BB%84%E5%90%8E%E6%80%8E%E6%A0%B7%E5%81%9A%E4%B8%89%E7%BB%B4%E5%9B%BE%3F%EF%BC%88af%E4%BD%9C%E4%B8%BAX%E8%BD%B4%2Ca%E4%BD%9C%E4%B8%BAY%E8%BD%B4%2Cp%E4%BD%9C%E4%B8%BAZ%E8%BD%B4%EF%BC%89%E6%96%87%E4%BB%B6trt.m%2C%E7%A8%8B%E5%BA%8F%E5%A6%82%E4%B8%8B%EF%BC%9Afunction+trtfsolve%28%40myfun%2C%5B100%2C10%5D%29function+f%3Dmyfun%28x%29p%3Dx%281%29%3B%25%E4%BD%9C%E4%B8%BAZ%E8%BD%B4t%3Dx%282%29%3B%25%E4%B8%AD%E9%97%B4%E5%8F%98%E9%87%8Fa%3D0.1%3B%25%E4%BD%9C%E4%B8%BAY%E8%BD%B4%2C%E8%8C%83%E5%9B%B4a%3D%280%3A0.05%3A2%29af%3D8)
matlab中求解完方程组后怎样做三维图?(af作为X轴,a作为Y轴,p作为Z轴)文件trt.m,程序如下:function trtfsolve(@myfun,[100,10])function f=myfun(x)p=x(1);%作为Z轴t=x(2);%中间变量a=0.1;%作为Y轴,范围a=(0:0.05:2)af=8
matlab中求解完方程组后怎样做三维图?(af作为X轴,a作为Y轴,p作为Z轴)
文件trt.m,程序如下:
function trt
fsolve(@myfun,[100,10])
function f=myfun(x)
p=x(1);%作为Z轴
t=x(2);%中间变量
a=0.1;%作为Y轴,范围a=(0:0.05:2)
af=8;%作为X轴,范围af=(0:2:88)
kc=1.2; %定值
b=5;%定值
k1=(p)*cosd(af)*cosd(af)*(pi*a)^0.5;
k2=b*sind(af)*cosd(af)*(pi*a)^0.5;
f(1)=t+acosd((3*k2^2+k1*(k1^2+8*k2^2)^0.5)/(k1^2+9*k2^2));%方程1
f(2)=k1*(cosd(t/2))^3-1.5*k2*sind(t)*cosd(t/2)-kc;%方程2
输出三列的矩阵数组,作出三维面图和等值线图.
matlab中求解完方程组后怎样做三维图?(af作为X轴,a作为Y轴,p作为Z轴)文件trt.m,程序如下:function trtfsolve(@myfun,[100,10])function f=myfun(x)p=x(1);%作为Z轴t=x(2);%中间变量a=0.1;%作为Y轴,范围a=(0:0.05:2)af=8
kc=1.2; %定值
b=5;%定值
k1=@(x,a,af) x(1).*cosd(af).*cosd(af).*(pi*a).^0.5;
k2=@(a,af,b) b*sind(af).*cosd(af).*(pi*a).^0.5;
f=@(x,a,af,kc,b)[x(2)+acosd((3*k2(a,af,b).^2+k1(x,a,af).*(k1(x,a,af).^2+8*k2(a,af,b).^2).^0.5)./(k1(x,a,af).^2+9*k2(a,af,b).^2));%方程1
k1(x,a,af).*(cosd(x(2)/2)).^3-1.5*k2(a,af,b).*sind(x(2)).*cosd(x(2)/2)-kc;];%方程2
op=optimset('display','off');
Va=0.4:0.2:2;
Vaf=0:2:88;
[Ma Maf]=meshgrid(Va,Vaf);
Mp=zeros(size(Ma));
for i=1:length(Vaf)
for j=1:length(Va)
tp=fsolve(f,[80 -20],op,Ma(i,j),Maf(i,j),kc,b);
Mp(i,j)=tp(1);
end
end
surf(Ma,Maf,Mp)
xlabel('a')
ylabel('af')
注意:
1、我把你的代码用句柄包装了,这样能加快运行速度.
2、a在0附近时,会有较大的计算误差,所以讲a的下限取为0.4.若仍需要从零开始计算,可以将Va改为:
Va=eps:0.2:2;