MATLAB 板


LINE

※ 引述《pto2 (蔡少)》之铭言: : 小弟我有小问题想请教各位先进,就是我有三个方程式分别为: : a1*x+b1*y+c1*z+d1 = 0 ..............(1) : a2*x^2+b2*y^2+c2*z^2+d2 = 0 ........(2) : a3*x^2+b3*y^2+c3*z^2+d3 = 0 ........(3) : 其中a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 为常数 : 每次我用 solve 解就会当掉,请问有什麽好方法来求解这样的问题吗?? 我写了个最佳化的程式solve1.m来解,需要猜一个起始值, 测试程式的结果是,起始值假如和解差太远(例如解是1,2,3,起始值猜一千之类的), 或方程组本身无实数解,就无法得解。 此程式只能用来解以上方程式系数都为实数的实数解, 假如系数有复数,或是需要复数解的话,可能要另外想办法了... 先解释程式中出现的代号好了, 输入的A,B是系数矩阵,X0是起始值,亦即: A=[a1 b1 c1 a2 b2 c2 a3 b3 c3] B=[d1 d2 d3] X0=[x起始值 y起始值 z起始值] 输出的X是求得的近似解,sum是三个等式左边的平方和,亦即 X=[x y z] sum=((1)式等号左方)^2+((2)式等号左方)^2+((3)式等号左方)^2 跑程式时把A,B,X0设好,然後直接用[X sum]=solve1(A,B,X0)来跑, 我选择把sum输出的原因是检验程式有没有跑成功, 假如sum很接近零就没错,假如sum很大的话,换个X0试试看吧! 至於程式里面的myfun是solve1的副函数, 他的目的是算出三个等式左方的平方和,因为系数和解都是实数, 平方一定大於等於零,因此把三个平方相加,所得的数值也大於等於零, 只要利用fminunc求最小值,那个最小值就是零了,就可以得到解。 myfun的输出中fun是三个等式左方的平方和,而grad是fun的梯度, 因为用梯度会让fminunc跑得更快(我测试的结果是一眨眼就好了) %%%%%以下是程式solve1.m内容%%%%% function [X sum] = solve1(A,B,X0) options = optimset('GradObj','on','LargeScale','off','TolFun',eps,'TolX',eps); [X sum] = fminunc(@(X) myfun(X,A,B), X0, options); return function [fun grad] = myfun(X,A,B) sum1 = A(1,:)*X+B(1); sum2 = A(2,:)*(X.^2)+B(2); sum3 = A(3,:)*(X.^2)+B(3); fun = sum1^2 + sum2^2 + sum3^2; grad = zeros(3,1); for i = 1:3, grad(i) = 2*A(1,i)*sum1 + 4*A(2,i)*X(i)*sum2 + 4*A(3,i)*X(i)*sum3; end return %%%%%程式结束%%%%% 不知道这样有没有解决原po的问题, 我是初学MATLAB的人啊,写的程式可能也不是很好... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 128.42.158.2 ※ 编辑: evanzxcv 来自: 128.42.158.26 (04/21 22:42)
1F:推 pto2:感谢~~我试试看 04/22 14:05







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP