ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

最优化方法之牛顿法(Java)

2021-07-19 22:33:50  阅读:189  来源: 互联网

标签:Java double 牛顿 最优化 pow x1 miu public Math


最优化方法之牛顿法(Java)

算法原理

题目

试用Newton法求函数f(x)=x^4-4*x^3-6*x^2-16*x+4的最优化解。(x0=6,sgm=10^-2)

代码

主类

package Newton;

public class main {
	public static void main(String []args) {
		double x=6;
		double miu=0.01;
		newton f=new newton(x,miu);
		f.N_ton();
	}	
}

子类1

package Newton;

import java.nio.DoubleBuffer;

public class newton {
	double x1;
	double miu;
	public newton(double x1,double miu) {
		this.x1=x1;
		this.miu=miu;
	}
	public void N_ton() {
		fun f=new fun();
		int k=0;
		while(true) {
			k++;
			double f1=f.F1(x1);
			double f2=f.F2(x1);
			if(f1<miu) break;
			else {
				x1=x1-f1/f2;
			}
		}
		double f3=f.F3(x1);
		System.out.println("极值点为x="+x1+"最优值为f(x)="+f3);
	}
}

子类2

package Newton;

public class fun {
	
	public double F1(double x) {
		double a=4*Math.pow(x,3)-12*Math.pow(x,2)-12*x-16;
		return a;
	}
	
	public double F2(double x) {
		double b=12*Math.pow(x, 2)-24*x-12;
		return b;
	}
	public double F3(double x) {
		return Math.pow(x, 4)-4*Math.pow(x, 3)-6*Math.pow(x, 2)-16*x+4;
	}
	
}

运行结果

在这里插入图片描述

标签:Java,double,牛顿,最优化,pow,x1,miu,public,Math
来源: https://blog.csdn.net/weixin_49858823/article/details/118915632

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有