Fortran Coder

楼主: hipeilei
打印 上一主题 下一主题

[空间几何] 坐标变换程序运行得不到结果

[复制链接]

59

帖子

2

主题

0

精华

大师

F 币
810 元
贡献
476 点
楼主
发表于 2015-11-12 18:48:43 | 显示全部楼层
好像是有限元等参变换,似乎你搞反了,实际上是P_i(x_i,y_y)(i=1,2,3,4)变换到\Omega_i(\xi_i,\eta_i)空间,应该是(\xi_i,\eta_i)=(\pm1,\pm1)四种组合,但是你写成x1=,y1=...x4=,y4=...,按照你的程序,应该是m,n=-1,+1...你看看下图有助于理解吗

360截图20151112183841171.jpg (24.32 KB, 下载次数: 423)

360截图20151112183841171.jpg

评分

参与人数 1F 币 +5 贡献 +5 收起 理由
fcode + 5 + 5

查看全部评分

59

帖子

2

主题

0

精华

大师

F 币
810 元
贡献
476 点
沙发
发表于 2015-11-12 23:42:49 | 显示全部楼层
本帖最后由 kerb 于 2015-11-12 23:46 编辑

好像可以解出两个坐标系变换,稍微麻烦一点
x=a_x+b_x\xi+c_x\eta+d_x\xi\eta

y=a_y+b_y\xi+c_y\eta+d_y\xi\eta
其中根据对应关系可以求出a_x ,a_y \cdots\cdots d_x, d_y

先消去\xi\eta这一项,然后代换,就可以化成一个关于\xi或者\eta的一元二次方程


59

帖子

2

主题

0

精华

大师

F 币
810 元
贡献
476 点
板凳
发表于 2015-11-13 00:16:35 | 显示全部楼层
本帖最后由 kerb 于 2015-11-13 00:22 编辑

另外用迭代法求解非线性方程组应该是这样
F(\xi,\eta)=\left\{\begin{array}{c}f_1(\xi,\eta)=a_x+b_x\xi+c_x\eta+d_x\xi\eta-x\\f_2(\xi,\eta)=a_y+b_y\xi+c_y\eta+d_y\xi\eta-y\end{array}\right.

F(0+\delta)=F(0)+\nabla F\cdot\delta+O(\delta^2),\delta=(\Delta\xi,\Delta\eta)所以那个雅克比矩阵是对\xi,\eta求导

也就是:
J=\left(\begin{array}{cc}b_x+d_x\eta & c_x+d_x\xi\\b_y+d_y\eta & c_y+d_y\xi\end{array}\right)

你检查一下是否搞混了

59

帖子

2

主题

0

精华

大师

F 币
810 元
贡献
476 点
地板
发表于 2015-11-18 15:50:07 | 显示全部楼层
你手头有maple,直接解析求出(\xi,\eta)的表达式,然后稍加判断就行了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-15 02:27

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表