1.如何用C语言实现开三次方根
用牛顿迭抄代公式Xn+1=Xn-f(Xn)/f'(Xn)
其中f(X)=X^3-a
float CubeRoot(float a){
float root=1.0; /*迭代袭初始值,随便取一个数,但不要是0*/
while(fabs(root*root*root-a)>=0.0001) /*设定迭代精确度,如果精度比较高的话可以把root定义为double,防止知死循环。或者可道以在循环内部根据迭代次数调整精度*/
root=root-(root*root*root-a)/(3*root*root);
return root;
}
int main(void){
float a;
float CubeRoot(float a);
printf("Please input a: "); scanf("%f",&a);
printf("\nThe cube root of %f is %f",a,CubeRoot(a));
return 0;
}
2.matlab中的三次方根如何表示
使用power(x,1/3),或者简单的使用 x^(1/3)即可。
matlab中求平方根(二次方根)用sqrt,但没有专门表示三次方根的函数。计算三次方根等价于计算某个数的三分之一次方。所以可以使用power(x,1/n)的方法(表示开n次方根)。
举例:
>> x=4
x =
4
>> power(x,1/3)
ans =
1.5874
>> 4^(1/3)
ans =
1.5874
扩展资料:
开方一律使用乘方matlab中的运算符号:包含+、-、*、/、\、^
其中仅^代表乘法,而开方为乘方的逆运算,在数学里面使用分数指数代表
MATLAB中输入:(-8)^(1/3),其中-8为需要开方的数字。
matlab返回的是复平面的第一个解,也就是1.0000 + 1.7321i
如果你只想得到实数解,可以用
x = nthroot(-8, 3);
或者
sign(-8).*abs(-8.^(1/3));
如果你想一次性得到所有复平面的解,
可以用
roots([1 0 0 -8])
3.C语言取根号怎么写
修改几个地方:
1 scanf("%f",&x);为scanf("%lf",&x);即加个l(L小写)在%f中间;
解释:double输入用%lf格式,float用%f格式
2 printf("y=%f\d",y);为printf("y=%lf\n",y);
即加个l(L小写)在%f中间;输出double也用%lf格式,
\d格式没见过,一般换行用\n格式
其他几个地方的\d都是这样
最后个printf也加个l,改成\n试试。
不行的话,源程序贴出来,看看。