@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. 假设让我又一次设计一款Android App

    转载请注明出处: 本文来自aspook的博客:http://blog.csdn.net/ahence/article/details/47154419 开发工具的选择 开发工具我将选用Android  ...

  2. ASPX和Razor

    ASPX ASPX文件是微软的在server端运行的动态网页文件,通过IIS解析运行后能够得到动态页面,是微软推出的一种新的网络编程方法,而不是ASP的简单升级,由于它的编程方法和ASP有非常大的不同 ...

  3. UVA 11542 Square 高斯消元 异或方程组求解

    题目链接:点击打开链接 白书的例题练练手. . . P161 #include <cstdio> #include <iostream> #include <algori ...

  4. Asp.net mvc中使用配置Unity

    第一步:添加unity.mvc 第二步:在添加之后会在app_start中生成UnityConfig.cs,UnityMvcActivator.cs 第三步:使用 第四步:效果展示

  5. java/javascript 时间操作工具类

    一.java 时间操作工具类 import org.springframework.util.StringUtils; import java.text.ParseException; import ...

  6. listview添加的头部布局超过一屏头部内容显示不全

    headView的实际高度超过一个屏幕,但是显示的结果只有一个屏幕,超过一个屏幕高度意外的部分显示不全. 只使用了listView.getRefreshable().addHeadView(headV ...

  7. 使用pgpool管理数据库集群故障的问题

    pgpool如何选举master角色 在pgpool启动的过程中通过对 pgpoo.conf配置文件中的数据库节点条目信息,对集群中的数据库节点从0开始一个个的遍历,并发送SQL语句“select p ...

  8. 小数据量csv文件数据导入数据库(思路)

    大致写写思路,因为sqlserver提供了可以直接导入的图形界面. 1.private static string GetConnectionString(string folderPath)  // ...

  9. Java之Foreach语句

    Foreach是for语句的特殊简化版本,但任何时候的foreach语句都可以改写成for语句.Foreach语句在遍历数组等方面为程序员提供了很大的方便 语法如下: For(元素变量 x:遍历对象o ...

  10. what is udev?

    如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略.在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev ...