matlab用普丰集团投针法求π值的代码

用MATLAB画y=(sin(2π*5x)+sin(2π*15x)+sin(2π*30x))的图像,代码哪里不对_百度知道
用MATLAB画y=(sin(2π*5x)+sin(2π*15x)+sin(2π*30x))的图像,代码哪里不对
=-100.*15*x)+sin(2*π.*5*x)+sin(2*π;plot(x:100.001.*30*x));y=(sin(2*π:0
提问者采纳
0;y=(sin(2*pi*5*x)+sin(2*pi*15*x)+sin(2*pi*30*x)):x=-0,所以X没必要取那么大的范围.5。2.π使用pi表示的.5.001.2.没必要用点乘:0。3。于是改成了下边这样的程序.三个成分周期最大的才是0;plot(x三个问题。1
提问者评价
来自团队:
其他类似问题
为您推荐:
其他2条回答
-&gt:x=-100,比如.*5*x)+sin(2*π.*30*x)); -&gt:0.*15*x)+sin(2*π.001;数据太多了y=(sin(2*π:100;不需要用没有不对,只有更好
π改为pi即可
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁根据π^2/6=1+1/4+1/9+......+1/(n^2),求π的近似值。当n分别取100、时,结果是多少?用matlab_百度知道
根据π^2/6=1+1/4+1/9+......+1/(n^2),求π的近似值。当n分别取100、时,结果是多少?用matlab
提问者采纳
&gt,1;&gt& p=sqrt(6*symsum(1&#47,1,1,k;k^2,10000)).1059044 &gt,20) ans = 3; p=sqrt(6*symsum(1/&gt,100)),k;&k^2,1000)),k;& vpa(p;&gt.993123 &&gt,20) ans = 3;k^2;& vpa(p; vpa(p; p=sqrt(6*symsum(1/&gt,20) ans = 3
谢谢哦,不过呢还有没有其他的方法的呀?
有,你需要麻烦的还是简单的在麻烦一点的使用数组 最麻烦的是循环数组的方法a=1:100;p=sqrt(6*sum(1./a.^2))循环的方法s=0;for i=1:100s=s+1/i^2;endp=sqrt(6*s)运行结果 a=1:100;p=sqrt(6*sum(1./a.^2))p =
3.1321&& s=0;for i=1:100s=s+1/i^2;endp=sqrt(6*s)p =
提问者评价
谢谢哦,要的就是循环的方法的o(≧v≦)o~~已经得到了最佳答案了
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁matlab&编程基础
1.3& MATLAB编程基础
1.3& MATLAB编程基础
计算机程序就是计算机指令的集合,不同编程语言的指令功能是不一样的。MATLAB
语言是一种面向对象的高级语言,具有编程效率高、易学易用、调试容易等优点,被人们称为第四代编程语言(4GL)。MATLAB有两种常用的工作方式:一种是直接交互的指令行操作方式,在这种方式下,MATLAB
被当作一种高级“数学演算和图形显示器”来使用;另一种是M文件的编程方式。
1.3.1& 变量和数学运算
变量是程序设计语言的基本要素,表达式和变量是MATLAB编程的基础,例如要计算表达式area=pi*r2,其中
的值,则可以直接在提示符之后输入表达式。计算结果将以ans显示;或者将表达式赋值给变量的形式,则计算结果可以保存在该变量中,放入内存。
&& 50.2655
&& area=pi*r^2
&& 50.2655
我们可以看到在上述的例子中,r=4语句结尾加上了“;”,则计算结果不显示在指令窗口上。
MATLAB中对变量的命名应遵循如下规则:
(1) 变量名称区分大小写(例如 SUM、sum、Sum是3个不同的变量);
(2) 变量名长度不超过31个字符;
(3) 变量名必须以字母开头,由字母、数字、下划线组成。
如表1-1中列出了MATLAB中定义的特殊变量及其意义。
表1-1& MATLAB定义的系统变量
变& 量& 名
列出所有定义过的变量名称
预设的计算结果的变量名称
MATLAB 定义的正的极小值2.2204e-16
内建的π值
∞值,无穷大
无法定义一个数
MATLAB 提供的基本算术运算有:加(+),减(&),乘(*),除(/),幂次方(^)
MATLAB还提供了众多的基本数学函数,表1-2到1-7为常用的一些分类列表,这些函数在以后的章节中会用到。
表1-2& 三角函数和双曲函数
反双曲正切
反双曲余切
反双曲正割
反双曲余割
四象限反正切
反双曲正弦
反双曲余弦
表1-3& 指 数 函 数
E为底的指数
10为底的对数
2为底的对数
表1-4& 复 数 函 数
表1-5& 取整函数和求余函数
向靠近整数圆整
表1-6 矩阵变换函数
矩阵左右翻转
产生或提取对角阵
矩阵上下翻转
产生下三角
矩阵特定维翻转
产生上三角
矩阵逆时针90& 翻转
表1-7& 其他常用函数
相邻元素的差
累计元素总和
累计元素总乘积
1.3.2& 数组和矩阵
MATLAB是以数组和矩阵的方式来进行运算的,其中数组由一维元素构成,矩阵由多维元素组成。在运算时数组强调元素对元素的运算,而矩阵则采用线性代数的运算方式。
数据的创建以及输入数据:
在声明一个变量是数组或是矩阵时,如果要个别输入元素,用中括号将元素括起来。例如:
& %一维1&3数组
&& x=[1 3 5;2 4 6]
%二维2&3矩阵,“;”用来分隔各行元素,也可以将各行元素分行输入。
有的数组的元素之间有一定的计算规律,在这种情况下,也可以采用一些其他方式来建立:
x=(0:0.25:1)&&&&&&&&
%创建0-1之间的等差数列序列作为数据元素,其中起始值=0、增量
%=0.25、终止值=1
x=linspace(0,1,6)&&&
%利用linspace创建起始值=0、终止值=1、中间元素个数=6的数组
数组的运算
数组的算术运算包括加、减、乘、除(包括左除和右除)、乘方和转置,需要注意的是除了加、减符号外,其余的运算符在进行数组间运算时均须加“.”符号。
矩阵的运算
矩阵运算所采用的运算符和数组运算相似,需要注意的是其中矩阵的加、减运算要求进行运算的两个矩阵大小完全相同。而当两个矩阵相乘时,要求相乘的两个矩阵要有相同的维数,即一个矩阵为i&j大小,则要求与之相乘的矩阵必须是一个大小为j&i的矩阵,这样两个矩阵才能相乘。而且,当i和j不相等的时候,交换两个矩阵的顺序相乘,得到的结果是完全不一样的。例:
&& A=[1 3 5;2 4 6];
&& B=[4 8;3 2; 1 5];
此外,MATLAB
还支持矩阵元素相乘。即两个矩阵中所有对应的元素进行相乘,此时要求相乘的两个矩阵大小完全相同,运算符号是“.*”。例:
&& E=[2 2 2;2 2 2];
MATLAB中,矩阵的除法运算有两个运算符号,分别是左除“\”和右除“/”。矩阵左除运算可以避免奇异矩阵的影响,而右除运算速度会慢一点。
MATLAB还提供了与函数转置有关的一些函数,在表1-6中已经列出。另外,MATLAB还提供有 reshape
函数,可以用来调整矩阵的结构,即在矩阵元素总数不变的情况下,改变其行和列的大小。例:
&& A=[1 3 ;2 4 ;0 7 ;8 9]
B=reshape(A,2,4)&&&&&&&&&&&&&&
% 将A矩阵改成2&4矩阵
C=reshape(A,1,8)&&&&&&&&&&&&&&
% 将A矩阵改成1&8矩阵
由此我们可以看出,MATLAB 中矩阵是按列存储的,这与 C 语言的按行进行数据存储有着较大差异,对于习惯使用 C
语言的用户,需要特别注意。
1.3.3& 结构体
MATLAB 结构体是根据不同的域名将不同的数据组织起来的一种数据集合,为不同类型的数据提供了一种分级存储机制。在 MATAB
中,结构体可以被看作一个一维的数组,并赋予一个名称,该名称就是域名。用户也可以创造多维的结构体,它的每个结构都有相同的域名。MATLAB
结构体(structure)的定义与 C
语言结构体的定义类似,由一系列不同的域(field)组成,每个域可以是不同的基本数据类型,一个域可以是一个文本字符串、一个数值或一个矩阵。
&& stu.num=1;
&stu.name='john';
&stu.billing=180;
&stu.test=[100,80,75;60,88,90;73,96,87];
&& name: 'john'
&& billing: 180
&test: [3x3 double]
结构体在本质上也属于矩阵,除了采用以上赋值语句的方法来创建以外,还可以使用 struct 函数来创建。
Str_array=struct('field1',val1, 'field2',val2,…)
在这里,输入参数分别是域名和它们的对应值,任何MATLAB的数据类型都可以作为域的值。
1.3.4& 类和对象
类是一种具有特定行为的数据类型,当使用预先设计好的类时,基于对象的程序设计就会显著增加代码的可重用性、可维护性和可扩展性。在基于类和对象的程序设计中,所有的MATLAB
数据类型都可以被定义为类。类有两个组成部分,即成员变量和成员函数。成员变量相当于MATLAB结构体的域,可以是各种类型的MATLAB数据;成员函数就是一系列的M文件,它包括各种类型的MATLAB运算符、数学算子、功能函数以及重载后的MATLAB内建算子和函数,用来对成员变量进行操作。
类对象的存储结构与MATLAB结构体的存储方式完全相同,但是对域内容访问的保护却完全不同,类对象的域内容只能通过类的成员函数来获取和修改,外界根本无法得知,这是由类对于数据的封装性决定的。
此外,在MATLAB系统下,类成员函数的存放有很严格的规定,所有的类成员函数必须放在同一目录下,且目录名必须为
@class_name 形式,其中@为固定格式,class_name为用户定义的类名。同时新建立的目录 @class_name
必须设置为MATLAB 系统搜索路径中的工作目录的子目录。
通过调用类的构造函数可以创建一个对象,要求调用构造函数时,输入和对象类型一致的参数。在MATLAB中构造的函数与类同名,因此应该选定一个恰当的名字。例如:
P=polynom([1 3 5 7]);
会生成一个多项式对象,在建立一个对象后,就可以调用该类定义的方法(函数)操作该对象了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。用matlab求π的近似值 π/4=1-1/3+1/5-1/7……直到某一项的绝对值小于10^-6_百度知道
用matlab求π的近似值 π/4=1-1/3+1/5-1/7……直到某一项的绝对值小于10^-6
提问者采纳
;%%%可换为xx=subs(x)y=0;π的近似值为'while abs(xx)&(2*n-1);
endfprintf('10^(-6)
n=n+1;n=1;n'enddisp([' num2str(y*4)])上面的方法由于涉及符号运算;for n=1。y=0syms nx=(-1)^(n-1)/10^(-6)
xx=eval(x),共需迭代%d步\
if abs(xx)&gt,y*4:1000000%%%这里要尽量的大
xx=(-1)^(n-1)/xx=eval(x),所以特别特别慢,但程序肯定没问题,我试了一下15分钟都没算出来,下面这种方法很快,因为当精度降低后还是有结果的;(2*n-1);π的近似值为%,因为这是matlab所擅长的数值计算
谢谢了y=0;for n=1:1000001
s=(-1)^(n-1)/(2*n-1);
if abs(s)&10^-6
endendy=y*4;y我大致改了一下
你的结果是
π的近似值为3.141591 ,共需迭代500001步这个
迭代500001步是什么意思...小弟刚学MATLAB
能加q细聊不
提问者评价
来自团队:
其他类似问题
为您推荐:
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求π的近似值Matlab程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
求π的近似值Matlab程序
上传于||文档简介
&&求​π​的​近​似​值​M​a​t​l​a​b​程​序
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
你可能喜欢

我要回帖

更多关于 武汉科林普丰仪器 的文章

 

随机推荐