matlab怎么画出一个积分函数的图像?求救
来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/11 08:09:40
matlab怎么画出一个积分函数的图像?求救
我的被积函数是这么定义的
function y=ein(x)
global wp1 t wp2 w0 r Em pm L K h miu wg T kb ree w fq;
y=((x-fq).^0.5./x).*(1-1./(exp((h*x-miu)/(kb*T))+1)).*(x.^2-fq^2+ree^2-1i*2*ree*fq)./((x.^2-w^2+ree^2).^2+4*fq^2*ree^2);
其中x是积分变量 fq才是自变量 在主程序里想用
y=quad('ein',1,10) 来计算
自变量是global fq=350:1:1000
想最后用plot画fq与y的图像
但是计算过程中报错 fq无论是用点乘还是直接乘都不行
就是想做出这个积分函数的图像
我弄到半夜了也没成功.
本人matlab初学小白
我的被积函数是这么定义的
function y=ein(x)
global wp1 t wp2 w0 r Em pm L K h miu wg T kb ree w fq;
y=((x-fq).^0.5./x).*(1-1./(exp((h*x-miu)/(kb*T))+1)).*(x.^2-fq^2+ree^2-1i*2*ree*fq)./((x.^2-w^2+ree^2).^2+4*fq^2*ree^2);
其中x是积分变量 fq才是自变量 在主程序里想用
y=quad('ein',1,10) 来计算
自变量是global fq=350:1:1000
想最后用plot画fq与y的图像
但是计算过程中报错 fq无论是用点乘还是直接乘都不行
就是想做出这个积分函数的图像
我弄到半夜了也没成功.
本人matlab初学小白
plot作图基本的两种输入方式
(1)plot(y),这个y是一个矩阵,n行m列的话,一共会画出m条,每条n个点
(2)plot(x,y),x与y是同维矩阵,比如 同是1行n列,或者同是n行1列,都能作图,只要能找到x与y一一对应的点就行,如果x与y的元素个数不能一一对应(比如不同维),那就做不出来图的
你现在workplace里看一看fp与y的储存形式,起码应该是矩阵.
要是函数绘图 ,有自己单独的绘图指令:fplot,基本用法是
fplot('fun',[xmin,xmax])
再问: 现在我计算不出y 可能是因为我的自变量fq=350:1:1000是向量形式 在计算y=quad('ein',1,10) 时积分内一些fq^2的运算无法进行 我改成fq.^2也不行 能帮忙想想办法吗
再答: 你的那些全局变量得赋值啊,我看你的式子太乱,给你举个简单的例子 比如这个程序 function y=chengfa(a) b=rand(1.10); y=a.*b; 注意,在这里面,a是自变量,不是你想指定哪个作为自变量的。 在命令窗口输入 a=rand(1,10);%都是随机给的 y=chengfa(a) 就能输出y的值,得到一个y的一行10列的矩阵。另一个例子 function y=chengfa(a) y=a*sin(a)/2; 你在命令窗口直接输 fplot('chengfa',[1,10]),就能得到a从1到10的函数图象。
再问: 赋值了 我只列出了一部分代码 我现在如果把fq设置成一个数 y=quad('ein',1,10) 可以积分出结果 fq作为积分里的一个参数 但是我现在是想算出当自变量fq从350到1000时,y对应的积分值 然后画图 这时候我写fq=350:1:1000 积分就无法进行了 怎么改呢?
再答: 对于fun来说 你的y=ein(x),这个x就是自变量,你的积分 y=quad('ein',1,10) 运行条件是 除x以外的所有值都是已知的,这个积分的意思是x从1到10积分,积出来是一个数 ,你的意思是不是想把fp作为一个参数,求fp=350,fp=351...下的x从1到10的积分值啊 如果不是,就是想把fp作为自变量,那x得赋值,把ein=(x)变成ein(fp),要是把fp作为一系列的参数。。。那就得用大循环了, for fp=350:1000 在每一个fp的情况下运行一遍你的积分函数,得到一个相应的y,用y(fp)得到这个矩阵 ,应该是可以的 你试试吧
再问: 是的 我就是想用fp作为自变量 x只是一个积分变量 把ein=(x)变成ein(fp)? 那积分变量不是变成参数fp了吗?
再答: 那就是在外边加大循环了 for fp=350:1000 y(fp)=quad.... end 能得到 在fp变化的时候 每个fp都能到一个对x积分的结果 y 这样对吗?
再问: 我按你的写了循环 然后被积函数的文件ein.m里写的是 function y=ein(x) global h miu T kb ree; y=....(一个与global参数和fq有关的函数) 报错Undefined function or variable 'fq'. 是fq并没有作为参数传递到ein.m里面去?还是我需要另外写
再答: 把程序发给我 我看看 772009506@qq.com
再问: 已发 谢谢
再答: 没事 我收到了正在看
(1)plot(y),这个y是一个矩阵,n行m列的话,一共会画出m条,每条n个点
(2)plot(x,y),x与y是同维矩阵,比如 同是1行n列,或者同是n行1列,都能作图,只要能找到x与y一一对应的点就行,如果x与y的元素个数不能一一对应(比如不同维),那就做不出来图的
你现在workplace里看一看fp与y的储存形式,起码应该是矩阵.
要是函数绘图 ,有自己单独的绘图指令:fplot,基本用法是
fplot('fun',[xmin,xmax])
再问: 现在我计算不出y 可能是因为我的自变量fq=350:1:1000是向量形式 在计算y=quad('ein',1,10) 时积分内一些fq^2的运算无法进行 我改成fq.^2也不行 能帮忙想想办法吗
再答: 你的那些全局变量得赋值啊,我看你的式子太乱,给你举个简单的例子 比如这个程序 function y=chengfa(a) b=rand(1.10); y=a.*b; 注意,在这里面,a是自变量,不是你想指定哪个作为自变量的。 在命令窗口输入 a=rand(1,10);%都是随机给的 y=chengfa(a) 就能输出y的值,得到一个y的一行10列的矩阵。另一个例子 function y=chengfa(a) y=a*sin(a)/2; 你在命令窗口直接输 fplot('chengfa',[1,10]),就能得到a从1到10的函数图象。
再问: 赋值了 我只列出了一部分代码 我现在如果把fq设置成一个数 y=quad('ein',1,10) 可以积分出结果 fq作为积分里的一个参数 但是我现在是想算出当自变量fq从350到1000时,y对应的积分值 然后画图 这时候我写fq=350:1:1000 积分就无法进行了 怎么改呢?
再答: 对于fun来说 你的y=ein(x),这个x就是自变量,你的积分 y=quad('ein',1,10) 运行条件是 除x以外的所有值都是已知的,这个积分的意思是x从1到10积分,积出来是一个数 ,你的意思是不是想把fp作为一个参数,求fp=350,fp=351...下的x从1到10的积分值啊 如果不是,就是想把fp作为自变量,那x得赋值,把ein=(x)变成ein(fp),要是把fp作为一系列的参数。。。那就得用大循环了, for fp=350:1000 在每一个fp的情况下运行一遍你的积分函数,得到一个相应的y,用y(fp)得到这个矩阵 ,应该是可以的 你试试吧
再问: 是的 我就是想用fp作为自变量 x只是一个积分变量 把ein=(x)变成ein(fp)? 那积分变量不是变成参数fp了吗?
再答: 那就是在外边加大循环了 for fp=350:1000 y(fp)=quad.... end 能得到 在fp变化的时候 每个fp都能到一个对x积分的结果 y 这样对吗?
再问: 我按你的写了循环 然后被积函数的文件ein.m里写的是 function y=ein(x) global h miu T kb ree; y=....(一个与global参数和fq有关的函数) 报错Undefined function or variable 'fq'. 是fq并没有作为参数传递到ein.m里面去?还是我需要另外写
再答: 把程序发给我 我看看 772009506@qq.com
再问: 已发 谢谢
再答: 没事 我收到了正在看