您现在的位置是:首页 >

程式 急!哪位大哥会matlab 帮忙写个程式,用牛顿迭代法求方程X^3-3*x-1=0在2附近的解

火烧 2022-11-30 00:31:08 1064
急!哪位大哥会matla 帮忙写个程式,用牛顿迭代法求方程X^3-3*x-1=0在2附近的解 急!哪位大哥会matla 帮忙写个程式,用牛顿迭代法求方程X^3-3*x-1=0在2附近的解 ym xx0

急!哪位大哥会matlab 帮忙写个程式,用牛顿迭代法求方程X^3-3*x-1=0在2附近的解  

急!哪位大哥会matlab 帮忙写个程式,用牛顿迭代法求方程X^3-3*x-1=0在2附近的解

syms x
x0=2;
f=x^3-3*x-1;
eps=1e-6;
maxt=1000;
fx=diff(f,x);
x1=x0;
t=1;
while t<=maxt
x2=x1-subs(f/fx,x,x1);
if abs(x1-x2)<eps
break;
end
[t,x1,x2] %迭代次数,迭代前,迭代后
x1=x2;
t=t+1;
end
subs(f,x,x2)

用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根

#include<stdio.h>
#include<math.h>
#include<conio.h>
#define N 100
#define PS 1e-5定义精度
#define TA 1e-5定义精度
float Newton(float (*f)(float),float(*f1)(float),float x0 )
{ float x1,d=0;
int k=0;
do
{ x1= x0-f(x0)/f1(x0);
d=(fabs(x1)<1?x1-x0:(x1-x0)/x1);
x0=x1;
printf("x(%d)=%fn",k,x0);
}
while((fabs(d))>PS&&fabs(f(x1))>TA) ;
return x1;
}
float f(float x)
{ return 2*x*x*x-4*x*x+3*x-6; }
float f1(float x)
{ return 6*x*x+8*x+3; }对方程求导
void main()
{ float f(float);
float f1(float);
float x0,y0;
printf("Input x0: ");输入x0为1.5即求1.5附近的根
scanf("%f",&x0);
printf("x(0)=%fn",x0);
y0=Newton(f,f1,x0);
printf("nThe root is x=%fn",y0);
getch();
}

方程求根牛顿迭代法 求方程 f(x)=x3+x2-3x-3=0在1.5附近的根

f(x)=x^3+x^2-3x-3
f'(x)=3x^2+2x-3
x(n+1)=xn-f(xn)/f'(xn)
令x1=1.5
x2=1.777778
x3=1.733361
x4=1.732052
x5=1.732051
x6=1.732051
如果精确到0.000001,则x=1.732051
准确值=根号3

matlab编x^3-3x-1=0在2附近的根 要求用牛顿迭代法

源程式如下:
clear
clc
N=100;
x=2;
for ii=0:N
xl=x;
num=ii;
x=x-(x^3-3*x+1)/(3*x^2-3);
if abs(x-xl)<=0.0001%此为迭代结果精度,可调。
break
end
end
fprintf('答案:x=%fn',x)
fprintf('迭代次数:%fn',num)
执行结果:
答案:x=1.532089
迭代次数:4.000000

程式 急!哪位大哥会matlab 帮忙写个程式,用牛顿迭代法求方程X^3-3*x-1=0在2附近的解

用牛顿迭代法求方程2X³-4X²+3X-6=0在1.5附近的根

化简方程:2m=5x+4y-1,2m=4x+6y(1)。
联立5x+4y-1=4x+6y得出x-1=2y(2)。因为x>0,y<0 所以0<x<1
由方程(1)(2)得2m=7x-3,所以-3<2m<4,得出-1.5<m<2
因为m为整数,所以m=-1,0,1

matlab牛顿迭代法求方程根程式

syms x
f=x^x-10;
df=diff(f,x);
eps=1e-6;
x0=10;
t=0;
MAXCNT=200; %最大回圈次数
while t<MAXCNT %防止无限回圈
x1=x0-subs(f,x,x0)/subs(df,x,x0); %去掉这个分号,可以看到迭代过程.
if (abs(x1-x0)<eps)
break;
end
x0=x1;
t=t+1;
end
if t==MAXCNT
disp '不收敛'
else
vpa(x1,8)
end

用程式编写 牛顿迭代法求下面方程在1.5附近的根 2*x*x*x-4*x*x+3*x+6=0

#include <stdio.h>
#include <conio.h>
#include <math.h>
#define MAX_DIEDAI_TIME 200
main()
{
int n=0;
double x=1.5;
double jingdu=1e-6;
double function(double x);
double d2function(double x);
double newton_diedai(double x0,int *n,double jingdu);
system("cls");
x=newton_diedai(x,&n,jingdu);
printf("x=%.7lfty=%.7lfn",x,function(x));
getch();
return 0;
}

double function(double x)
{
return 2*x*x*x-4*x*x+3*x+6;
}

double d2function(double x)
{
return 6*x*x-8*x+3;
}

double newton_diedai(double x0,int *n,double jingdu)
{
double x,temp;
temp=d2function(x0);
if (fabs(temp)>1e-10)
{
x=x0-function(x0)/temp;
printf("n=%dtx=%.5lfn",*n,x);
}
else
{
printf("error:div 0:nPress any key to exit:");
getch();
exit(1);
}
if (++(*n)>MAX_DIEDAI_TIME)
{
printf("diedai time:%d > MAX_DIEDAI_TIME:nPress any key to exit:",*n);
getch();
exit(1);
}
temp=function(x);
if (fabs(temp)<jingdu)
return x;
else
return newton_diedai(x,n,jingdu);
}
得到x=-0.8012075

用牛顿迭代法求下面方程在1.5附近的根。 2x^3-4x^2+3x-6=0

f(x)=2x^3-4x^2+3x-6
f'(x)=6x^2-8x+3
x(n+1)=xn-(2xn^3-4xn^2+3xn-6)/(6xn^2-8xn+3)
x1=1.5
x2=2.3333
x3=2.0610
x4=2.0026
x5=2.0000
x6=2.0000
所以x=2

用牛顿迭代法求方程3*x*x*x-4x^2-5x+13=0在x=1附近的根,要求精度为10^-6

迭代公式x(k+1)=x(k)-f'(x(k))/f''(x(k))
k=1,2.....,直到你要的精度
x(1)=1
当|x(k+1)-x(k)|<10^-6,时,迭代结束
如果你要的是程式,就不应该在这提问

怎么用VB编写这么一个程式:用牛顿迭代法求方程x^5-3*x^2+2*x+1=0在x0 = 0附近的根(要求用Do语句)

x1= 0
Do
x0 = X1
f1 = x0 ^ 5 - 3 * x0 ^ 2 + 2 * x0 + 1
f2 = 5 * x0 ^ 4 - 6 * x0 + 2
X1 = x0 - f1 / f2
Loop While Abs(X1 - x0) > 0.000001
Print X1

  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码