matlab牛顿迭代法计算 根号三
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/12 22:47:02
应该不行吧,第一个出现的代码,循环条件是whilekkk==3&&theta
-20.5558285905308换成弧度是-0.358766883260444选不同初值得到另外一个结果0.758766883260445换成弧度43.474140786708两边同时平方相减得到f
m=0;%起始点e=0.00001;%精度h=0.000001;%步长f=inline('1-y-2*sin(y+3)','y');%x=1,c=2,k=3代入具体数值t=0;f0=feval(f,m
esp表达错了吧,e的指数幂应该用exp表示.另外你这个n怎么定义的?我不大懂啊.给你分享个牛顿迭代法的程序吧,你参考下看能不能解决你的问题:
首先你的代码run不了,大小写x需改正,diff没用的,修改如下functionnewton(f,g,a)forn=1:20x=a;fa=eval(f);ga=eval(g);a=a-fa/ga;x=
clc;clearf='x-exp(-x)'df=diff(f)x=0.5;ac=[0.7;0.9;1];%加速因子ac2=0.9;fork=1:10x=x-ac.*subs(f/df);X(k,:)
x=x-(H*sqrt(1+2*x/H)-x*arch(H/x+1)-b)/(1/sqrt(1+2*x/H)-arch(H/x+1))-x*((H/x^2+(H^2/x^3+H/x^2)/sqrt(H
超过计算范围或精度.
x=x0-(x0.^3+2*x0.^2+10*x0-20)/(3*x0*x0+4*x0+10);最后应该是10,不是x0
functionroot=NewtonRoot(f,a,b,eps)%用牛顿法求方程的一个根%方程的表达式:f%区间的左端点:a%区间的右端点;b%根的精度:eps%求得的根:rootif(nargi
牛顿法是牛顿在17世纪提出的一种求解方程f(x)=0.多数方程不存在求根公式,从而求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要.设r是f(x)=0的根,选取x0作为r初始近似值,过
对于求平方根,变成方程模式为f(x)=x^2-a,即求此方程的实根;下面编写了两个function函数,可以直接调用.二分法:functionx=sqrt_bisect(a)f=@(x)x^2-a;i
贴上来,或者发到
(150.000000+150/150.000000)/2=75.500000(75.500000+150/75.500000)/2=38.743377(38.743377+150/38.743377
x=10^(1/x),{"浠f崲娆℃暟","x鍊?},{1,10.0000000000},{2,1.25892541179},{3,6.2277079027},{4,1.44734718383},{5
function[A]=cal(a,b,v)%a,b表示区间,v是精度i=1;x=(a+b)/2;A=[ix];t=x-(x^3-x-1)/(3*x^2-1);%迭代函数while(abs(t-x)>
1.创建一个函数%牛顿法求立方根functionx=cube_newton(a)f=@(x)x^3-a;df=diff(sym('x^3-a'));ifa==0;x1=a;elsex0=a;x1=x0
用fsolve可解出来:先构造函数:functionoutput=solveproblem(X)c=X(1);m=X(2);y=X(3);output(1)=(1-c)*(1-y)*(1-m)*10.
symsxf=x^x-10;df=diff(f,x);eps=1e-6;x0=10;cnt=0;MAXCNT=200;%最大循环次数whilecnt
例如求解方程组:x1^2+x2^2=4;x1^2-x2^2=1可以编写程序如下:clear;x0=1;y0=1;n=10;tol=1e-6;x(1)=x0;y(1)=y0;i=1;u=[11];k(1