作业帮 > 综合 > 作业

如何用matlab绘制图像:对100-(sqrt((x-l1)^2+y^2))中的l1从0到5进行积分,画出三维图

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/16 05:51:05
如何用matlab绘制图像:对100-(sqrt((x-l1)^2+y^2))中的l1从0到5进行积分,画出三维图
如何用matlab绘制图像:对100-(sqrt((x-l1)^2+y^2))中的l1从0到5进行积分,画出三维图
先用符号积分算了一下,发现没有解析解.那么只能用数值积分的方法了,我用的是比较简单的simpson积分公式,代码如下.建立m文件smpsn.m,内容如下
function z = smpsn(x,y);global x0 y0;x0 = x;y0 = y;h = 0.05;%积分步长t=[0:h:5];n = length(t);s = 0;for k = 2:n    s = s + 4*fun((t(k)+t(k-1))/2)+2*fun(t(k));ends = s+fun(t(1))-fun(t(n));z = h/6.*s;
function yy = fun(l1);global x0 y0yy = 100-(sqrt((x0-l1).^2+y0.^2));
然后需要输入的命令是:>> [X,Y]=meshgrid(linspace(-10,10,200));>> Z=smpsn(X,Y);>> mesh(X,Y,Z);图形:这里x,y取的范围是[-10,10],按照需要你可以自己取.

再问: 如果需要计算以原点为顶点x轴为一边的逆时针一定角度内等高线围成的面积怎么做呀。
再答: 听得不是很懂。。。什么叫以原点为顶点x轴为一边的逆时针一定角度内等高线围成的面积。。。能具体一点么
再问: 比如说:求给定一条等高线在底面投影曲线,与过原点与X轴成a(角度)的直线以及X轴所夹的面积。。。。(我觉得自己表述的好坑爹。。。)
再答: 大概懂了。好像很复杂的样子。这样子,你看看行不行。>> [X,Y]=meshgrid(linspace(-15,15,300));>> Z=smpsn(X,Y);>> mesh(X,Y,Z);>> t=find(abs(Z-450)<0.05);%这条命令用来求出等高线Z=450>>figure(2);plot(X(t),Y(t),'r*');axis equal;%画出等高线在xy平面的投影哇,原来是一个圆。其它等高线也是这样吗?是的,你自己可以试试,但是注意取Z=Z0时,Z0要在Z的值域内,你可以先用命令max(max(Z))和min(min(Z))查出Z的最大和最小值。好了,你要的面积很容易求出来了吧?只要求出圆的半径就好了。>> Xt=X(t);Yt=Y(t);>> R=(max(Xt)-min(Xt))/2 R =    9.9833不妨设角度a=pi/3;那么>> a=pi/3;>> S>> S=0.5*a*R^2S =
   52.1849暂时就想到这么个方法了,结果肯定是可靠的,就是需要"观察"。。。