Matlab定义函数

问题描述 投票:1回答:1

我有一个物理方程P =(nRT / V-nb)-(an ^ 2 / V ^ 2)

其中n,b,a,R是常数,V,T是自变量

构造匿名函数的问题(压力)> P然后创建一个名为(vanderWall)的脚本函数,该函数返回P,V,T并为10个T值绘制(P,V,T)的网格轮廓图和(P,V)的图。]

该函数应以nT步长生成极限值为T1至T2的T,还应以nV步长生成极限值为V1至V2的V

将这些值用于实际输出T1 = 77 T2 = 800 nT = 10 V1 = 35 V2 = 200 nV = 150 n = 1 a = 55.37 b = 30.4

我尝试过此代码没有提供有用的答案

%constants
n=1;
a=55.37;
b=30.4;
R=8.314;

%anonymous function of independent variables V and T
Pressure=@(V,T) ((n*R.*T)./(V-n*b))-((a*n^2)./V.^2);

[P,V,T]=vanderWall(Pressure,77,800,10,35,200,150,1,55.37,30.4);

%function to return Pressure,Volume and Temperature
function[P,V,T]=vanderWall(Pressure,T1,T2,nT,V1,V2,nV,varargin)

%Volume and temperature generatd by function
T=T1:nT:T2;
V=V1:nV:V2;
P=Pressure(V,T);

%mesh contour plot between T,V and P
meshc(T,V,P)

%plot of V and P (isotherms)
plot(V,P)

end

我有一个物理方程P =(nRT / V-nb)-(an ^ 2 / V ^ 2),其中n,b,a,R是常数,V,T是自变量。函数(压力)> P,然后...

matlab function plot contour anonymous
1个回答
0
投票

也许您可以尝试下面的代码来使用函数vanderWall,其中[T,V]=meshgrid(t,v)是使代码运行的关键步骤


0
投票

问题是,在您的函数中,您同时使用了VT作为向量。使用匿名函数的方式尚不清楚,哪个T除以​​哪个V。我想您需要所有组合-然后您可以在匿名函数中将V替换为V'

© www.soinside.com 2019 - 2024. All rights reserved.