matlab画小鱼

matlab画小鱼,第1张

1、电脑桌面上找到matlab程序,鼠标右击打开桌面上matlab软件。

2、创建新的脚本,点击matlab左上角新建脚本命令。

3、在新建脚本命令输入窗口输入程序clearall。

4、输入程序,x等于1比0点1比10。

5、输入程序,y等于sin(x),z等于cos(x)。

6、输入程序,plot(y,z)。

7、最后产生的图像是xy函数叠加的一个圆。

8、输入程序,plot3(x,y,z)。

9、产生两个三角函数叠加产生的图形即可。

其实,这个问题本身并不困难,要点只在于怎样计算贝塞尔函数。

MATLAB提供了计算贝塞尔函数的函数,详情请参见另一个问题的回答。

首先,试图使用符号数学工具箱求解析解,代码如下:

syms x y

eq1=(cos(x)-1/3(cos(x))^3)+2(1000+683-22480)/ 

    (3(1000-683))-y(sin(x))^2/0000115-2sin(x) 

    sin(x-0959931)/0000115^2/(98(1000-683)/0071);

eq2=sin(0959931-x)besselk(0,(98(1000-683)/0071)^ 

    050000115sin(x))+(98(1000-683)/0071)^05y 

    besselk(1,(98(1000-683)/0071)^050000115sin(x));

[x,y]=solve(eq1,eq2)

得到的结果为:

x =

72408611253328779611417644360562

y =

-85870621389208280165235516006804e-6

这是因为无法求得解析解,因而调用了数值方法求解得到的结果(注意,在不同MATLAB版本中的处理方式可能存在差别,我使用Maple内核的2008a求解得到上述结果,但使用MuPad内核的2012b则得到复数解)。

由于这里求得的x不符合0-pi区间的要求,所以,考虑直接用数值方法求解方程(使用优化工具箱fsolve函数)。代码如下:

function zd

x0 = [pi/2; -1e-5];

options=optimset('Display','iter');

x = fsolve(@eqs, x0, options);

fprintf('x = %6g, y = %6g\n', x);

fprintf('Eq1(x, y) = %6g, Eq1(x, y) = %6g\n', eqs(x));

function f = eqs(X)

x = X(1);

y = X(2);

f(1)=(cos(x)-1/3(cos(x))^3)+2(1000+683-22480)/ 

    (3(1000-683))-y(sin(x))^2/0000115-2sin(x) 

    sin(x-0959931)/0000115^2/(98(1000-683)/0071);

f(2)=sin(0959931-x)besselk(0,(98(1000-683)/0071)^ 

    050000115sin(x))+(98(1000-683)/0071)^05y 

    besselk(1,(98(1000-683)/0071)^050000115sin(x));

得到的结果:

x = 0957676, y = -858706e-007

Eq1(x, y) = -515143e-014, Eq1(x, y) = -138778e-017

我觉得没有太多需要的说明的,所以就不多写了,有问题请追问。

另外,我注意到,前面用符号数学工具箱求出的解与使用fsolve得到的结果相差2pi,有兴趣可自行验证。

==================================

由于百度知道系统抽风,另一个问题的答案“正在提交中”,我把主要内容贴到这里,供参考。

MATLAB提供了计算贝塞尔函数的函数,具体包括:

besselj - 第一类贝塞尔函数,或简称贝塞尔函数;

bessely - 第二类贝塞尔函数,又称诺伊曼函数(Neumann function);

besseli - 第一类修正贝塞尔函数;

besselk - 第二类修正贝塞尔函数;

besselh - 第三类贝塞尔函数,又称汉克尔函数(Hankel function)。

这几个函数的调用语法基本相同,例如

J = besselj(nu,Z)

J = besselj(nu,Z,1)

[J,ierr] = besselj(nu,Z)

其中,nu为贝塞尔函数的阶数,Z为函数自变量。阶数必须为实数,但Z可以是复数。

就你的问题而言,非常简单,K0(x)、K1(x)在MATLAB中的表达式分别为besselk(0,x)、besselk(1,x)。

另外值得一提的是,上述函数是MATLAB基本模块提供的特殊函数(也就是说不需要任何附加工具箱),采用数值方法计算;而符号数学工具箱则提供了第一和第二类的4个贝塞尔函数,名称和调用方式都与基本模块的4个函数完全一致,但支持微分、积分等符号运算。

在Matlab中,可以使用plot函数在xy轴上画几个点。plot函数的基本用法是:plot(x,y),其中x和y分别表示点的横坐标和纵坐标。

例如,如果要在xy轴上画出坐标为(1,2)和(3,4)的两个点,可以使用以下代码:

```

x = [1, 3];

y = [2, 4];

plot(x, y, 'o');

```

在这个例子中,我们首先定义了两个数组x和y,分别表示两个点的横坐标和纵坐标。然后使用plot函数将这两个点画在图上,并使用'o'参数指定点的形状为圆形。

在Matlab中,除了使用plot函数画点,还可以使用scatter函数、line函数等进行绘图。这些函数的不同之处在于它们支持的参数和绘图方式不同。例如,scatter函数可以绘制不同大小、颜色的点,而line函数可以画出直线、曲线等。

总之,在Matlab中,可以使用多种函数在xy轴上画出不同形状、颜色、大小的点,以及直线、曲线等。这些函数的选择取决于具体的需求和数据类型。

以上就是关于matlab画小鱼全部的内容,包括:matlab画小鱼、高手帮忙,2个关于xy,并含修正贝塞尔函数的方程,怎样用matlab求解xy,谢谢~~~、matlab怎么在xy轴上画几个点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10085599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存