xxxxxxxxxx
51
function factorial(n){
if(n<2) {
return(1);
}
else {
return(n*factorial(n-1));
}
}
function newton(p,x){
let s=x;
let q=p
while(abs(p.val(s))>0.1){
t=p.val(s)
print(t)
q.deri(1)
print(p.a)
s-=t/q.val(s)
}
return s
}
class polyn{
constructor(a){
this.a = a
}
roots(){
}
deri(n){
for(let i=0;i<=this.a.length;i++){
if(i<this.a.length-n){this.a[i]=factorial(i+n)/factorial(i)*this.a[i+n]}
else{this.a.pop()}
}
}
val(x){
let s=0;
for(let i=0;i<this.a.length;i++){
s+=this.a[i]*pow(x,i)
}
return s
}
}
function setup() {
createCanvas(400, 400);
}
function draw() {
background(220);
a=[1,1,1,1,1,1,1,1,1]
p=new polyn(a)
print(newton(p,1))
}