swift算法手记-7
@IBAction func compute(sender: AnyObject) {
// 19*x^7-31*x^5+16*x^2+7*x-90=0
// newton迭代法求一元方程的解,最大求解范围[-100000,100000] mytitle.stringValue="19*x^7-31*x^5+16*x^2+7*x-90=0"
let trycount = 120
var accuracy: Double = 1e-15
var answer: Double?=nil // 预计解范围
var leftbound:Double?=nil
var rightbound:Double? =nil for var bound:Double=1;bound<10000000;bound*=10{
let leftres=comresult(-bound)
let rightres=comresult(bound)
if (leftres*rightres) < 0 {
leftbound = (-bound)
rightbound = bound
break
}
else if leftres==0{
answer=leftbound
break
}
else if rightres==0{
answer=rightbound
break
}
}
if (leftbound==nil || rightbound==nil){
return
}
var center=leftbound!+(rightbound!-leftbound!)/2
let centres:Double=comresult(center)
if centres==0 {
answer=center
} if centres*comresult(rightbound!)<0{
leftbound=center
}
else if centres*comresult(leftbound!)<0{
rightbound=center
} if answer==nil{
//计算方程的解
var p0=leftbound!+(rightbound!-leftbound!)/2
var p:Double
for i in 1...trycount{ p = newtoncompresult(p0)
if abs(p-p0) < accuracy {
answer=p0
break
}
p0=p
}
}
if let ans=answer{
//方程有解
result.stringValue="解:"+String(stringInterpolationSegment: ans)+" "
result.stringValue += "解代入方程的值:"+String(stringInterpolationSegment:comresult(ans))
}
}
用牛顿迭代法解非线性方程
本博客全部内容是原创,假设转载请注明来源
http://blog.csdn.net/myhaspl/
swift算法手记-7的更多相关文章
- swift算法手记-10
http://blog.csdn.net/myhaspl private func findnode(val:Int)->Bool{//http://blog.csdn.net/myhaspl ...
- Swift 算法实战之路:基本语法与技巧
Swift是苹果新推出的编程语言,也是苹果首个开源语言.相比于原来的Objective-C,Swift要更轻便和灵活.笔者最近使用Swift实践了大量的算法(绝大部分是硅谷各大公司的面试题),将心得体 ...
- Swift 算法实战之路:栈和队列
这期的内容有点剑走偏锋,我们来讨论一下栈和队列.Swift语言中没有内设的栈和队列,很多扩展库中使用Generic Type来实现栈或是队列.笔者觉得最实用的实现方法是使用数组,本期主要内容有: 栈和 ...
- 算法手记 之 数据结构(并查集详解)(POJ1703)
<ACM/ICPC算法训练教程>读书笔记-这一次补上并查集的部分.将对并查集的思想进行详细阐述,并附上本人AC掉POJ1703的Code. 在一些有N个元素的集合应用问题中,通常会将每个元 ...
- 算法手记 之 数据结构(线段树详解)(POJ 3468)
依然延续第一篇读书笔记,这一篇是基于<ACM/ICPC 算法训练教程>上关于线段树的讲解的总结和修改(这本书在线段树这里Error非常多),但是总体来说这本书关于具体算法的讲解和案例都是不 ...
- 算法手记 之 数据结构(堆)(POJ 2051)
一篇读书笔记 书籍简评:<ACM/ICPC 算法训练教程>这本书是余立功主编的,代码来自南京理工大学ACM集训队代码库,所以小编看过之后发现确实很实用,适合集训的时候刷题啊~~,当时是听了 ...
- ios Swift 算法
// Playground - noun: a place where people can play import Cocoa var nums = Int[]() ... { nums.appen ...
- Swift 学习手记1,pod 的 类库使用
问题: 在Swift中,我们无法使用像Objective-c 一样的 #import 例如 在头部输入 #import <ReactiveCocoa/ReactiveCocoa.h> 是不 ...
- 算法手记(2)Dijkstra双栈算术表达式求值算法
这两天看到的内容是关于栈和队列,在栈的模块发现了Dijkstra双栈算术表达式求值算法,可以用来实现计算器类型的app. 编程语言系统一般都内置了对算术表达式的处理,但是他们是如何在内部实现的呢?为了 ...
随机推荐
- mysql改动用户password
登录root用户 用root用户登录控制台. use mysql use mysql,mysql是mysql数据库自己主动创建的一个数据库. 改动user表的数据 update user set pa ...
- uva是崩了 吗,还是我太年轻?
刚刚提交了一道题,发现提交状态一直是in judge queue,去提交状态那里看了下,排在我20分钟前的也在in judge queue,不知道前面还有多少.顿时感到好无力......
- iOS-为方便项目开发在pch加入一些经常使用宏定义
1.关于NSLog输出 /** * 当Xcode为Release时不输出,为Debug时输出 * * @param ... * * @return */ #ifndef __OPTIMIZE__ #d ...
- 关于Win 10的隐私保护政策
近日.有人责备Win10收集用户信息,事实上这样的指责并不公平,比方:"Privacy Groups Claim Microsoft Uses Windows 10 as Big Broth ...
- Java-MyBatis:MyBatis 3 | SQL 语句构建器类
ylbtech-Java-MyBatis:MyBatis 3 | SQL 语句构建器类 1.返回顶部 1. SQL语句构建器类 问题 Java程序员面对的最痛苦的事情之一就是在Java代码中嵌入SQL ...
- 继承TabActivity后不执行onBackPressed()里的方法
// 用下面这个函数拦截子Activity的返回操作 @Override public boolean dispatchKeyEvent(KeyEvent event) { ...
- Firefox Quantum:开发者版本 推荐
为生民,不谋利 欢迎您使用 Firefox 开发者版本.使用此版本可获得最新功能.高速性能,以及您打造开放 Web 所需的开发工具. https://www.mozilla.org/zh-CN/fir ...
- Cookie是存储在客户端上的一小段数据
背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性. 在JavaSc ...
- elasticsearch集群添加节点
最简配置文件: cluster.name: your_cluster_name node.name: your_ip network.host: 0.0.0.0 http.port: your_p ...
- ZBrush中Flatten展平笔刷介绍
本文我们来介绍ZBrush®中的Flatten展平笔刷,Flatten笔刷能增加粗糙的平面在模型表面,利用它能够制作出完全的平面. Flatten展平笔刷 Flatten(展平):Flatten笔刷可 ...