@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的更多相关文章

  1. swift算法手记-10

    http://blog.csdn.net/myhaspl private func findnode(val:Int)->Bool{//http://blog.csdn.net/myhaspl ...

  2. Swift 算法实战之路:基本语法与技巧

    Swift是苹果新推出的编程语言,也是苹果首个开源语言.相比于原来的Objective-C,Swift要更轻便和灵活.笔者最近使用Swift实践了大量的算法(绝大部分是硅谷各大公司的面试题),将心得体 ...

  3. Swift 算法实战之路:栈和队列

    这期的内容有点剑走偏锋,我们来讨论一下栈和队列.Swift语言中没有内设的栈和队列,很多扩展库中使用Generic Type来实现栈或是队列.笔者觉得最实用的实现方法是使用数组,本期主要内容有: 栈和 ...

  4. 算法手记 之 数据结构(并查集详解)(POJ1703)

    <ACM/ICPC算法训练教程>读书笔记-这一次补上并查集的部分.将对并查集的思想进行详细阐述,并附上本人AC掉POJ1703的Code. 在一些有N个元素的集合应用问题中,通常会将每个元 ...

  5. 算法手记 之 数据结构(线段树详解)(POJ 3468)

    依然延续第一篇读书笔记,这一篇是基于<ACM/ICPC 算法训练教程>上关于线段树的讲解的总结和修改(这本书在线段树这里Error非常多),但是总体来说这本书关于具体算法的讲解和案例都是不 ...

  6. 算法手记 之 数据结构(堆)(POJ 2051)

    一篇读书笔记 书籍简评:<ACM/ICPC 算法训练教程>这本书是余立功主编的,代码来自南京理工大学ACM集训队代码库,所以小编看过之后发现确实很实用,适合集训的时候刷题啊~~,当时是听了 ...

  7. ios Swift 算法

    // Playground - noun: a place where people can play import Cocoa var nums = Int[]() ... { nums.appen ...

  8. Swift 学习手记1,pod 的 类库使用

    问题: 在Swift中,我们无法使用像Objective-c 一样的 #import 例如 在头部输入 #import <ReactiveCocoa/ReactiveCocoa.h> 是不 ...

  9. 算法手记(2)Dijkstra双栈算术表达式求值算法

    这两天看到的内容是关于栈和队列,在栈的模块发现了Dijkstra双栈算术表达式求值算法,可以用来实现计算器类型的app. 编程语言系统一般都内置了对算术表达式的处理,但是他们是如何在内部实现的呢?为了 ...

随机推荐

  1. mysql改动用户password

    登录root用户 用root用户登录控制台. use mysql use mysql,mysql是mysql数据库自己主动创建的一个数据库. 改动user表的数据 update user set pa ...

  2. uva是崩了 吗,还是我太年轻?

    刚刚提交了一道题,发现提交状态一直是in judge queue,去提交状态那里看了下,排在我20分钟前的也在in judge queue,不知道前面还有多少.顿时感到好无力......

  3. iOS-为方便项目开发在pch加入一些经常使用宏定义

    1.关于NSLog输出 /** * 当Xcode为Release时不输出,为Debug时输出 * * @param ... * * @return */ #ifndef __OPTIMIZE__ #d ...

  4. 关于Win 10的隐私保护政策

    近日.有人责备Win10收集用户信息,事实上这样的指责并不公平,比方:"Privacy Groups Claim Microsoft Uses Windows 10 as Big Broth ...

  5. Java-MyBatis:MyBatis 3 | SQL 语句构建器类

    ylbtech-Java-MyBatis:MyBatis 3 | SQL 语句构建器类 1.返回顶部 1. SQL语句构建器类 问题 Java程序员面对的最痛苦的事情之一就是在Java代码中嵌入SQL ...

  6. 继承TabActivity后不执行onBackPressed()里的方法

    // 用下面这个函数拦截子Activity的返回操作        @Override        public boolean dispatchKeyEvent(KeyEvent event) { ...

  7. Firefox Quantum:开发者版本 推荐

    为生民,不谋利 欢迎您使用 Firefox 开发者版本.使用此版本可获得最新功能.高速性能,以及您打造开放 Web 所需的开发工具. https://www.mozilla.org/zh-CN/fir ...

  8. Cookie是存储在客户端上的一小段数据

    背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性. 在JavaSc ...

  9. elasticsearch集群添加节点

    最简配置文件: cluster.name:  your_cluster_name node.name:  your_ip network.host: 0.0.0.0 http.port: your_p ...

  10. ZBrush中Flatten展平笔刷介绍

    本文我们来介绍ZBrush®中的Flatten展平笔刷,Flatten笔刷能增加粗糙的平面在模型表面,利用它能够制作出完全的平面. Flatten展平笔刷 Flatten(展平):Flatten笔刷可 ...