Matlab模拟Buffon投针实验的程序

Matlab模拟Buffon投针实验的程序,第1张

rand(05)

这个是错的。

你如果想产生一个0-05的随机数是

05rand(1)

上面括号中的1是指产生一行一列(就是一个),0到1之间的随机数。

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

你的括号有问题

你输的是中文全角的(,而不是英文的(。全角的比较大啊。

我把两个放在一起,你就知道了

((

你好好看一下。

改成

if 05rand(1)<=1/2sin(pirand(1))

matlab的fsolve函数可以这样来改所求的函数。

1、用函数体,自定义所求的函数。即

function y=fun(x)

具体的函数表达式

end

2、初定x的初值,即

x0=[x01,x02,x03,]

3、用fsolve函数求其数值解,即

[x,fval,exitflag] =fsolve(fun,x0)

当exitflag=1时,说明求解成功。x是方程的数值解,fval是函数值

x=[1 3 5 -1]';

n=length(x);

for i=1:n;

if x(i)>2

y(i)=fun1(x(i));

else

y(i)=fun2(x(i));

end

end

y

这是主程序。下面两个分别保存成M文件

function y = fun1(x)

y=xx+1;

end

function y = fun2(x)

y=x-1;

end

命令窗口(Command Window)中:

1) 上、下键――切换到之前、之后的命令,可以重复按多次来达到你想要的命令

2) clc――清除命令窗口显示的语句,此命令并不清空当前工作区的变量,仅仅是把屏幕上显示出来的语句清除掉

3) clear――这个才是清空当前工作区的变量命令,常用语句clear all来完成

4) Tab键――(转自版友心灯)在看到的:在command窗口,输入一个命令的前几个字符,然后按tab键,会d出前面含这几个字符的所有命令,找到你要的命令,回车,就可以自动完成。目前讨论结果是:matlab65版本中,如果候选命令超过100个,则不显示。而在matlab7以后版本中,则没有这个限制,均可正常提示

5) Ctrl+C(或Ctrl+Break)――(转自版友yangjin_ren)在matlab程序运行过程中,可能由于程序编写的失误,导致程序不停的运行,在命令窗口输入“Ctrl+C”可以将运行的程序停下来,而不需要将整个Matlab程序关掉。不过进行此 *** 作的前提是能够激活切换到命令窗口才行,呵呵。

2 在编辑器(Editor)中:

1) Tab(或Ctrl+])――增加缩进(对多行有效)

2) Ctrl+[--减少缩进(对多行有效)

3) Ctrl+I--自动缩进(即自动排版,对多行有效)

4) Ctrl+R――注释(对多行有效)

5) Ctrl+T――去掉注释(对多行有效)

6) Ctrl+B――括号配对检查(对版本65有效,但版本70无效,不知道是取消了还是换了另外的快捷键,请大牛们指点,其他版本没有测试过)

7) F12――设置或取消断点

8) F5――运行程序

其余的例如在Debug状态下的快捷键就不多说了,自己看菜单Debug吧!

累了, 有时间再写吧。希望大家多

不需要用循环,直接使用逻辑数组运算更快。

我假设你的x和x(1)--x(n)是不同的变量,那么我用a来表示你的x,用x数组代表你的x(1)--x(n)

我随便给这些数赋值

a=10;

x=1:3:30;

k=5;

temp = true(size(x));

temp(k) = false;

y = prod(a - x) / prod(x(k) - x(temp));

a-x是生成数组[a-x(1), a-x(2), , a-x(n)],prod()是吧这个数组相乘

temp是一个逻辑数组,和x相同大小,并且只有第k个数是false。x(temp)就是生成[x(1), x(2),, x(k-1), x(k+1), , x(n)]

其他的应该容易理解

补充:拉格朗日插值多项式可也这么写:

%x0,y0是已知各点坐标,共n点

x0 = [1, 2, 3];

y0 = [1, 8, 27];

n = length(x0);

%x是要求的点

x = 4;

y = 0;

for k = 1:n

temp = true(size(x0));

temp(k) = false;

y = y + y0(k) prod(x - x0(temp)) / prod(x0(k) - x0(temp));

end

以上就是关于Matlab模拟Buffon投针实验的程序全部的内容,包括:Matlab模拟Buffon投针实验的程序、如何将该matlab程序改用fsolve函数求解:、求一个简单的matlab程序代码,只要符合要求即可等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9839960.html

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

发表评论

登录后才能评论

评论列表(0条)

保存