作业帮 > 综合 > 作业

在matlab中画m的曲线,方程式如:m=1/sqrt({1+[(1/k)*[1-(1/x)^2]}^2+{[x-(1/

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/15 15:45:51
在matlab中画m的曲线,方程式如:m=1/sqrt({1+[(1/k)*[1-(1/x)^2]}^2+{[x-(1/x)]*Q}^2) 变量为k x Q
现在我先让k 和Q为常数,如k=7,Q=3,然后做m与x的图像
程序如下:
x=0:0.01:2
Q=3
k=7
c=1./x
a=1+(1/7)*(1-c.^2)
b=(x-1./x).*Q
c=sqrt(a.^2+b.^2)
m=1./c
plot(x,m,'r')
[maxm,maxx]=max(m)
[minm,minx]=min(m)
hold on
plot(x(maxx),maxm,'b*')
hold on
text(x(maxx),maxm,num2str(maxm))
我的问题是:让K为常数,比如K=7,使Q=0.1、 0.2、 0.3、 0.4  1等任意的数,如何编程绘制这样的曲线。就是在同一坐标系下绘制Q=0.1、 0.2、 0.3、 0.4  1等数条曲线,横坐标还是x,纵坐标还是m。
在matlab中画m的曲线,方程式如:m=1/sqrt({1+[(1/k)*[1-(1/x)^2]}^2+{[x-(1/
将下面文件保存为函数文件s.m
function s(Q)
x=0:0.01:2;
k=7;
c=1./x;
a=1+(1/7)*(1-c.^2);
b=(x-1./x).*Q;
c=sqrt(a.^2+b.^2);
m=1./c;
[maxm,maxx]=max(m);
[minm,minx]=min(m);
plot(x,m,'r')
hold on
plot(x(maxx),maxm,'b*')
hold on
text(x(maxx),maxm,num2str(maxm))
然后在命令窗口或其他M文件中调用即可.
>> s(0.1)
>> s(0.2)
>> s(0.3)

再问: 请问怎么写这个调用函数啊?
再答: 你可以直接在comman window里面输入s(0.1)运行,再输入s(0.2)运行。。依次进行就行了。 也可以新建M文件,在里面输入 s(0.1) s(0.2) s(0.3) 然后运行也能实现。