这个代码怎么算啊,求闰年的计算方法法!

matlab求出一个公式,想用这个公式计算 怎么写代码,谢谢啦_百度知道
matlab求出一个公式,想用这个公式计算 怎么写代码,谢谢啦
Linear model Poly8:
f(x) = p1*x^8 + p2*x^7 + p3*x^6 + p4*x^5 +
p5*x^4 + p6*x^3 + p7*x^2 + p8*x + p9
Coefficients (with 95% confidence bounds):
-1.776e-08
(-5.562e-08, 2.009e-08)
我有更好的答案
可这样:x=1:10;y=polyval(f,x);
采纳率:77%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。校验码的计算方法_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
校验码的计算方法
&&管理信息系统
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢数据挖掘、机器学习、推荐系统、Web后台
计算任意位数的Pi
当用程序实现求pi的值时,也许你能够很快写出算法(利用求pi的几个公式),但是由于使用单变量保存结果,限于计算机硬件对变量的表示范围有限,因此,最多只能计算出pi值小数点后十多位。但需要得到一个更大位数的pi值时,就得考虑其他的算法。
我们采用这个公式计算pi: pi/2 = 1+1/3+1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9+......
在计算上述公式的个分式值时,由于1/3这类的分数是无限循环小数,而使用单变量时,由于变量能表示的范围有限,因此,多余的部分将被舍去。为了提高精度,这时可以定义数组来逐位保存无限循环小数,例如:定义有20个元素的数组temp,每个元素保存一位数,则2/3的结果讲师如下效果:
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
可按以下方式计算:
(1)由于2/3的结果以保存在数组temp中,用分数2/5的分子2去与数组temp的各个元素相乘,并将结果保存到temp个元素中。
(2)对数组temp个元素进行进位处理。
(3)用数组temp个元素除以分母5,并将结果保存到对应的数组元素中。在使用数组temp中的元素进行除法运算时,将从数组的低位(序号0)开始。首先用temp[0]的值除以5,列出其除法竖式如下:
得到的商为1,则将商保存在数组temp[0]中,接着将余数1乘以10累加到下一个元素temp[1]中,使temp[1]的值变为16.用temp[1]的值16除以5,得到商为3,将商保存到temp[1]中,余数为1,将其乘以10累加到下一个元素temp[1]中,......,这样不断地重复,最后使temp数组变为如下形式:
(4)通过上面的操作,完成了一个数列的计算,并按位保存到数组temp中,再将temp数组中的值累加到pi数组中。
不断重复上述过程,即可得到指定位数的pi值。
提示:由于数列可以不断重复,什么时候终止循环哪?当数组temp中的值全为0,则表示已经没有余数需要处理;如果数组中的元素一直不为0,就需要设置另外的条件来终止循环,如规定循环处理的次数。
计算任意位数Pi值的程序代码:
#include &stdio.h&
/* function: 计算任意位数pi值
auther: ZhangYachao
blog:http://blog.csdn.net/u
void CaculatePi()
int len,i;
//len为小数长度
int numberator = 1,denominator = 3,result,
int flag = 1,count = 0;
//继续循环的标志及循环的次数
char *pi,*
//指向保存pi值和临时计算结果的数据
printf("请输入小数位数:");
scanf("%d",&len);
//增加两位
if(!(pi = (char*)malloc(sizeof(char)*len)))
//分配保存pi值的内存
printf("分配内存失败!\n");
if(!(temp = (char*)malloc(sizeof(char)*len))) //分配保存呢临时值的内存
printf("分配内存失败!\n");
for(i = 0; i & i++)
//初始化数组
pi[i] = temp[i] = 0;
pi[1] = 2;
temp[1] = 2;
while(flag && (++count & ))
//int的最大值
carry = 0;
for(i = len-1; i & 0; i--)
//从低位到高位相乘
result = temp[i] * numberator+ //用每一位去乘,再加上进位
temp[i] = result % 10;
//保存个数
carry = result / 10;
carry = 0;
for(i = 0; i & i++)
//有高位到低位进行除法运算
result = temp[i] + carry*10;
//当前位加上前一位的余数
temp[i] = result /
//当前位的整数部分
carry = result %
//当前位的余数,累加到下一位的运算
flag = 0; //清除标志
for(i = len-1; i & 0; i--)
result = pi[i] + temp[i];
//将计算结果累加到result中
pi[i] = result % 10;
//保留一位
pi[i-1] += result / 10;
//向高位进位
flag |= temp[i];
//若temp中的数全为0,退出循环
numberator++;
//累加分子
denominator += 2;
//累加分母
printf("\n计算了%d次\n",count);
//输出循环次数
printf("\t--- 第1-1000为小数----\n");
printf("PI = \n");
printf("%d.",pi[1]);
for(i = 2; i & i++)
if((i&2) && (i-2)%10 == 0)
//每10位小数间加一个空格
printf(" ");
if((i&2) && (i-2)%50 == 0)
//每50位小数换行
printf("\n");
printf("%d",(int)pi[i]);
//输出一位小数
printf("\n");
void main()
CaculatePi();
参考《零基础学算法》
转载请标明出处:
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
用二分法求方程x^2-x-1=0的正根,要求精度为10^-5 这是我们化工计算方法里面的题要用MATLAP写程序计算的我实在不知道怎么用哪个软件,里面的都是英文的也不知道怎么写代码计算 我今天晚上11点之前要交给老师的
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
用matlab程序如下:x1=1;x2=2;l=1;e=10^(-5);while l>e
x3=(x1+x2)/2;
y1=x1^2-x1-1;
y3=x3^2-x3-1;
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 闰年的计算方法 的文章

 

随机推荐